A common question from people that want to learn programming is: what programming language should I learn first? What roadmap to learn programming should I follow?
I’ve been reading answers to these questions, most of them focus on explaining why you should learn python first, java, or another programming language. You can read in other answers that it depends on the type of programmer you want to become: front-end, back-end, web, mobile, desktop?
You cannot find what matters in those answers.
Do you want to know what matters when you start learning programming? Keep reading to find the answer according to my experience.
Why learn programming?
Most of us learnt programming because we wanted to solve someone else’s problems by using computers.
Nowadays, most people are using computers daily. The economy depends on the availability of computer systems to break business barriers, to be able to expand, to empower more people.
Therefore, programmers are people who create software to help someone else (to solve their problems) improve the way they do certain things.
As you can see, we programmers solve people’s problems. But how we do that? What is the approach?
Because of this, programming is a tool to solve problems. It is a mean to an end, it is not the end itself.
We use this tool to create models of the real world. Then, we use the model to automate processes or to make calculations that are difficult for humans.
Then, the concept of abstraction comes into play. Programmers, software engineers, computer scientists etc., use abstractions to model situations and to create programs or software systems to solve problems.
So far, I mentioned several concepts used daily by programmers and still didn’t mention any specific programming language.
Informally, a programming language is a way to tell the computer what we want to do. It is the means that we have to communicate with the computer, to instruct the computer what to do.
There are other ways to tell the computer what to do. They are called user interfaces: keyboards, screens, touch-screens, personal assistants, etc. But all those interfaces need to be programmed. There is code behind this communications means.
So, to tell the computer what to do, several things must happen:
- A problem to solve
- Understand the problem. Most of the time, programmers have to learn new things. If you want to create a bookkeeping program, you first have to learn how to do it yourself.
- Design the solution to the problem. You need to know what paradigm is better to solve the problem, apply design patterns, etc.
- Choose an appropriate platform to implement your design. Here is when you suppose to start working about what programming language to use.
- Test your solution.
- Deploy your solution.
Do you understand now why to learn the programming language is not the most important thing?
Want to know what is my recommendation? Keep reading to find out in the next section.
On the other hand, you shouldn’t focus on what type of job/skills you want.
To have positive performance in any of the different positions you can get, you need to master algorithms and at least one programming paradigm. Notice that a programming paradigm is not the same than the programming language.
My recommendation: Roadmap to learn programming, do not focus on the programming language
In this section, you will find my recommendation. It is based in all my years of experience learning programming (I’m still learning) and all the years I’ve been teaching programming as well.
There are two things to learn before you learn a programming language.
The first one it algorithms. You need to understand how algorithms work and how can you design new ones to solve specific problems.
The second one is the paradigm. The paradigm gives you good practices, methods, methodologies to solve problems using a programming language.
Only then, you must start thinking about what programming language to use for solving problems using a computer.
Find bellow a simplified roadmap to learn programming.
If you like/dislike the post leave a comment below.
Don’t forget to subscribe to our monthly digest.