Becoming a Developer (part 1)

Developers in the Modern Age.

Osita Chibuike
Legobox
6 min readJun 14, 2017

--

Its been an enlightening experience researching this topics and with enlightenment comes revelation. don’t worry this is not gonna be some meditation session, just a cool discussion on what it means to become a developer today.

First and foremost, what does it mean to be a developer, well I’d provide a definition in accordance to the context of this discuss. as stated by techopedia

A developer is an individual that builds and create software and applications. He or she writes, debugs and executes the source code of a software application.

A developer is the key individual behind all software applications. Generally, developers are well versed in at least one programming language and proficient in the art of structuring and developing software code for software or a program. Depending on job role and type of software developed, a developer may be classified as a software developer, application developer, mobile developer, Web developer, etc.

The Constraints

With the various advances in technology as a whole and the continuous improvements in software engineering, most newcomers to the field get confused as to paths available to them, and this can get frustrating at times, when one gets told that what he knows yesterday is no longer the in thing.

Most developers get through this by looking for mentors to emulate, some are successful finding good mentors who are able to help differentiate what’s important to know and what’s just hype, but most others unluckily are stuck in the haze, and it usually goes that they never come to understand the real reasons why being a developer is fun.

So in this series I plan to shed some light into what it means to become a developer in this age, and enlighten us on concepts that are actually important.

Paths

With being a developer in the broad sense of the word. Its a pretty much clear understanding that there’s a lot going on. In fact its a very large party with roller-coasters. But its systematic too. Generally speaking developers can be divided into the following categories. Irrespective of technologies used.

  • Mobile Developers.
  • Web Developers.
  • Application Developers.
  • and Blurred Zone…(lets just say this includes all other developers we can’t exactly categorize into the above. These include various technologies like machine learning and artificial intelligence. We’ll discuss these guys in more details later in the series).

I’m pretty sure most of us already have a pretty much cool understanding of what these guys do (except probably the blurred zone dudes). But for the sake of completeness lets have a glimpse into their lives….

The Mobile Developers

Mobile developers are a special breed, I call them so because they are at the crucial bend of technology and time. The mobile device has gotten more powerful over time and I could rightly say that the modern smartphone had processing power comparable to that of the Apollo 11 rocket that put a man on the moon.

Mobile Developers are responsible for creating software(apps) that work on mobile devices

Mobile developers are therefore in a constant battle with the circumstances and limits posed by the mobile devices themselves. These include…

  • Network Connectivity
  • Memory
  • Bandwidth …. etc.

But in all, mobile developers make beautiful applications and make the mobile device what it is today.

These guys use several technologies to get the job done, this is where you start to hear terms such as native app, hybrid applications, cross platform applications and many more.

Web Developers

I like to call these guys “the core”. Many of us already have some kinda understanding of what web developers do, cause I’m pretty much sure all of us understand what a web browser is.

But for the sake of clear understanding.

The Web Developer is a software developer who develops software and applications that work primarily on the web.

The web developers develop platforms on servers that the web browser connects to in order to be served the webpages and layouts. Its more than just the layouts and looks and more about the product as a platform. There are a large bunch of technologies that present themselves in web development, as with other forms of software development, there are also several different sections that present themselves too. Therefore web developers can be divided into 3 major categories.

  • The frontend developers
  • The backend developers
  • The devops dudes ( these guys are spin offs from the backend developers).

Application Developers

These guys are probably the oldest developers there are( no pun intended).

An application developer is someone who creates, tests and programs applications software for computers.

note:

Based on this, since mobile devices are essentially computers, therefore mobile developers are technically application developers.

The application developers are responsible for developing software that works stand-alone on computers and they are responsible for most of the softwares we use on our computers outside the browser (even the browser is developed by application developers) and with frameworks like electron application development using web technologies is now a breeze. Thus the blurred zone.

The Blurred Zone

PS: this is a term I created myself, not something standardized or stuff.

These includes all forms of software development that are more or less combinations of one or more sections of software development. more on this later.

The Necessities

Becoming a software developer today is a pretty complex process and this series aims to work us through it in an orderly manner. As with every other field, there are several things any and every software developer must have under their belts.

  • Version Control — version control is the process of storing history of changes made to files and code in a codebase in order to facilitate collaboration and contribution. there are several version control systems out there which include. git, mecurial, subversion with Git being the most prominent.
  • Github Closely related to version control is Github, Github is a platform that provides version control servers running git versioning to help keep code safe. There are the free and public plans, these allows you to create public repositories and there are also the private ones which do the opposite. Its open structure has kinda made github the global social network for coders and software engineers and also. the open de-facto platform to launch and contribute to opensource projects all around software development worldwide.
The famous terminal Icon
  • Using the Terminal — on a normal Tuesday I wouldn't really say this is a necessity but as its come to view, the mastery of terminal and its commands gives you the developer an edge in being able to management and perform several complicated tasks and options associated with process management and core understanding of the operating system., this is especially important in web development.
  • Algorithms and Data structure — On this I can boldly say this is a necessity, software engineering as a field relies on it and basic understanding of algorithms and data structure as a technology goes a long way to improve the abilities of the programmer (developer) in creating efficient applications.
  • Learn to Research — software development has research at its core and the developers ability to research on improve his or her skills at will is a God given plus.

Conclusions

In the next post we’ll have to look at the various sections of software development in more detail and get acquainted, with what it means to be a software developer in the various categories, starting with Mobile Development. follow the publication to get notified. if the article was of help give it a heart. Thanks.

--

--