Table of Contents
Everyone wants to become a better programmer. Unfortunately, this is often easier said than done. This article will help you make this goal easier and more achievable. You will learn four tips that will help you improve your programming skills and become a better programmer.
16 Tips to Become a Better Programmer Part 1.
16 Tips to Become a Better Programmer Part 3.
16 Tips to Become a Better Programmer Part 4.
Master one language
Ask many developers and programmers on what becoming a better programmer means and you will get similar answer. Becoming a better programmer is about learning tone of languages. The math here is simple. The more programming languages you know the better programmer you are. At least, this is the theory.
In practice, this often doesn’t work. The problem is that absolutely nothing guarantees you progress just because you learn new programming language. What often happens is that although people learn a lot of programming languages, they are not good at any of them. They can read the syntax and maybe write something short,but that’s all.
This is also why the term “Jack-of-all-trades” has such a bad connotation. Unfortunately, this term, the “Jack-of-all-trades”, is actually incorrect in this situation. When you have only very shallow understanding of many programming languages you are not “Jack-of-all-trades”. You are “Jack-of-no-trades”.
Knowing more languages doesn’t make you a better programmer
This is not the worst thing. What’s even worse than that is that you are pretty much unemployable. Think about it. Would you employ a developer or programmer who can write a simple program in dozens of languages but who can’t write anything more complex even in one? Probably not. This guy would probably had no chance of getting the job.
You are effectively putting yourself in this guy’s position if you think that quantity can supplement quality. Meaning, the amount of programming languages you know a bit about can supplement how well you know at least one programming language. False assumption that never works. If this is your plan, you had better pivot.
Master one programming language before anything else
What you should do instead is focus on only one programming language. Stop chasing every new trendy esoteric language. Instead, choose one language you will learn about and truly master. Think about what do you want to do in your life. What career or job do you want to get. Then, look for most popular languages in that area or career path.
If you are still not sure, take a look at programming languages listed on Tiobe index, in top 20. Then, use the job you want to get to narrow your options. The second option is to try online communities such as Quora and Reddit. Here, you can ask people, from the industry you want to enter, for recommendations.
Third option is even simpler. Take a look at job boards. Search for jobs you would want to do and then look for their requirements. It is very likely that you will find all information you need right there. Your next step is simple, yet hard. When you know what programming language you should learn, it is time to start learning.
Now, your goal is not just shallow understanding, but developing high proficiency. You have to learn how to use that language like the one you speak with. Remember, quality beats quantity. Programmer who knows one language very well is much better programmer, and better positioned, than programmer who knows dozens of languages poorly. Be the first one.
Learn more than one programming language
Let’s assume that you know very well at least one programming language. Like really well, senior-level well. If so, learning another programming language can dramatically increase career opportunities. It can also help you become a better programmer. I know what I said above. This is a different situation.
Now, you are a “Jack-of-one-trade”, not “Jack-of-no-trades”. In this case, getting into other programming languages is very likely to be beneficial for you. On both sides, in improving your craft and also your career. This is true for a number of reasons.
Knowing more languages improves your thinking
First, every programming language has its characteristic attributes. Not only that different programming languages look differently, i.e. have different syntax. Different programming languages also often require a different kind of thinking, or looking at code from a different point of view.
Writing in specific programming language means following specific paradigms, using specific patterns, etc. This is why learning more than one programming language can help you become a better programmer. It can help you improve your thinking and your ability, how you see things and how you solve problems.
This is also why programmers who know more programming languages can come up with better solutions than those who know only one language. This is because these polymaths can think differently about problems they are dealing with. These polymaths know have a broader library of paradigms, patterns, etc.
This bigger library of knowledge then helps them come up with different, often better, solutions other programmers would never even think about. This is true. Other programmers may never come up with these solutions because they don’t have the “right” knowledge.
Knowing more programming languages expands your toolkit
Next, there is the second reason why knowing multiple programming languages is beneficial. Every programming language is basically a tool. It is a tool that helps you solve some problem, get something done, in a specific way. This is also why programmers often choose one language for one thing and different one for another.
All programming languages are not the same. Not only do they differ in syntax. They also differ in the best use cases. There are programming that are better for simple scripting. Then, there are languages that are better for machine learning. There are also languages that are a better fit web applications, working with databases or data science.
When you know more than one programming language you have more tools in your toolkit. No longer you will have to use the same tool for everything. Instead, you will have more options. You will be able to pick the right tool for the job, according to the problem at hand. This can help you write better and more effective programs.
Learn more programming languages to become more resilient
In tech, everything moves very fast. On one hand, there are new technologies, frameworks, libraries introduced almost every month. On the other, technologies quickly become obsolete. What was popular yesterday, or just a week ago, is a no-go today. This more true about frameworks and libraries than languages.
However, it can happen that some language suddenly becomes less popular, and soon pretty much esoteric. This is another reason why knowing can be beneficial. It helps you diversify your skills and protect yourself from those unforeseen events. There is even a “law” for this. It is called ‘the half-life of knowledge’ law of technology.
What is says is that half of everything you know will be obsolete in the next 18 or 24 months. From this point of you, an expert who chose to specialized in a very narrow domain or discipline is at much bigger risk than a generalist. When technology changes, expert is screwed while the generalist can simply switch to another skill.
Even if that generalist has no better skill to switch to he is still in better position. He is used to learning new things. Thanks to this, it is easier for him to learn something new when he has to because of unforeseen events. Expert will have a hard time getting into “learning” mode. Just imagine some who left school when he was 25.
Now, when he is 40, has to go back. It will take some time before he gets into that “learning” mode. This is more likely to happen in the case of an expert, than a generalist. Aside to that, generalist has the advantage of wider library of knowledge he can build upon. So, “learning” mode or not, learning will still be easier for him.
Know multiple programming languages, very well
This all is great, but there is a catch, just one. Again, we are not talking about shallow understanding. What we are talking about is again about gaining deep expertise. It is about becoming very proficient in another programming language, senior-level. Only this level of proficiency can help you improve your programming and thinking skills.
Only this level can help you become a better programmer. Anything less than that is just a waste of your time. This is also why it is important that you already know at least one programming language very well. This deep previous knowledge will help you learn another programming language faster.
At this moment, you are not starting from scratch. You don’t have to learn everything, all paradigms and principles of programming. You already have the foundation. You can then use this foundation to build upon, and learn new programming language. Just remember that to get the most of this you have to follow two rules of thumb.
Learn more programming languages only after you master one
First, become highly proficient in one programming language before you attempt to learn another. Ignore this rule of thumb and you are very like to end up with a pile of mess. You will become “Jack-of-no-trades”, someone who knows little about many, but don’t have deep understand of any. Avoid this.
Always aim for high proficiency
The second rule of thumb is learning one new language at the time and aiming for high proficiency. Knowing one programming language poorly will not help you become a better programmer. Knowing another programming language will really benefit you only when you achieve certain level of proficiency.
This will probably take some time before you gain such an expertise in another language. However, it will be faster and easier than when you attempted to learn your first programming language. So, have patience. Don’t rush it. Don’t take shortcuts. Don’t settle for shallow understanding. Only high proficiency will benefit you.
Learn at least one new programming language every year
A good practice to become proficient in multiple programming languages is learning at least one new programming language every year. One year is a good goal because it gives you enough time to get deeper, beyond the basics. Thanks to this, you are not rushing anything. Instead, you are slowly, but steadily moving towards understanding the language.
This approach may seem like it is slow, maybe very slow. However, this is not a race. You are not trying to get through as many programming languages as you can. You are trying to learn, and understand, at least one programming language. This is what you should aim at. Not just be able to read the syntax, but to use that language to build even complex programs.
This is again about the “Jack-of-no-trades” and “Jack-of-all-trades”. The first can read the syntax and understand what the program is supposed to do. This might make you feel good, but it will never help you became a better programmer. Nobody will hire you because you are great at reading syntax. Programming is about writing programs, not reading.
On the other hand, “Jack-of-all-trades” can not only read the syntax and understand it, he can also write his own programs. This is what should be your goal, gaining proficiency that will allow you to use the programming language on every-day basis. So, remember to give yourself enough time.
Don’t rush anything. If you need whole 12 months to learn one programming language thoroughly., then give yourself 12 months. If you need less, then go for less. Just make sure you have a comprehensive understanding of the language, and can use it to create complex programs, before you start to learn another one.
Focus on the most effective learning methods
There is one thing I have to make clear. Giving yourself whole year to learn one programming language doesn’t mean you should waste your time. Part of programmer’s mindset is also about being effective and efficient. If you want to become a better programmer you should look for the most effective ways to achieve this goal.
Unfortunately or not, this means that books about programming should be at the bottom of your list of learning resources. Books are great. You can learn a lot from reading them. The problem is that they are not very effective, for two reasons. First, it takes a lot of time to read a book, even if you learn speed reading.
Second, the retention rate is very low. You usually forget more than half of what you’ve read. This is why it is often necessary to re-read a book several times to remember and comprehend everything. This is very ineffective. Just think about how it takes to read a programming book, say, with +300 pages. Next, multiply it by two, or even three.
Now, compare this to learning by watching a tutorial, group discussion, not to mention learning by doing or by teaching it. Compared to these learning methods, especially the last two, reading is significantly less effective. This is I wouldn’t recommend using books as your primary resource of information or primary learning material.
If you want to become a better programmer faster, and in less time, focus on three learning methods. These are video tutorials, learning by doing and learning by teaching. Use one these methods, all of them, or combine them. Whatever works for you. If you still want books, add them as an additional resource and read them before you go to bed.
Maximize your learning rate through blogging
Blog can be an amazing tool for learning. The reason is that it utilizes two of the three most effective learning methods, learning by doing and learning by teaching. These two methods also have the highest retention rates. It is hard to forget what you’ve learned through hands-on experience.
When you learn something by doing it is extremely “sticky”. Learn something from a book and you soon forget it. Learn it by doing, and failing many times, and you will remember it much much longer. This is probably why we learn almost everything this way as children. It is simply the most effective way to learn.
Learning by teaching is also incredibly effective. Why? You can’t teach something, or teach it really well, if you don’t understand it thoroughly. The better you know something the better you can explain it to others. If you can’t explain something, chances are, you don’t really understand it. Otherwise, you could explain it.
Here comes the blogging thing. Blog is a great, and free, platform you can use to utilize both previously mentioned learning method. Put simply, create tutorials about what you don’t know. Meaning, create a project for yourself that will help you learn something. Then, create tutorial on that topic.
This approach will help you a) learn though hands-on experience by working on a project, i.e. writing code by yourself. And, b), teach it to other by creating a tutorial based on your project. It will also test how well you understand the topic because you will have to explain everything in the tutorial.
One more thing. Having active blog can also create new work opportunities. You can use your blog as a portfolio, to demonstrate your skills. Think about it. Even if blog doesn’t help you find a new and better job you will still learn and improve your skill by creating the tutorials. You have nothing to lose. You can only gain.
Epilogue: 16 Tips to Become a Better Programmer
Now you know another four tips that will help you improve your programming skills and become a better programmer. When it comes to learning programming languages, there is one thing to remember. Quality always beats quantity. In other words, it is not about how many programming languages you know, but how well do you know each of them.
If you want to become a better programmer, focus on breadth of knowledge instead of number of languages. Remember what we discussed in the begining about the “Jack-of-all-trades” and “Jack-of-no-trades”. Learn fewer languages, but learn them thoroughly, instead of many and shallowly. This will benefit you more than the other way around.
If you liked this article, please subscribe so you don't miss any future post.
If you'd like to support me and this blog, you can become a patron, or you can buy me a coffee 🙂