Table of Contents
Do you want to become a better programmer? There are many tips that can help you with it. This article will give you four tips that will help you improve your programming skills. Whether you are a beginner, advanced or senior programmer these tips will help you become a better programmer.
16 Tips to Become a Better Programmer Part 1.
16 Tips to Become a Better Programmer Part 2.
16 Tips to Become a Better Programmer Part 4.
Learn design patterns
One topic that can have significant impact on your skills, and help you become a better programmer, are design patterns. Why? Think about it. At the core, the majority of programming problems you may encounter belong to one of few general categories. These programming problems have been solved over and over again like thousands of times.
As we all know, the natural tendency of programmers is to make everything more efficient. Programmers don’t like to waste their time. Make it faster, simpler or replace it with something better. Thanks to this mindset these programming problems have been documented and based on that documentation was created a number of design patterns.
Design patterns help solve problems faster and more elegantly
As I mentioned, design patterns can have significant impact on your programming skills. This is not an overstatement. Imagine you want to dig hole in the wall. You can choose either hammer and chisel or an electric drill. Which option will help you get the job done faster, and also with less mess? Design patterns are variants of the electric drill.
Imagine you encounter a problem. You could spend countless hours trying to solve some problem. Then, when you finally find the solution, you could spend a few more hours debugging, refactoring and polishing your solution. Why? What you can do instead is use some well-tested and proven solution and implement it right away.
This, using a specific design patterns, can help you solve the problem faster and more elegantly. This can help you save a lot of your time. You then can spend this time on more important things.
Distinguish when to “reinvent the wheel” and when not
There are moments when it is a good idea to take the time and try to “reinvent the wheel”. Then, there are also those moments when doing so is not a good idea. It can actually be a very bad idea. When you want to innovate, i.e. create new product, service or whatever, it is a good idea to ignore everybody and do it, to reinvent that damn wheel.
A different situation is when you are dealing with a problem, or a bug, preventing you from making your project work. Meaning, the problem you are dealing with is not the main thing you want to solve. It is just another obstacle. Trying to “reinvent the wheel” at this moment is a waste of time. There are more important things you should work on.
So, do yourself a favor and learn design patterns. This will help you become not only a better programmer but also more efficient. Learning design patterns can help you save time you can then spend doing what you like more. Now, the question is, where to start learning design patterns? By the way, we are talking about programming design patterns.
Make Youtube your university (once again)
Since video tutorials are one of the most effective ways of learning, I recommend you start with video tutorials. There are two good playlists on Youtube you can try. The first one is by Derek Banas. The second is by Christopher Okhravi. These two playlists will give you a lot of information and help you learn probably all you need.
Aside to video tutorials, always get your hands dirty and do the work. Meaning, don’t just watch those tutorials. Open your editor and write the code on your own. Video tutorials are very effective way of learning. However, nothing can ever beat direct hands-on experience. So, always combine watching with coding, or programming.
Learn from books (as usually)
If you prefer books, there are a lot of options you can choose from. For example, there is the Head First Design Patterns book. This book might be a bit older, but design patterns is not a topic that would be changing every month or year. Another very good book is Learning JavaScript Design Patterns by Addy Osmani.
This book might be better if you are interested in, or programming in, JavaScript. It is also newer then the Head First. It is worth mentioning that Addy Osmani is an engineering manager at Google. He works on Chrome. So, it is safe to say that he knows a lot about both, programming as well as JavaScript.
Another book that looks interesting is Mastering JavaScript Design Patterns by Tomas Corral. If you want the latest information, this is probably you go-to book. The 3rd edition of this book was published in 2019. You hardly find anything newer. Aside to these books, you can always find everything on the internet, or Wikipedia.
Use design patterns with caution
A quick warning. Design patterns can be a significant help. However, they are not something you have to use every single time. Think first before you mindlessly implement this or that pattern. Sometimes, a better solution can be a few lines of simple code. Remember, being a better programmer is also about knowing what tool to use and when.
Focus on one thing and develop a specialty
In the previous part, we talked a lot about why it is important to focus on language. Here, we should take this even further. One way to a better programmer is by developing a specialty. Specialty not in the terms of focusing on some framework or library. Although, that can be also viable option to become a better programmer.
At this moment, we are talking about specializing by focusing on a smaller segment of tech. For example, a front-end or back-end development, database admin, full-stack development, WordPress development, etc. This will make it easier for you to learn everything and keep up with the progress in the industry.
Narrow your focus to find better work opportunities
Another benefit of narrowing your focus is that it can help you differentiate yourself and find better opportunities. It is easier to become a well-known expert in one or just few things, than in everything. This can make you more attractive to specific type of clients and employer.
There are clients and employers who are looking for developers who can do everything. However, these are actually the minority. The rest of clients and employers look for developers and programmers with specific skills and knowledge. What’s more, they are also willing to pay for these skills and knowledge, sometimes a lot.
Some experts on some specific topic can charge so much, while others who knows a bit everything can barely make a living. Don’t be afraid to admit that you know a lot about something, you are one of the best at it, but you know nothing about something else. It is not a bad thing to not know everything. Important is knowing a lot about something.
What specialty, or programming language, should you choose depends on you. Think about what do you want to do for living. Or, if you want to build a business, think about the skills you need to learn. Next, prioritize these skills by their importance. After that, narrow your focus solely on these skills and ignore everything else.
Put in the hours – write code, a lot and often
You could spend your whole life watching tutorials and reading books about programming. However, none of these things can ever replace actual coding, or programming. If you want to become a better programmer you have to get your hands dirty. You have to practice writing real code.
It doesn’t matter if your code solves a small problem or a big one. Maybe it doesn’t solve any problem at all. That’s okay. It is not really important what you code. What is important is the coding itself. In other words, it is practice what matters. Practice is the most important thing that is necessary to get better at anything.
If you want to become a better programmer you have to write code as often as possible. The more hours you put into it the better you can get. Also, more time spend writing code means you can progress faster, if you practice in the right way. Meaning, if you spend most of those hours focusing on deliberate practice.
Challenge yourself often
A very good way to practice is by challenging yourself. Don’t waste your time practicing what is easy. Instead, focus on what is hard. Giving yourself task and projects that will really stretch your skills, something that will push you out of your comfort zone. This is how you can get better, by facing challenges, overcoming obstacles and getting through struggles.
Learn how things work and why
When you practice programming, don’t just learn how to write code, or how to use some language, library or framework. Instead, be curious about how that thing works, how it is built. Be also curious about why it works, and it is built, in that specific way. Always try to go at least one layer deeper into the most important concepts.
Learning how to use the syntax is one thing. Learning to understand it is something completely different. The first allows you to use a particular language, framework or library. The second helps you really understand it. This deeper understanding then allows you to use full potential of that language, framework or library.
Deeper understanding allows you to come up with solutions the majority of programmers may not even think about. They might not even think such a solution is possible. The majority of programmers focus on learning the syntax and how to work with it. Only minority also learns how it actually works. The difference between these groups can be staggering.
Make your code public, gather feedback and learn
Putting in the hours will inevitably lead to a lot of code. It would be a missed opportunity to let all that code gather digital dust on your hard drive. What you can do instead is to make that code public. Upload your code on GitHub, Gitlab or whatever service you like. Then, share links to you repositories.
When you make your code, exercises, and projects public, or at least some part of it, other developers can review your code give you feedback. You can then use this feedback to further improve your programming skills. You can also learn about different approaches to solve problems, write code and even think.
From this point of view, writing code can be one of the best ways to become a better programmer. You will practice what you’ve learned. You will have an opportunity to see how the code you wrote works. And, you will also have the opportunity to learn from others by letting them comment on your code and asking them for feedback.
Use your programming practice to build your portfolio
Another huge benefit of writing code on your behalf is that it helps you build your portfolio. This is one of the best ways you can set yourself aside from competition. Not only you can say what you know, you have also a portfolio full of projects you have worked on you can show. Is there a better way to demonstrate your skills?
Work on side projects
We basically just discussed this, although indirectly, when we talked about the practice of writing code. If your read the previous tip, you already know the benefits, learning by doing, learning how things work, learning from feedback and building your portfolio. Taking into account these benefits it is clear that side projects are not waste of time.
Start small
The question is, where to start? Starting a side project may sound daunting. One way to make this easier is by starting something just for fun. Seriously. Don’t try to solve some huge problem. Although, you can do that if you want. Instead, you can start a side project with no expectations other than to have fun and learn.
It doesn’t have to be anything serious. It is perfectly fine if it is something small, even silly. In the end, the goal is to practice programming, to write code. This is all that matters. The idea you are about to realize is secondary. So, don’t let it discourage or stop you. Pick something small and just start.
Create a passion project
Another good way to start a side project is by choosing something passionate about. This is even better because being passion about the project will help you keep going when things get hard. When you encounter some obstacle it can be very discouraging. It can even convince you to stop and abandon the project.
This is less likely to happen when you choose to work on something you are passionate about. In this case, it is easier to sustain motivation and keep going no matter what obstacles may appear on the way. So, ask yourself, what are passionate about? What topic are you interested in? What programming side project can you connect to that topic?
Scratch your own itch
Lastly, you can use side projects to scratch your own itches, to solve your own problems and pains. Is there something that bothers you? Is there some problem you think should be solved, but it is not? Is there some need you can’t satisfy? Is it something you can solve with code? Then, why wait until someone else solve it for you? Do it yourself.
Solving one’s own problems is another great way to start a side project. Similarly to passion projects, motivation is usually not a big problem. It is easier to keep going and continue working on the project when you hit an obstacle. In the end, you are trying to solve something that bothers you, a problem you yourself have.
Create a passion project that scratches your own itch
Probably the best adept for side project is a passion project that scratches your own itch. Not only you are passionate about the topic, you are interested in it and you deeply care about it. There is also some pain or problem, you yourself have, you can solve. This is almost like a lottery ticket. This is something you should aim for.
Brainstorm ideas, find the best ones and start
Set aside a few minutes and brainstorm ideas. Don’t restrict or limit yourself. Also, don’t try to evaluate any idea right away. Instead, write that idea somewhere and think about next one. When you get it, write it down as well. Then, repeat this process as long as you want. At this moment, your goal is quantity of ideas, not quality.
When you are done, when you can’t come up with any new ideas, look at your list. Find the ideas that are the best fit either for passion project or for project that scratches your own itch. The best scenario is an idea that fits both. If you find more than one idea, prioritize them by how difficult they seem to be.
The next step? Pick one of the ideas that seems to be the easiest and start working on it. This is the idea for your first side project. If you’ve filtered out a single idea that makes it easier. Pick that idea and start a side project focused on that.
Start with easy projects, but then focus on the hard ones
Is that prioritization important? Or that search for the best fit? No. These two steps are voluntary. They are supposed to find the easiest way to start your first side project. If you are not afraid to tackle something really challenging, you can skip these steps. Even if you do want to include these two steps you should do it only in the beginning.
These two steps are here just to help you get started with side projects. Similarly to what we talked about in the section about putting in the hours, the goal of a side project should be challenging yourself. Doing only what’s easy would not help you become a better programmer, at least not in the long term.
Challenging yourself is the key to make progress, to improve your programming skills, and become a better programmer. You have to do the hard things, face obstacles and go through struggles. Otherwise, your progress will begin to slow down. Soon, it will stop.
The only way to avoid this is by choosing the hard way. You have to be willing doing what’s hard. You have to willing to get out of your comfort zone. This is where learning and progress happen. So, start with easy projects, but then focus on the hard ones.
Epilogue: How to Become a Better Programmer
Now you know another four tips you can use to become a better programmer. Luckily, you can implement all those tips we talked about today at the same time. How? If you want to develop a specialty, decide what specialty will it be. Next, create a side projects that will help you learn and practice the skills necessary for that specialty.
This will help you implement three of the four tips, developing specialty, working on side projects and putting in the hours. Now, let’s implementing the last one. As you work on your side project, learn design patterns and implement them in your side project. This brings the last question. What side project will you start working on?
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 🙂