Video Transcript, Enjoy 🙂
Hello and welcome to another episode of iLoveCoding. In this lesson, I will give you the map to the world of Software Development.
In this map, I will show the nine main areas of software development and give you the concrete examples on what kind of work each software developer does.
Once you’ve learned about these nine areas, one or two things will happen; either you will clearly know which area you are most interested in and want to pursue or you will need guidance to pick an area to pursue.
If you are a person from the second group, continue reading and I will recommend you the area of development you should focus on.
Plus, I will give you the roadmap, the exact steps to take to learn how to code.
A fair Warning:
No one area is better than the other. People who say that this kind of development is better than the other are either junior people, biased or simply ignorant.
So let’s get started!
Language Compilers Dev
Number 1 on the list is language or compilers developer. These are like linguist of the programming world. Just like in linguist, a person works on the language, similarly in the programming world, there are developers who actually create languages. Those are language or compilers developers. These constitute do about 1% of all developers.
Embedded System Developers
Next on the list are Embedded System Developers. These are like 3% of developers on earth and they work with hardware developers, hardware manufacturers or hardware creators and write low level code that operate the hardware.
So think about raspberry pi or ATM chips sets, motherboards and different devices. Your keychain for your car, the computer chips for your TV, they’re software that are on those chips. These are the developers who create that.
Next, there are OS developers, people who create operating systems like your Mac operating system or your windows operating system or Linus operating system and so forth.
These also constitute to around 3% of developers.
Next in line are Data Scientists or Data Science Developers. These are developers who work in technology such as Python to make data models or artificial intelligence models that can predict certain things. So for instance – YouTube recommends you different videos based on your usage. Same with Twitter, same with Facebook, they will show you feeds. Instagram probably has the same thing.
This is one particular example where data scientists are developers who take a bunch of data, your usage usages and then create predictive models or models of intelligence that can predict certain things that you may like and so forth.
This is where things are going towards artificial intelligence in the future.
Next in line are Video Games developers. This probably needs no introduction. These constitute to around 8% of software developers who create video games. When I say video games, I really mean the advanced video games that you play on your console or your computer which has all kinds of different graphics.
Video game developers usually work on a framework that they pick or they either will create a framework based on which they can create these kinds of advanced graphics and these interactions of video games.
Next in line are Dev Ops, which is a newer name for system administrators. These kinds of developers write mini scripts or different smaller pieces of code that help to maintain a particular developing environment.
So let’s say you have a web application some kind of system administrator or dev ops is managing different machines in which the software application is running and the way its deployed throughout the internet.
The cloud management of the different service, how it’s deployed, how the backups happen and the stuff like that.
So they manage the workflow of the application deployed to a particular environment. Most of the time they’re not actively developing, they do development probably 10 to 20% of the time but most of the time they’re managing the process of the application infrastructure.
Dev ops constitute to around 11% of the developers.
Then we have Desktop Apps, these are developers who make applications like adobe Photoshop or the Mac calendar and the applications that run on your desktop for Windows, Linux or Mac computers.
Mobile Apps Developers
Next we have Mobile Apps Developers, who of course make applications for android, iOS and windows phone. These developers will typically work on technologies specific to; Let’s say if there are android developers, they will work with Java as a programming language and their tool sets that google provides for android development, or they’re going to use either Swift programming language or Objective-C to code in for iOS.
But lately, they’re using web stack which we are going to talk in more detail later on. Which actually helps them use one particular technology and still make applications for multiple platforms.
Mobile app developers constitute to around 20% of the web developers on the planet.
Web Apps (Front-End & Back-End Development)
Finally, the biggest chunks of development happen in the web apps space. So there are websites like Google, Facebook, Quora, Twitter, iLoveCoding or Youtube any kind of website or web app is built by these developers.
Which constitute to around 35% of the developers.
Web application developers are spilt into two major components. There are Front-End developers who create the look, feel and interactions of a website. So let’s say you go to a website like iLoveCoding.org or Google so the interactions on what happens when you click a button, what the look and feel of the website looks like is made by a front-end developer.
A back-end developer on the other hand is responsible for what happens with the background processes when you actually make the interaction with the front-end.
So let’s say you’re on iLoveCoding and you click on the login button, and developers are going to take your username and password and send it to the back-end, the back-end developer is then responsible to make sure that the user and password are actually correct users and passwords and if it’s correct, it’s going to validate that and then send the message to the front-end and say “hey, yes the information was correct, do whatever you want to do with it” and the front-end developer is going to say “okay, if it’s correct then I’m going to redirect them to a success message, or a home page or account management or whatever”
So that is how the front-end part of the web developers and the back-end developers work together to build a successful application. If you know both of these skills, you are considered a full-stack developer who can work on the back-end as well on the front-end of the website.
Disclaimer: I am not an expert on all of these areas of software development. In fact, I’m in the world of web and mobile development. I know a little bit of desktop and dev ops as well.
Overall, I can do professionally about 78% of all development. If your interest lies in any of the other areas like video games, data science, OS, embedded system or language compilers I am not the right person to give you an advice.
But if you want to build practical web and mobile applications and get a fast return on your time, I recommend you to start from learn web development first, particularly front-end.
iLoveCoding is the simplest, most effective path to front-end & full-stack development.
Thanks for reading, leave your comments below and let me know what you think.
Author: Aziz Ali