1. Learn How to Learn Effectively
Itâs the most important skill in your life. Seriously. Software developers learn all the time. And even if programming is just a hobby to you, you still need to learn efficiently.
The basics are quite straightforward. To learn effectively, you have to build a habit â preferably learn every day. Additionally, use these three techniques:
Active recall â Try to retrieve information from memory instead of rereading it. You can use flashcards or some similar tool.
Spaced repetition â Cramming doesnât work in the long run. You need to learn regularly and repeat material a few times over weeks or months until you get it.
Tests â There is a reason we had tests at school. When weâre preparing for a test, weâre focused. Look for online tests to solidify your learning. It will greatly accelerate your progress.
2. Have Some Fun
Youâll struggle. Programming is difficult. Youâll fail often. Whether itâs some obscure bug or a concept you canât grasp, challenges will appear. The best way to stay motivated in the face of adversity? By having fun!
Take a break from your task and find some joy in programming. You can solve algorithmic puzzles, take a look at creative coding, or create some silly app â whatever makes you smile.
Programming is not a chore. You need to have a good time and find something that sparks your curiosity, so look for opportunities to enjoy yourself.
3. Learn to Search for Information
Youâll spend lots of time searching for information. You need to learn how to do it proficiently.
Google, Stack Overflow, and GitHub issues will become your natural habitat, so make sure you can use them effectively. And donât ever be shy when you need to look for something trivial â we all do it.
4. Donât Procrastinate (Too Much)
Practice makes perfect. Itâs that simple. No amount of tutorials, courses, and boot camps can act as a substitute for it. Youâll be tempted to enroll in another class. Donât do it.
You donât need other videos explaining these same subjects over and over again. You need to build things yourself. Every app you build is worth dozens of tutorials. Create, fail, explore â thatâs how you grow.
5. Learn the Debugging Basics
Thereâs nothing more annoying than a bug you canât find. Sometimes the project stops for weeks because one nasty bug is haunting you. Unfortunately, debugging is a huge part of programming and you have to master it.
Study debugging techniques and learn to use logs and debuggers efficiently. As a quick tip, I recommend debugging by divide and conquer. Itâs a technique in which you split suspicious code by half and look at which half seems to be broken. Repeat it on smaller and smaller code parts until you find a culprit.
6. Get Your Hands Dirty
Often youâll have a problem and no idea how to tackle it. Creating a huge app from scratch seems like an impossible venture. Instead of wondering how to do it, do it. Isolate some small part and start coding.
You donât need to create perfect code. You need to have something and try out some ideas. It will give you a better understanding of your problem.
Thinking before programming is necessary, but youâll only know if your plan is feasible at all when you get your hands dirty.
7. Be Considerate â Write Readable Code
âAny fool can write code that a computer can understand. Good programmers write code that humans can understand.â â Martin Fowler
This quote should be your mantra. Building applications is a team sport and you have to communicate with other team members through your code. Even if youâre working solo on a personal project, youâre communicating with someone else â your future self.
Be considerate. Think about everyone who will read your code. Study code readability and maintainability. Youâll reap the benefits fast.

8. Clean Up After Yourself
Youâll make a mess of your code â I guarantee it. Applications tend to grow in unpredictable directions and the code inevitably gets more and more cluttered. After some time, it will become unwieldy and each minor change may require dozens of adjustments.
To avoid that, clean something every time you touch a file. Get rid of unnecessary things that impede code understanding. Remove unused variables, change the names of others. Delete outdated comments, simplify your abstractions. Leave the code in a better state than you encountered it in.
9. Read the Code
Do you know how you become a great writer? By reading great writers and trying to emulate them until you find your own voice. Itâs the same with programmers.
Look for open source projects with great code quality and try to understand them. If youâve got some proficient developers at your company, look at their commits. Study the code of the greats and try to learn from it. Reading their code is like reading their minds âtake advantage of that.
10. Blog
You should have a blog. Period. It may serve multiple purposes. You can use it as a diary of your progress and growth. You can learn a lot from writing about the things you are learning. The process will solidify and organize your knowledge. You can help others who face these same problems. Maybe youâll even find a job or build a community. Just blog.
I didnât start a blog until I was five years into my programming journey. Itâs my greatest learning regret.
11. Understand Why You Write the Code
Your job is to solve problems â not write code. Learn how to identify what problems you are trying to solve: your client or boss's requirements.
As programmers, we tend to waste hours on unimportant things. We polish our code like a priceless car. But the code is just a tool. The product is what matters. Being productive is different from being busy. Being productive is different from being a perfectionist. Being productive is all about providing value. Code to provide the value.
12. Code Daily
Schedule some minimal time for coding every day. You may take a day or two off, but building a habit of programming is essential.
Neil Gaiman once said:
Do what only you can do best: Make good art. Make it on the bad days, make it on the good days, too.
Maybe your code is not art (yet), but you should listen to Neil. Consistency is essential for your success as a developer.

13. Take Notes
You will forget almost everything you read today. Donât trust your memory and document everything â the problems you encountered and how you solved them. Algorithms, functions, learning materials. Everything.
You can use your blog as a space for your notes or some of the other countless tools available. Whatever works for you. But please take notes. Build your own knowledge database.
14. Specialize
You canât be a jack of all trades. Programming is too vast and you will never learn everything. Besides, experts tend to be rewarded generously.
Especially if youâre a junior developer, you need to pick your tech stack. Nobody expects you to know everything, but you should have in-depth knowledge of something.
15. Embrace the Failure
Programming is hard. Youâll fail many more times than you imagine. And thatâs fine. As long as youâre encountering new ways to fail, youâre making progress.
The secret is not to be too hard on yourself. Embrace the failure and recognize that itâs an essential part of the process. Extend beyond your limits. Make the failure you friend.
16. Be Lazy
Look for optimizations everywhere. Automate every mundane and boring thing you can. Look for the patterns in your work, repeated code, or similar features. Then automate them.
Every line of code is expensive to write and maintain. Look for ways to write less code, and youâll find youâve got fewer bugs and better quality. Use well-tested libraries instead of writing everything from scratch.
Leverage the tools at your disposal to create the most value from the least time and code.
17. Rest
Taking care of your health is amongst the best things you can do for your career. And your life. I wonât go into all the overworking drawbacks, but to name a few of them: raised stress level, lowered energy, troubles with sleep, feeling distracted, mood changes. And youâll work worse.
Overworking is not worth it, really. Set some boundaries. For some, working 40 hours a week is the maximum. Others can work as long as 50 or 60. It doesn't matter where your limit is. What matters is not exceeding it.
18. Be Curious
Curiosity is what Iâm looking for when Iâm recruiting junior developers. A curious person always wants to learn more and understand how and why things work. For my company, your long-term contribution is more important than your current skill set.
Be interested. It will benefit your growth and your job hunt. It will also make your life more interesting.
Conclusion
That was a lot of tips, but there are more of them. Maybe youâve got something to add?