You might see several programmers solving questions in a
quick time. Have you ever thought of becoming an “Efficient programmer” like
them?
In this post I am going to give you some direct tips for you
to become an efficient programmer.
Anyone who knows a bit of programming in some language can
call himself a programmer. But the truth is that he isn’t in real. This might
be harsh but let me make a bold statement saying that knowing a programming
language cannot make you a good programmer. Programming is completely different
from learning. Learning is all about knowing the facts and learning about
existing concepts and techniques whereas programming is all about thinking and
finding new ways to solve a particular problem. A programmer always finds
shortest ways to solve a problem.
So how can I become a good programmer? Perhaps “EFFICIENT
PROGRAMMER!” .There are several ways but here I came up with some simple but
efficient tips that can help you become a good programmer.
1.
Be perfect in algorithms and data structures:
A good programmer always knows the way how things work.
Perfection in data structures is must for every programmer. The basics of
starting to solve a problem is to think about how to store the data. As a
programmer you need to know the basic data structures and how they work.
Choosing a proper data structure will make your work easy. Which data structure
to use! To understand the importance of data structures and how to choose a
particular data structure for a given problem, let us take an example:
Example:
let us consider the following problem:
“There is an army of robots aligned sequentially .Your task is
to replace the robot from that position and place it in the specified location.”
To solve this problem, our first step is to think “How can I
store an army of robots in a continuous manner? “ We have 2 options:
1.
Array
2.
Linked List
Next question to be raised is “Now among array and linked
list which one to choose?” Well, the
task is that we have to remove a robot from a specified position and place it
in some other specified position. If you know about data structures then you might
already know that insertions and deletions are efficiently done in case of
linked lists whereas arrays will have to maintain the overhead of shifting the
elements after successful deletion. So the data structure which is to be used
for this problem is Linked List.
In this way if you have the basic knowledge of data
structures and how they work, you are 50% done with solving your problem.
Similarly having the basic knowledge on various algorithms
will let you map your problem with them. For example, your problem is to “What
is the efficient way of searching a particular key in a million keys?” One
might start thinking as “Given a key I can compare it with all the keys
sequentially and when the key is matched at a particular location, I will stop
searching .“ This strategy works but it is not as efficient as you think. This
method takes O(n) time complexity. So how can we make I better? If you know
about searching algorithms like “Binary search” you are done solving this problem.
We can use binary search to solve the problem.
In this way if you are familiar with some basic data
structures and some algorithms you can solve almost half of the problem because
the remaining half would mainly depend on the implementation.
So start learning
various algorithms. You can refer my recent post on:
where I have clearly specified top online resources for
learning programming from scratch.
You can also check my website for different topics on “Programming,
web , Placements and mobile app development in android.
2.
Practise….Practise….Practise
There is no other shortcut and magical way you can learn programming.
Just practise. Try to solve as many problems as you can. There are several
websites which conduct online coding competitions .Websites like Hacker rank ,
Code chef , top coder are some of the best where you can practise coding. If
you are a beginner then I suggest you to go for Hacker Rank.
3.
Participate in coding competitions:
One way to show your potential is to show yourself. In this competitive
world you must show your potential to others so that they may recognize you. So start participating in several coding
competitions and hackathons online .Participate in Google’s code jam, ACM
programming contest and top coder’s monthly contests. Participating in such
events not only gives you recognition but also gives you lot of practise. Once you
start participating in these events your mind automatically turns from a normal
person’s brain to a programmer’s brain.
4.
Start small:
This is where most of the students take a wrong direction.
Do not go for tackling a professional level problem initially. Try to practise
beginner level problems first and then go for a bit difficult problems. In this
way, solving simple problems initially will definitely boost up your
confidence. Instead if you go for an expert level problem then you will have to
quit solving the problem within a few minutes. So for beginners it is best to
start solving simple problems.
When you are trying to solve a problem whether it is a small
one or a big one, dividing the given problem into a sub problem can make your
life easy. Try to solve the problem using smaller inputs and then move upwards.
This is what I call as “Bottom up” approach.
5.
Never give up:
This strategy works in different situations but in
programming whenever you are unable to solve a problem, it means that you are
not thinking the right way. So try again in a different way. Think various
possibilities. Sometimes when you are unable to solve a problem you definitely
feel like quitting the job. But that is not the right thing to do. Just be calm
and think in a different way. If you are a beginner, it takes some time for you
to get adapted to problem solving. So try and try until you get succeeded in
solving the problem .Even the greatest programmers have faced the same
situation while solving programming problems.
Any problem can be solved .Just it needs a bit of
concentration, patience and lot of practise.
6.
Ask google:
This is the most important tip and can be considered as the “Tip
of the post”. If you are stuck with a problem do not give up. Ask your friend
google. You can find solution to almost any problem on Google. Try posting your
questions on websites like “Stack Overflow” where several programmers answer
questions almost all the programming queries.
“Always remember that you are not the only one who faced the
problem. Somebody might have faced it and found a solution! “
7.
Love to code :
If you really want to become a good programmer then among
all the aspects what you need the most is “Interest in programming!” .This
might seem funny but without having any interest in programming, you cannot be an
“Efficient programmer”. Do not code for the sake of passing an exam or to get a
job. Coding is all about fun. So instead of liking to code, love to code. Always
be enthusiastic and excited to meet new problems.
Eventually I want to conclude that no one becomes an expert
in programming overnight. It takes a lot of time, effort and hard work which
pays off.
So start practising and become an “EFFICIENT PROGRAMMER!”
Please share your view on this post in the comments !
Comments
Post a Comment
Thanks for your comments!