So what does it mean to become a good software developer? If you think it involves being a genius, you're wrong. Being a good developer has a much stronger correlation with a hard work ethic and a passion for programming than it does with pure intelligence. I truly believe everyone has the ability to become a great developer if they put their mind to it.
That's why in this article I want to share 7 tips to focus your energy on that will make you a better programmer.
1. Code Consistently
I know this is obvious but I cannot stress it enough. If you want to be a good software developer, you need to practice consistently! It is the only way to truly build the skill of programming. The other tips on this list will help a lot but not if you don't practice!
Recently, I started contributing to my Github page once a day. Meaning I pushed at least one commit every day. These commits then show up on my Github profile as varying shades of green. Depending on the number of contributions (the darker the square, the more contributions made). If you are comfortable with Github, this could be a great way to track your progress!
If you aren't comfortable with building your own projects or with Github yet, don't worry! There are many other ways to practice a little every day. I always love to recommend Codewars to beginners. Codewars is an online platform that gives you random challenges at varying levels for a programming language of your choosing. After you complete (or give up) on the challenge, it gives you some of the best user solutions. Which can help immensely in understanding how problems can be solved and to help build better coding practices.
I know it's not always possible to code every day. We all have lives, jobs and people who are dependent on us. Just do what you can and realize that the more effort you put into your skills, the more you will get out of your time!
2. Read Books
Reading books has become my favourite way to learn about foreign programming concepts and technologies. Seriously, I think it changed my life. The benefit of reading a book is that it gives a holistic view of a given topic. While also building upon itself in an intuitive and easy to follow manner.
Although it is possible to learn a new programming language by simply googling every question you have. It quickly becomes an inefficient and difficult process. Not to mention, one that leaves you with blaring gaps in your knowledge.
It's important to note that you don't need to fully grasp every concept that a book has to offer. Even a brief introduction to all the major concepts can be invaluable when you are stuck on a coding problem. Making it much more likely to recall what you read earlier and do further research. More often than not, that recollection puts you on the right track to solving said problem.
In addition to this, I can say from personal experience that after I read a book on a programming language, it becomes much simpler to google search the problems I am facing. Which in turn, helps to create quality solutions.
So if you know you will be using a programming language or technology often, investing time now in reading a book with save you a lot more time and headaches in the future! Even if it's a little nerdy.
3. Take Breaks
Getting stuck on problems is a simple fact of life if you're a programmer. Becoming a good software developer means making a habit of taking breaks when that inevitable bug that makes you want to cry shows up in your code.
All too often as developers, we will get stuck on a tricky solution or a bug and instead of taking a step back, we narrow our focus deeper on the issue. Although this can lead to solving the problem, often what a solution really needs is a fresh mind working on the issue. After a short walk or coffee break, you will usually find that a solution may just come to you. At the very least, it should allow you to see things from a different perspective. Learning how to let go of a problem and rest your mind is critical to overcoming difficult obstacles. As most can attest, this is also a lot easier said than done! Especially if you're a stubborn person.
It can be hard to take a break when you are too consumed by finding a solution. Just try to remember, sometimes the best thing you can do is nothing at all!
4. Find A Mentor & Code Reviews
It's no secret that programming can be confusing. Having a more experienced developer around to ask questions to can be incredibly helpful to fast track your learning. By picking an experienced developer's brain, you can gain insights into the way they approach problem-solving, receive tips for productivity and hear their point of view on different topics in programming.
Receiving code reviews can also be a great way to pinpoint weaknesses in your code and find areas of improvement. I know that this can be challenging for some people. Receiving criticism on something that you are working hard towards can be discouraging. However, if you want to be great, you need to be able to take criticism and learn from it!
Finding a mentor can be difficult. The number of beginner developers far outweighs the experienced ones. So it's not always possible to find someone that can show you the path to greatness. The best way to get consistent help is with a junior development role. Where you will be working alongside (hopefully) better developers for 8 hours a day. However, I know this isn't always an option either. Especially if you are just starting out.
For easy access to experienced developers, I suggest turning your attention to youtube developers. There are many developers out there that attempt to help beginners learn quickly and with easy access. Andy Sterkowitz and Clément Mihailescu are two faces I see often.
Virtual mentors like these are not always the greatest alternative. You will lack the ability to ask direct questions, and it is hard to know if they are always being truthful or simply trying to get more viewers. However, when no other alternative exists, you can learn a lot from guys like these!
5. Stay Up To Date
Software development is an incredibly fast-paced industry. If you're not careful, it can be easy to fall behind on everything that's happening. Becoming a good developer doesn't mean following every new piece of technology that surfaces. That would be difficult and unbeneficial. However, it's important to at least know the trends and general direction that the industry is moving in.
What's the best way to stay up to date on everything tech? Well, there's plenty of podcasts, youtube channels, news publications and newsletters that exist for this very purpose. Like thecodebytes newsletter! My advice is to do some googling on the pockets of programming that interest you. Whether it's web development/design, database administration, game development, or machine learning. Find the sources that fit your career path and consume the media that interests you most!
6. Dissect Source Code
Notice that I didn't say dissect good source code? While beneficial, looking at good source code is only one part of the puzzle. In my opinion, it's more important to look at different styles of code. Whether it's written by your co-workers or random projects you find on Github.
Learning how to identify the benefits and drawbacks of certain styles of writing code will improve your coding abilities in many ways. As a developer, you are always reading other people's code. Whether it's code written on Stackoverflow, youtube tutorials, GitHub pages etc. Making a habit of analyzing what is good or bad about a piece of code will push your boundaries as a developer and give you a more critical eye about your own code.
The idea here is to get in the habit of analyzing code you come across in the wild. As you will come across it often and it does not require extra effort to search out. If you still want to find good source code, look for code that has gone through multiple code reviews from large companies. Google or any company in FAANG is a good fit for this. You can find open-source google projects here. If you are too lazy to find a project, here is a link to their Kubernetes project on Github.
7. Stay Positive
The last piece of advice I can give you is to stay positive. Becoming a good software developer is a long and daunting path. One that is filled with a lot of ups and downs. While the highs can be great, you'll have more than your fair share of days that you hit your head against your keyboard and question your life choices. We all do.
What's important to remember through the lows is that everyone who tries to improve themselves will face days where they feel they are moving backwards or are staying stagnant. It's critical to ignore that voice in your head that says "you can't do this". Ignore that voice long enough and one day you will look back and realize you are actually very proficient at what you do. The days you doubt yourself will get fewer and farther between and you will spend more time doing what you love, instead of dealing with self-doubt. That much I can promise you!
So that's about it! 7 tips that will help you become a good software developer. Remember that, above all else, determination and a passion for programming will take you farther than anything. Including intelligence! So go out and start coding now. It's the only way to become great.
Want to hear some ways to make passive income coding? You should check this out!