10 Effective Ways to Become a Good Programmer
·Tamil Selvan.S
A good programmer is someone who always looks both ways before crossing a one-way street. ~Doug Linder
Working
as a software programmer in IT industry, one thing that drives us
daily to the work place; is that fun and passion lies in programming.
But to make that programming a fun and to get an eternal elation out of
it, one needs to learn and adhere to some basics which make you a good
programmer.
I
am not writing mantras which you can follow to become a good
programmer, but the intention is to collate a list of helping tips
which I learned and implemented in the industry to get good results.
There is no definition of a good programmer, but here we are referring
to the category of programmer who have developed excellent IT solutions
and helped in overall growth of this industry.
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) with every set of code you write
One
thing that I realized creating a clear separating line between good
programmer and rest is that zeal to know what and how it is happening.
There is small group of people who can never leave a code without
knowing exactly what is happening when it executes. 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.
If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it. ~Richard Pattis
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.Don’t dismay yourself by looking at changing technology world
Over
these periods in IT industry, I met with many people who are either
disappointed by their work or even left it to search new job saying they
want to learn and work in latest technologies. I don’t see any problem
with this aspiration but the very first incorrect word is the ‘latest
technologies’. What we are hearing everyday and mean here is new tools,
APIs, frameworks and others means coming up everyday to make the
programming easier and quicker. This anyway will continue in technology
world. But what needs to be understood is that the core and basic
technologies changes with much lesser pace than frameworks, tools and
APIs around it. This is like the sea where the surface water moves very
rapidly but the deep water is relatively calm and concentrated and most
of the aqua lives survive here. So, feel yourself in that deep water
and close to core technologies. For e. g. in Java enterprise world,
lots of web frameworks exist and new ones coming every other week. But
the core concepts of request based client-server communication, MVS
pattern, filters/servlets/JSP, resource bundling, XML parsing etc
remains same. So spend more time in learning these core concepts rather
than worrying about ever changing frameworks and tools around it.
Believe me, with the foundation of core concepts, you will always find
easier to learn new frameworks, tools and APIs.
8.Work-arounds don’t work for longer time
Many
times software programmers implement work around solutions (may be
because of lack of time, lack of problem understanding or lack of
technology experience).But over the period these work around solutions
always resulted in corrupting the code, making it less extendible and
maintainable and lot of wastage of time later on. Always prefer to
implement when you know the in-out of the solution. I understand that
it becomes unavoidable in some circumstances, but it’s like, one should
speak truth always but you tell lie in some circumstances.
9.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.
10.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