So you want to become a software developer!
Congratulation you just took the right decision at the perfect time. Becoming a developer has a lot of benefits, such as very hight salaries, cool work environments, guaranteed job offer and ability to work from home. Also, you have the opportunity to build your own product and become a millionaire (like Mark Zuckerberg the creator of Facebook).

There are no serious requirements to become a developer! You do not need a degree and you do not need to be a genius. All you need is some patience and the ability to learn by yourself (quickly if possible since technology is changing real quick and you need to stay up to date, but don’t worry about that now you will develop this skill along the way).
The first step you need to do is to decide what type of developer you want to be (that determined by what type of software’s you need to build). As you may know a developer build software’s (Applications, Games,…) and software’s run on platforms (Mobile, Desktop,…).
Example a Web Developer builds Web Apps or Websites. While a Mobile Developer builds Mobile Apps or Games for Android or iOS… Of course there are many different types of software’s and platforms but I’m not going to name them all here, that’s gonna be your first research.
After your research, take your passion into consideration and make a decision, let’s say you decided to become a Web Developer who builds Web Apps. The next step will be to research how to build Web Apps. There are many online tutorials and articles that can answer you, and they will tell you what you need exactly to build a Web App (or whatever you choose), just be careful as some of them will try to guide you to use specific programming languages and tools they are promoting for. So read from multiple resources (check the release date and try not to read or watch old stuff) and take note of every programming language you will find as preparation for your second and most important decision, and is choosing the programming language to be used in the development of your first Web App.
Since the same App (software) can be built using multiple programming languages and each of these languages is unique and different from the others (example both English and French have the concept of greeting someone however in English you say ‘Hello’ and in French you say ‘Salut’).
Choosing a language is very personal preference and there’s no right or wrong decision but take into consideration the popularity of the language (community size) and the number of job vacancies for it. The popularity is important to find online support and tutorials while the number of job vacancies is important to find a job using what you learned at the end.
I’ll continue using Web Development as a demo and give a little more details about it, to give you an idea of what to expect in your research on ‘how to build a Web App’. A Web App consist of two sides the Front-End (what you are seeing now in the browser) and the Back-End (what happens when you leave a comment or click a button). Let’s go quickly over the programming languages needed to build each side of the Web App.
Starting by the Back-End side, you need a server-side programming language (there are many of them, example: PHP, Ruby, Python, C#.NET, JAVA EE,…) and you need a storage system (a system to store your App data) this is called the Database. There are different types of Databases and many systems for each type. To keep it simple let’s assume there’s only one type and it is the RDBMS (Relational Database Management System) as this is the most used in the world. Now you have the option to choose between any of RDBMS systems MySQL, MS SQL Server, Oracle, Postgre SQL,… No matter what system you choose, you need a querying language (to store and read data from the DB) you don’t really have many options here if you choose RDBMS the common querying language is the SQL. If you are curious about the other types check this.
To summarise the Back-End side, all you need so far is a server-side programming language and the SQL querying language.
For the Front-End side, you need 3 programming languages and you don’t have options here. The languages are HTML, CSS and JavaScript. These languages are used to build almost every Website in the world. I’ll let you research them as there are tonnes of explanations about them online.
And that’s it for Web Development, to build a Web App all you need is to learn 5 programming language. And that’s really easy because only 2 of them are real programming languages ‘the server-side language’ and ‘the JavaScript’ while the others ‘HTML, CSS and SQL’ are very small languages in syntax and libraries.
Usually in most of the Web Development companies you will see people working as ‘Front-End Developers’ or as ‘Back-End Developers’ and it’s very common to see people doing both sides especially freelancers and they are called ‘Full Stack Web Developers’. So you don’t even need the 5 of them at one time to get started.
Note: the case is very different for building Mobile Apps or Playstation Games or any other type of software. But I cannot cover every single type in one article, that would be a book.
Now after you chose and understand which programming languages you need and why we need it. The next step is to understand the programming concept. Similar to the English and French example above. Almost all the real programming language are the same! in every language we can say ‘Hello’ and ‘Good Bye’ (this is the concept) but every language has it written it in a different way (this is the syntax). So once you understand the concept (what does ‘Hello’ mean) it will be easy for you to learn every programming language in the world by asking google how to say ‘Hello’ in ‘Arabic’ or in ‘Spanish’.
The programming fundamental concepts covers things like Variables, Data Types, Conditional Statements, Functions, Classes,….
After you read about all these stuff (don’t expect to understand them from the first time). Start learning the syntax of your chosen programming language. And it’s very important at this stage to have your computer ready to run your code while you are learning. So install all the requirements of your programming language and get yourself an IDE (code editor) in order to try what you learned directly on your machine. Example if you are learning how to iterate through Array go ahead and try it by yourself and I guarantee you will enjoy it. Don’t expect to build anything yet just enjoy playing for now.
After you learn the syntax of all your chosen programming languages try to build any simple tool in your mind, most people chose to build calculator at first. My first tool was a GPA Calculator (Desktop Application built with JAVA) I input my grades and it display my university GPA. I really enjoyed building it. {Honestly universities teach you 20% of what you need in the real life}.
Congratulation again now you can consider yourself officially a Developer. However I see developers belonging to 3 levels.
Level 1: Can read/write code.
Level 2: Can build a project.
Level 3: Can build a project the right way.
In this article, I am only covering the first 2 levels. As the third one is where things start getting really complicated, it’s totally ok to spend some time in level 2 and once you feel ready then start seeking for level 3.
In level 3 usually you will start caring about the performance and security of your App as well the scalability and maintainability of your code and many more things which will require you to dive in the architectural and design patterns and understand the infrastructure of your software’s and many many more things.
Software Development is a process of continuous education, you will never stop learning and you must stay up to date on the latest tools, technologies and techniques. It’s a long journey so enjoy it.
To stay up to date, follow me on Twitter @Mahmoud_Zalt
