How I Would Learn To Code (If I Could Start Over)

My best path to learning to code

Matteo Possamai
CodeX
5 min readNov 25, 2022

--

Photo by Stephen Leonardi on Unsplash

You must plan your programming journey because it will make the development process much smoother and with more results.

Otherwise, you may arrive at a certain point where you don’t know what to do next, and you start losing your time procrastinating and so on. It is better to avoid these cases.

So I prepared you for the complete path I would follow if I had to start over again my learning journey and become a professional programmer again.

This article is divided into chapters, that you can adapt to your ideal journey, but they need to be followed anyway, in my opinion. Let’s start.

Choice

The first thing that needs to be done is choose a programming language to start with, and this programming language will be your best friend for a lot of time, so it needs to be a wise choice.

My first programming language has been Python, and I confirm my choice again. I think it is ideal for programming beginners, because it is intuitive, with beautiful syntax, and it is used almost everywhere, so after learning it you can still choose a different career in the programming field.

After that choice, that must not take too long, it is time to start learning the programming language itself and programming principles in general, which comes really handy later on.

Learning basics

It is time to start learning all the basics of the programming language. Stuff like if statement, for loops, while loops, array, dictionaries and so on. The list of topics changes according to the language.

It must take at least a month, from around three as the deadline, to master all the basics of the language itself. You need to be sure you know all the basics of implementing some really easy projects. You can find good ideas online for projects, or you can read another of my articles.

Along the way, it is better if you start familiarizing yourself with also some tech-generic topics that are really important, such as HTTP and how it works, socket, threading etc. You need to know at least the theory.

Learning basic packages

The next step is to learn all the basics, most important and most famous packages and libraries for your programming language.

In our case, we are learning Python again, so in my opinion, it is better to know really well how to use NumPy, pandas, os and so on. There are a lot of various generic packages that will come really useful in each project you will create.

Be sure to find out most of them, especially if they are part of the standard library of Python. This phase of learning will save you a lot of time when you will be a professional developer and will make your Python code much more performant. You have one or two months to complete this part of the journey.

After that, I would suggest making a bigger project, maybe using the packages you learned, adding or a GUI package ( like Tkinter or PyQt5 )or a backend library ( like Django or Flask ).

This will fix in your mind what you have learned so far.

Learning intermediate and/or advanced topics

It is now time to gain more specific and important knowledge about our programming language. It is time to learn more advanced topics that need to be done.

These concepts can be something like generators, decorators, list comprehension and so on. These are all not-so-intuitive concepts for complete beginners, but they are necessary for a good code.

Learn them and master them, searching for these topics online and on youtube specific channels, like Tech With Tim.

After completing that, you can try to take back the project you did, and trying to refactor the code with these concepts, and see if you see improvements.

Data Structures and Algorithms

After learning domain-specific knowledge, is now time to learn something really important: data structures and algorithms.

This knowledge will be used for programming interviews and also during coding for resolving more complex problems and enhancing performance. For a lot of people these topics are useless, but never forget that they are key for performance.

Learn arrays, stack, queues, linked lists, graphs, bubble sort, merge sort, breath first search etc. You will need a lot of time to master all these things.

Another language

After learning also DSA, it is time to pick up another language. Note that it has to be quite different from the previous one.

For example, we choose Python, which is interpreted and known for being quite slow but perfect for data science. I suggest you pick something like Go or C++, which is compiled and designed for performance.

This is because you need to widen your horizons, learning new ways and paradigms that otherwise you would never see. This will help you understand the difference between programming language and so on.

Master it a little bit and make a project

I think that this step does not need much explanation. You need to create a project with your new programming language only, or a mix with also Python, linked them together using something like HTTP, gRPC, or whatever you want. The more complex, the more interesting.

Done that, you will have mastered the majority of the needed knowledge to become a programmer with high proficiency in a couple of programming languages, you are a really good point.

Last steps, and repetition

Now I will list some other steps that you need to follow to gain more experience in the field, that will become useful as you search for a job. These steps are not mandatory, but I think that if you can you should.

  • Open source programming
  • Developing real-world applications
  • Attending hackathons
  • Doing coding questions ( Leetcode and similar )

Conclusion

Once done that, you will be a complete expert. Sounds amazing, doesn’t it?

Programming is something amazing, that is really interesting and can give you a lot of satisfaction along the way. You had better plan a good learning journey to success. Hope I helped you in some way.

Hope you enjoyed this article, if you did consider clapping and subscribing, or click on this link to support this blog and the entire platform. Thank you a lot.

--

--

Matteo Possamai
CodeX
Writer for

Computer science student, technology enthusiast, interested in backend services, software development and Open Source.