In my opinion, there are two types of programmers.There are “just programmers” and on an additional front there are “great programmers”. It’s your pick whether you want to be just an ordinary programmer or a genius great programmer. Well, i am not a great programmer so, i won’t be differentiating programmers and great programmers on the analytical basis. I don’t know how ordinary programmers and super programmers write codes and how do they work. The most considerable basis of the difference between an artless programmer and a great programmer is simply the working attitude. There are some traits and additional skills which are not there in a programmer moreover which should be there in a programmer to be a great programmer.
That was a complicated stuff, we will discuss more of it later in this article but first, let’s find out some further differences among programmers and great programmers so that you can check yourself whether your current skills and consequences align with a great programmer or you still need to work out to be the one.
|BASIS OF DIFFERENCE||PROGRAMMERS||GREAT PROGRAMMERS|
|Salary||Limited Salary (20k-30k INR)||If you are great programmer there is no fixed limit for how much you earn.|
|Attitude||Pessimists and low confidence level.||Always optimistic and ready to take responsibilities.|
|Task management skill||Often need help and low task management skills.||Handle and manage any kind of task like a pro.|
|Learning Abilities||Slow learners.||Quick learners.|
|Communication skill||Satisfactory communication skills.||Supreme communication skills.|
|Time spend to write a code||Additional time required.||Works much faster with conciseness.|
|Stress level||Often stressed and tired||Work confidently with a fresh and cool mind.|
Now you have a skimpy idea that in which category of programmers you lie in. First of all, you need to understand a simple concept of programming i.e simplicity is better than complexity. Simple programmers spend a bunch of time developing “difficult solutions to difficult problems” but supreme programmers spend even more time developing “simple solutions to difficult problems” .
For instance, there are two programmers working for the same company. One of them is a great programmer and the other one is just a programmer. The same task has been assigned to them :
The ordinary programmer responds “I am gonna sum this up in 10 minutes” and end completing it in 5 hours.
The great programmer says “Yah fine, it’s going to take 15 minutes” and finish the task in 15 minutes as promised.
If you are creating complexities you are the one who have to solve them but great programmers works without creating complexities.
For those who have less programming knowledge Mr.Carlo Mazzini have got something to say to educate them in this concern:
Programming languages are like tools. It’s up to you that how you are gonna use these tools.
But the bottom line is, it doesn’t matter how good are you with the tools. What matters is WHAT YOU CAN DO with the tools. Being an expert with tools doesn’t make you a great artisan. And being an artisan is what programming is about.
So, that’s it. An average programmer is average not because of skills, but because of lack of creativity. A great programmer is not a great programmer because of skills, but because of the capability to create.
Before proceeding i would like to bring one more important thing into your notice.
Do not confuse programming as coding. Programming and coding are two different terms. When we say XYZ person is a good coder we indicate that he/she is an expert in some ABC language. Coder are the people who implements and translates the logic and give it a form of a language but programmers tends to develop the logic,analyse the logic and troubleshoot the problem using mathematical principles. Programmers draw the imagination while coders execute the imaginations into reality. In other words we can say programmers are the script writers and directors of a movie while coders are the actors.
Below i am listing down a few focus points on which you have to work thoroughly to become a great programmer :
Foundation of the subject is important. There are few people i know who still stay in coding and programming business without a proper foundation. When i say “foundation”it denotes the following stuff :
1. Basic principle of maths
2. Structural data
4. Statistics and combination
Having a moderate command over JAVA and Php won’t make you a great programmer until and unless you have got a robust programming foundation.
Using the right tool :-
A perfect programmer should know that which tool or language is more appropriate to carry out the particular objective. There are a number of available opensource tools and frameworks. A great programmer is experienced enough to choose the best appropriate tool.
Time management and Task management :-
Great programmers are never off time, they know the value of their time. It’s not just about programming it does not matter whether you are a programmer,engineer or a manager if you can’t respect the time, you stand nowhere as a professional. If you are having an ability to estimate the amount of time required to do an assigned task you are literally owning an ace up your sleeves. The same applies with the task management, you should know to set up the priorities of the assigned tasks.
Team working skills :-
A pro programmer is always comfortable working with a team. In order to handle huge projects a great team synergy is crucial. To become a perfect programmer you must enhance your team working skills. A great programmer should take the responsibility of the whole team he/she should also educate and teach the team mates and lead them to productivity.
A great programmer is a super troubleshooter. He knows how to handle errors, he is having the capability of thinking out of the box to solve abruptly caused problems. Writing a program that correctly handles all the error conditions is very hard, but that’s what a great programmer does.
The way he use google :-
We all use google, everyone use google. For a programmer, google might be the most crucial tool in terms of troubleshooting. A programmer should have an alternate way of using a keyword to search desired results without wasting time. Google is also taking initiatives to enable programmers and developers make use of search engine more intensively. Checkout google developers console and products.