How to become a programmer in 2021


A programmer is a person who can solve the problem by programming. Programming is basically thinking in the language of computers to achieve some task. To be more concise, it is like what you do in your job when you describe to someone how to complete a task. Now this may sound very simple but the complexity increases as we move from “What” part of the statement to “How”.

To achieve that goal here are some steps that every programmer should follow:

1) Understand what computer science is all about.
In other words, learn the basics of algorithms and data structure. The beauty of these topics is they give you good problem solving skills. These problems don’t solve themselves so knowing basic concepts will help you a lot in coping with them efficiently. This also gives a good base for further learning. If you think calculus or statistics is hard then wait till I tell you about sorting algorithms! However, I have to mention that these topics are not for everyone. If you think this is useless and want to learn Java in 5 days then jump straight to “the best book about computer science”.

2) Learn a programming language.
It doesn’t matter whether it’s C, Python or Assembly there are thousands of books out there which will help you in doing so. There are only a handful of languages but the number of permutations and combinations is quite large due to all the possible choices available when selecting a combination of features from each language, eg: functional vs object oriented, static verifiability vs dynamic checking etc. Thus learning at least one language well can go a long way towards making yourself marketable as a programmer. Having said this, I don’t think learning 5 different languages is the solution either. There are many things that can be done with the same language as well such as GUI and web programming, both of these areas have a lot to offer nowadays and knowing one or two languages will help you in your career as well as establishing yourself as a developer.

3) Learn compilers, debuggers and other tools that come in handy in practical programming.
Not knowing anything about compiler can be very frustrating when you try writing code for some big project because none of the compilers will compile it because they all need basic things like newline after every statement and braces around if-else blocks etc. Familiarity with debuggers alone may not be sufficient but it’s worth learning at least enough to understand which part of your program is causing the bug and also what kind of information debugger provides you with to help you fix bugs faster. You can never go wrong by learning more and more tools so keep learning and keep practicing.

4) Learn about data structures and algorithms.
It will help you a lot in better understanding of language and its implementation, for example how does hash table internally work or what’s the time complexity of some algorithm that your language provides as built-in feature. You can never know everything but it pays off to be curious enough to learn something new everyday, eg: I learned about Dijkstra estimation on minimum spanning tree as part of my current project (I decided not to implement it however).

5) Master your tools and practice good programming habits.
There is nothing wrong with using google or stackoverflow or any other resource available out there but if you use them frequently during coding sessions then it will take longer to fix the problem yourself. This is just a matter of habit, if you feel that you can always go back to your resource then it’s fine but otherwise avoid relying on them too much. The same goes for debugging tools, if you are using debugger frequently then it slows things down so try writing loop counting by hand in case of for-loop or recursion count manually etc. As for good programming practices they mostly reflect your style so it’s something worth taking care of because everyone has their own style and maybe one day when there are no more bugs left in the project someone else will have to maintain it.

6) Learn about clean code principles even if you’re planning on working in a Java environment only.
There are some who say that this is religious or politically-motivated and claim that doing things ‘right’ adds an overhead and reduces performance whereas others say that abstractions of higher level languages hide a lot of complexity which can be efficiently tackled by direct implementation in lower level language which may happen to be less clean. My answer would be: neither! Not everything should cost you extra money, I am sure you wouldn’t get on the plane if it costs the same as a train despite all the hype.

To sum up

If you want to be a programmer then learn how to say what first and do it well. The rest depends on your dedication and talent because anyone can become a programmer these days: all it takes is enough time for self study!