A good programmer is someone who always looks both ways before crossing a one-way street. ~Doug Linder
Let me start by saying that I do not consider myself to be a competent coder. I consider my coding abilities to be mediocre, and I am still learning and have a long way to go before I am even remotely satisfied with them.Yes, I am better at programming than a lot of others, but that is just because they are lazy and choose to sit about idle all day instead of programming. Their dreadful abilities make my less dreadful abilities appear fantastic.
So most of the tips I will mention below are lessons learnt from failed endeavours, they are what I have wanted to be and I am not. So lets dive in.
1.Work on Basics
As it is true for any industry and any job, the conceptual understanding is the key for success. Unless one has strong conceptual foundation, he/she can never be a good programmer. The core conceptual understanding helps you in designing and implementing the best solutions in the best possible way. If still you feel gap in core computer science and your programming language specific concepts, it’s never too late to go back and review the basics.
2.Start putting question tags (how, what etc.) with every set of code you write
One thing that I noticed as a distinct dividing line between skilled programmers and the rest is the desire to know what is going on and how it is going on. There is a tiny number of folks who can never leave a code without understanding exactly what happens when it runs. I understand that in tight deadlines, we don’t get this liberty always and hence have to leave the code just knowing that it’s doing its job. Although this is a bit different topic of how to handle such situations, but as a programmer one can always try the level best to dig into as much as one can. And believe me, this becomes a habit with time and then you do it unknowingly every time.
3.You learn more by helping others
Most of us have a common tendency of turning our heads towards forums or groups only when we need help. And again a clear separation between the good programmer and rest that the formers visit these places more often to help others. This makes them learn more then they learn getting their problem solved by someone else. Within a team as well, help others to solve their problems. Believe me, understanding others’ problem in their context, investigating on that and providing solutions; will leave you much more learned than before.
4.Write simple, understandable but logical code
As in almost every aspect of life, the formula of KISS (Keep it simple and short) works in programming as well. Write more logical code and avoid complexity. Sometimes people do write complex code just to prove their capability to write such codes. My experience says that simple but logical codes always works well, resulted in fewer issues and are more extendable. I remember an excellent quote
Good code is its own best documentation. As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed?" ~Steve McConnell
5.Spend more time in analyzing the problem, you’ll need less time to fix it
Spend more time in understanding and analyzing the problem and designing solutions for it. You will find the rest of the things quite easily doable. Designing not always mean using modeling languages and tools, it can be as simple as looking at sky and thinking solution in your mind. Those who have habits of pressing keyboard (for coding) the moment get the problem, usually ended us something different than the requirement.
6. Be the first to analyze and review your code
Although a bit difficult, but try to break your own code before others can and with the time you will learn to write close-to-bug-free code. Always do a close and unbiased review of your code. Also never hesitate to take others view on your code. Working with good programmers and taking their feedbacks will surely help you become a good programmer.
7.Read documentation
One of the essential habits of good programmer is that they read lots of documentation. May it be specifications, JSR, API documents, tutorials etc. Reading documents helps you creating that essential foundation based on which you program in best of the way.
8.You can learn from others code as well
I interacted with some excellent programmers who actually have java source project inside their IDE all the time and read/refer that in daily work. They do it not only to fulfill their appetite of knowing the basics but also to learn ways of writing good programs. Reading and referring reliable and known open source code or your senior’s code, can also help you making your programming better.
And the last, not listed above: Don’t compare yourself with others
Your comparison of yourself with others will only result in evolution of negative feelings and un-healthy competition. Everyone has got his or her strengths and weaknesses. It is more important that we understand ours and work on it. I have seen many times that so called ‘fundoo-programmers’ (fundamentally strong programmer) also make silly mistakes. So, analyze yourself, list down your areas of improvement and work on it. Programming is a real fun, enjoy it.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler
If you like my work, please consider
so that I can bring more projects, more articles for you
If you want to learn more about Web Development, feel free to follow me on Youtube!
Top comments (14)
Edit: It appears that the person who this comment was directed at is no longer on DEV. As such this comment lost it's comment trail and so seems to be directed at the author... it's not! This was written in defense of the author.
I feel like this comment is just an attempt to tear down all of the suggestions in this list and it isn't particularly constructive. So many of your statements sound pessimistic and defeatist.
Also following this breakdown with "Your welcome" just sounds arrogant and rude to me.
Ask yourself truthfully do I really oppose all of these points or am I just saying this to be contrarian and trying to build myself up by putting others down?
Thanks for the tips. I don't know, whether it is common for other devs or not, but i normally stop coding when stuck in logic. After sometimes, super simple solution knocks me automatically for the same logic.
Happens for me as well, heck a lot of times giving up easily for just stupid mistakes. XD
Yes :)
Number 6 should be a must for all devs! Sometimes you may spend a lot of time working on a code and then feel anxious to just open a pull request and get someone to review it and get over with it already. But it is possible you'd find little things you have not noticed while coding (most of the times for being tired or you already saw the same code so many times its harder to see clear mistakes). It not only shows your work is solid but also saves time so you can get someone to review with as little possible mistakes as possible. It's a win for everyone involved in the process.
I bet you're a real blast to work with... Try a little less ego if you want to be helpful.
Really good article
3, 4 and mostly 7 is what i love doing
Check out my tips
Thanks for this advice.
Great Article, hope to see more from you.
Great article, I love it.