Being a good programmer can mean many things to different people. For some, it can mean you are a good problem solver, for others it means you are the master of a particular programming language and still some would argue that neither of those things can make you a good developer. Being a good programmer depends on past experience, the amount of growth you have made, your interests, rationale and many other areas. In this article, I will discuss several ways that you can become a better programmer by using the tools that are available and the development of good personal habits that will help you go far. I know some of these are common sense, but don’t bash me for it; I just wanted to lay them all out on paper (or screen).
1. Read Other People’s Code
While your goal may be to write good code, you must also be a good reader in order to become more proficient. Reading other people’s code will allow you to understand different points of view in problem solving as well as introduce you to new techniques. It is important to have an objective to your reading, such as learning a new programming paradigm or how to work with a new API. Reading code can be a more efficient use of your time when learning something new than trudging through documentation. To become better programmers we have to read what works and learn to develop better code writing habits.
2. Develop Personal Motivation
Being motivated to become better at your chosen profession is an excellent step in the right direction. Just like dieting, going to the gym and other onerous tasks, if we do not have the right motivation when pursuing these goals we will never be able to reach them. Becoming a good developer takes much more than a desire to make it happen. It takes a strong commitment to do whatever it takes whether that means you are spending time outside of work studying new techniques, meeting with other professionals or traveling to conferences. You have to have a strong drive to be the best.
3. Get a Mentor
Having a mentor is an important part of improving your programming skill. This should be a person that you aspire to be like professionally, that has a background that you can relate to and that you have a lot to learn from. Finding a mentor that you “click” with can be a long process but don’t give up. By hanging out with better programmers you will pick up good professional habits and become smarter.
4. Learn to Listen
Listening is an art form and there are many programmers out there that are not good listeners and it ultimately hurts them at their craft. Learn to listen to what the customer has to say, listen to your coworkers when they are discussing the project. Don’t assume that what you think is really what they want. The best way to prevent problems and unnecessary work as a programmer is to really listen to what is being said and check your ego at the door.
5. Gain Confidence
The mark of a good programmer is their confidence in their abilities. Why are good programmers so confident? They know they have put in the time and effort necessary to truly understand what they are talking about. This knowledge enables them to make the best decisions and be able to discuss or defend them in a productive way when needed. Don’t confuse confidence with arrogance! Arrogance is deadly to a programmer and often results in poor choices, dead team dynamic and other nasty results of the “I know better” effect. Become confident enough in your abilities to have intelligent conversations with teammates that also allows you to listen and become better informed in the process.
6. Join a User Group
Local user groups for programmers are everywhere and often only require a small, monthly time commitment. However, the payoffs in the end are huge. These groups are usually structured around two concepts: teaching and networking. Not only will you be able to learn something new at each monthly presentation but you will gain valuable contacts in your industry that could later lead to internships, jobs or mentors. Later, when you have become more comfortable with your group and skills, you may want to present something on a topic as well (see #10).
7. Read at Least Two Books a Month
Whether you enjoy a good mystery novel or science fiction, continue to read your favorite novels in your spare time. While I suggest that good programmers read at least one technical book in a span of two weeks, it is important to read any book that takes your fancy. By reading books you will be focusing and exploring a concept in depth as opposed to “grazing” on information such as blogs, tweets and other online reading that rarely goes in-depth on a topic. This way, you will be better able to take these lessons and concepts and apply them to the real world.
The second benefit to reading two books a month is that it will expand your boundaries and force you to become acquainted on topics you may not have encountered otherwise. Two books a month is 24 books a year, which means that you will read books on topics you are not familiar with, thus causing new growth in other areas of knowledge.
8. Learn to Use Your Debugger
It may seem like a simple idea since debugging is one of the main parts of the process of writing software but many developers are not as familiar as they could be with their debugger. The reason for this is that many developers do not see the process of tracking down problems in their code as productive and educational as they could. For some programmers, finding bugs means you did not spend enough time planning or that you have been sloppy during your code writing. Errors in your code should not be taken personally. Humans will continue to make mistakes and that is something we have to accept. Stop looking at your debugger as an evil you need to avoid and see it as a tool you can use to create better code.
9. Never Stop Learning
As programmers, we never stop learning. Programmers that have tuned out new technologies to hole up in the area they are familiar with soon find themselves out of work with a skill set that is no longer marketable. Over the years the continuous pattern of framework upgrades, version numbers and release dates start to run together but you must keep your skills up to date by evaluating new technology and trends as they are happening. This will allow you to be on top of the game when the next game-changing idea is happening and allow you to be ahead of the curve. This is one area, where we can help. We offer a variety of open source training options on a variety of technologies.
10. Share Your Knowledge
The best way to learn something is to teach it to someone else. Teaching another person forces you to evaluate the concept differently than you have had to in the past and sometimes requires you to see it from a different point of view in order to help your student understand. Offer to speak at conferences or local user groups, tutor students at a local school or start writing a teaching blog. All of these are easy ways to share what you know and what you are learning.
11. Learn Keyboard Shortcuts
Programmers have often been compared to musicians. The need to practice to become better at their chosen skill as well as become intimately familiar with our instrument in order to be great at it. For programmer this means knowing how to type quickly and accurately as well as know your way around keyboard shortcuts that will make you a faster developer. Working quickly and efficiently is one of the traits that separates good programmers from the rest of the pack. As a fast programmer you will be able to find better solutions by creating and iterating than struggling with the keyboard through your first solution. While it doesn’t make sense to write thousands of lines of bad code (even quickly), it does make sense that the more code you write the better you will become at it.
12. Learn When to Take a Break
One of the problems in the programming industry is our tendency to become overworked. Meetings, reports, documentation, reviews, etc…all take up valuable coding time, which then means we have to work extra hard to get things out by the deadline. When confronted with a problem or a development issue, our first thought it is work on it for many hours until the issue is resolved. Don’t do this.
When working on a task such as programming that requires concentration, you will often find that you are making more mistakes or creating more problems when you are tired. Stopping programming is often a better solution when tired than having to fix the mess you made. The work will still be there and the problem will be easier to solve when you are well rested and eager to face it. Avoid staying late to trying to finish things unless absolutely necessary and learn to take periodic breaks from programming doing other tasks such as writing documentation or adding comments. Since your subconscious mind is always working on a problem, you may find the solution to that annoying bug while standing in the shower the next morning or while taking a jog.
In the end, if you are truly motivated, continue learning and are doing everything you can to make that goal happen there is no reason you will not be successful. Programming is an art that must be practiced in order to be perfected. Strive to write better and cleaner code, to be proud of the code that you write and honored to put your name on it. Hopefully you can come away from this article with something that make YOU a better programmer!