Ever wondered why there are super programmers who are awesome at their jobs while others struggle to write good quality codes? It’s definitely not just which college they went to or what companies they worked for or what training they got. It’s something that’s much more fundamental. It’s about the basics, small things we do every day and the habits we form as we traverse our journey as a programmer. “The difference between an amateur and a professional is in their habits. An amateur has amateur habits. A professional has professional habits. We can never free ourselves from habit. But we can replace bad habits with good ones.” – Steven Pressfield.
Here we have identified 5 fundamental habits that define most Great programmers.
Focus on Problem Solving
Great programmers are awesome at problem solving. Programming is nothing but problem solving, period! Problem solving is the meta-skill while programming essentially tests how effectively you are able to use your Meta skills in solving different kinds of problems. According to Hacker Rank 2018 survey, Problem-solving skills was almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design. According to the report “Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.”
As V. Anton Spraul put it in his Book “Think Like a Programmer , “The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems.”
Have a Methodical Approach
As V. Anton Spraul puts it “Reduce the problem to the point where you know how to solve it and write the solution. Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started.”
Debug as you go
The key difference between efficient programmers and amateurs is that Great programmers approach bugs with curiosity while amateur ones get irritated. A good habit is to regularly debug by going step by step through the solution trying to find where one went wrong. “The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer.
You should regularly test and debug the code as you build it. You must have all your error reporting turned on so that you can actually see your errors as you go along. The habit of debugging as you go saves you precious hours as you don’t have to sift through hundreds or thousands of lines of code just to find the error.
Read, Research, Learn
Good programmers are voracious readers. Regularly reading relevant stuff and enriching your knowledge will easily make your work shine.
Do research and keep yourself updated on tools. Tools can seriously enhance your productivity. Using the right tool such as the right IDE, library, framework, etc. means that you are working efficiently and spending less time on tasks.
Another good habit is to check back on others work on similar problem. No matter what problem you have, someone has probably solved it. A good habit is to check this even if you solved the problem as it helps you can learn from other people’s solutions. However, this should not be a means of first resort and should be used only when you are stuck or would like to understand other perspectives.
Finally, Great coders never stop learning! They keep learning variety of different technologies, new languages, new tools, frameworks etc. Become a master of the technology you are working on, but at the same time, you should also work to pick up skills in a variety of other languages. Devote at least an hour in the day to learning something new when it comes to programming.
Successful programmers are particularly disciplined at one thing: practicing. Practising not just by coding but by doing things that helps hone their problem solving skills. Stuff like Chess puzzles, math problems, Sudoku, video-games …anything… that allows one to solve micro-problems. You can take time out to participate in Open Source projects or side projects. Working on multiple projects will keep you challenged and refine your skills. Google, for example, ensures that engineers invest 20% of their work time, i.e., one day per week on side-projects. You can find exciting short term or side project opportunities on platforms like Upwork, Fiverr, Skilld to name a few.
Go, make these a daily habit and ritual. Soon you will start seeing the change. You will not just start producing superior quality of codes; you will be able to do so while thoroughly enjoying the whole process. Happy Coding!