How to become a software developer, and where to start?
Tags: beginners, development, software
Published: 2022-04-17 06:12:07

Before answering the question you need to specify your goal of learning how to program, Software development and programming is a wide topic, to be able to start your learning journey you need to choose a domain, What do you like to be? Is it a Front-end developer, a Back-end developer? maybe a full-stack developer? Or you want to build a mobile application instead.

## How much time do I need and how to learn?

The time required to learn to program like anything else depends on many criteria and things vary from person to person.

How much you love the field will determine your success in it and give you the motivation to learn faster than others who learn just to find a job, if you love programming you will spend more time on education.

Organizing your time also helps, if you study in a random way you will waste a lot of time, but if you have a road map and organized educational path that will help you reach your goal. So where to begin?

First of all, you need to think like a programmer, and to do that you need to learn algorithms and data structures because it is necessary in order to become able to solve problems. It makes you a professional programmer by understanding the problem that you want to solve and converting it to functional code. If you like to learn using books, "Introduction to Algorithm The Art of Programming Data Structures in C and C++" will help you in your learning journey.

The second thing you want to focus on is participating in software competitions, on platforms like HackerEarth or Leetcode and trying to solve problems by thinking of a solution and using pseudo-code to convert your ideas into a simplified representation of an algorithm which helps you describe the coding logic, from there you need just to search the syntax of the programming language you want to use.

## What programming language to learn?

There are many fields under the umbrella of software engineering, so if you want to be a web developer you can learn HTML and CSS first to be able to create basic websites and styles them, then you can choose to be a Front-end Developer or a Back-end Developer.

Let's start with Front-end, to be a front-end developer you need to learn JavaScript in addition to HTML and CSS, then you can choose a framework that will help you build web apps and websites faster. One of the popular JavaScript frameworks is React, there is also Vue.js and Angular. In addition, you can learn also CSS frameworks like Bootstrap or Tailwind.

For Back-end development you can choose any programming language, Ruby is a good language that you can start with and it's a popular one, there is also Python, PHP, or JavaScript using Node.js.

Let's focus on Ruby, for now, the back-end is responsible for getting data and managing the application logic on the server, to do that using Ruby, you need to use a framework in our case Ruby on rails, and because you need to manage Database you can learn SQL or any other none SQL database like MongoDB.

If you learned front-end and back-end technologies you can be a Full-stack developer, and start creating full-stack web apps using all those skills combined. In addition to web development, there is mobile development.

Mobile development, includes android and ios development. For android, the widely used languages are Java and Kotlin. Ios uses swift or Objective c, but you can use React native also to create apps for mobile using the web technologies.

---

To summarize this article we need to acknowledge that Software development is a wide field, so you need to specialize in a specific domain, Like Web development, mobile development, database development, or computer software programmer. understanding the basics of computer science can give you the benefit to understand the code more clearly and thinking like a programmer.
From here you know what you want, the next step is choosing your stack, the programming language, and the frameworks that will help you and save time, and of course, the important step is starting to learn.