Wednesday, April 19, 2006

Java Programmers aren't BORN !!!

In most of the interviews, which I have conducted till date, the candidates frequently ask me: “How can I become a good Java programmer?” or “How can I improve my Java skills” or “How did you learn Java”. I thought of sharing some of my methodologies, which might prove useful to some of you.

There is really no short cut to mastering Java, so in this column I will try to talk about the pedagogy. Let us picture for a moment, that a fan is asking Sachin Tendulkar a similar question about cricket:
Fan: "Good morning Sachin, my son would like to start a career in cricket. What advice can you give him?"
Sachin: "Is he playing in Ranjhi?"
Fan: "Oh no, he does not play cricket, but he follows it religiously on television. He has all the statistics on his finger tips"
Sachin: "Oooooh. What other sports does he play?"
Fan: "He plays soccer …… on his computer, you heard about Fifa98/99 …2004. Other than that, we once played table tennis together."

The point I am trying to make here is, you cannot learn Java just by reading fat books by international authors. You need to dirty your hands by writing programs, go through the pain of writing and compiling programs without IDEs and code assist.

Where and how does it all start?
Becoming a programmer starts early in life. You would have been at a great advantage if you were good in mathematics and physics. Here I am not looking for the tools that you learn doing maths, but rather the interest in "thinking" subjects. There are two types of java programmers; ones who know the legal constructs by heart and others who can think in Java.

Then the next step is to want to program for relaxation. Yes, you heard me right. It is not always necessary that the code you write will be used in the project that one is working on. You can code utility methods for some one working on a different project or just practice what you learnt, but all of this apart from the regular deliverables, chat, orkut and mailers. When I embarked on my programming career, all I did during free time was to download code samples from the Internet and study the behavior. It really did not make any sense at first, but as I read through tutorials and code samples, things started correlating.

I believe that being a programmer is not a job; it is a life. In order to learn it, you need to eat, breathe and sleep Java. There should be very few waking moments where you are not thinking about Java.

Let's say, for example, that your official work hours are 9:00am to 6:00pm. It is what happens after those hours that will determine your future as a programmer, i.e. what are you doing between 6:00pm and 9:00am. Before you set off for work, you could be programming in Java. And what about the time from 6:00pm (when you get home) until 23:59:59? If we take into account a few responsibilities, you have an additional 1.5 hours in the morning, and 3 hours in the evening.
I am not making this up. If you want to be a good Java programmer, you need to have the dedication to further your own knowledge "after hours". Instead of orkut, surf for Java concepts, Object orientation, Design Patterns, etc.

The key is the drive behind what you do. If your motivation to be a Java programmer is just to do a job, and to thereby earn a salary, you will never be good. Becoming an excellent Java programmer is neither difficult nor too easy. Follow these steps:

1. Read Java Complete Reference thrice. The first time for legal constructs and sample codes, the second time for understanding the concepts and the third for understanding how to use the concepts programmatically.
2. Program for pleasure, not for money. Spend at least few hours of your own time per day on learning more about programming in Java.
3. Never stop learning. The half-life of our IT knowledge is 18 months. We cannot afford to stand still; otherwise we will be obsolete in a very short period of time.
4. Don't read books - study them. When I read a new Java book, I open it next to my workstation and then I type in the code as I progress. This is a bit slower, but you learn faster.

There are very few people who have the potential to become good programmers. It is a tiny percentage of the programmers on the apex of the pyramid that can do it. Our goal is to reach the apex. These are some thoughts on how to become an excellent Java programmer. They are tough jobs to do, and by no means complete, but are meant to get you thinking.

5 Comments:

At 6:33 PM, Anonymous Anonymous said...

hey dude... kya bat hai...good 2 read.. and understood many things..

 
At 11:42 PM, Anonymous Anonymous said...

Good One Amey Saheb....

Quality Suggestions and A Good Insight!

Am sure readers will take learnings from this blog!

 
At 10:41 PM, Anonymous Anonymous said...

I am a reader and I did. [:)]

 
At 4:22 PM, Blogger Nitin said...

Amey...this will definitely help me as I used read the code till now..Thanks a lot

 
At 8:25 AM, Anonymous Anonymous said...

Amey.. this post is really helpful for those aspiring to Master Java.. I am one of them :-)

 

Post a Comment

<< Home