Java Programmers aren't Born
2004-11-30 The Java Specialists' Newsletter [Issue 100] -
Java Programmers aren't Born
Dr. Heinz M. Kabutz
If you are reading this, and have not subscribed, please consider doing it now by going to our
subscribe page. You can subscribe either via email or RSS.
Welcome to the 100th edition of
The Java(tm) Specialists' Newsletter, sent to 102
countries around the earth. I get excited when new
countries join the newsletter, and especially so if they are
in Africa. I would therefore like to extend a
special welcome to Josef Garvi from Niger, probably the only
Java programmer in Niger ;-)
Today is the
4th anniversary of our newsletter. What
started as a tiny newsletter four years ago to this day, put
together for 80 friends
and colleagues, has grown into a readership of approximately
10000, with 500 visitors to our website daily. Many people
have asked me where the ideas
for the newsletter come from. This is a difficult question
to answer. I have tried to answer this in a webpage entitled:
is Heinz, and where do all the ideas come from?. This
webpage is my personal opinion, so please don't be offended
by it, ok?
There are several reasons we are celebrating today. First
off, ours is probably the only programming newsletter that is
published internationally from Africa on a regular basis
(please let me know if this is incorrect). Secondly, ours is
one of very few Java publication that specifically caters for
Java Specialists. Thirdly, 4 years is a long time, and 100
newsletters are a lot newsletters. Any excuse for a party is
a good excuse, so let's party!!
What an interesting four years this has been! I believe that
as Java geeks, we should spend more time sharing our
knowledge freely. I have strongly resisted becoming "yet
another" commercialised Java publication, and can say that I
still do not derive any direct income from
The Java(tm) Specialists' Newsletter. [My
auditor scolds me every time he sees me. His standard
question is: when will you start charging your readers? ;-]
One of the advantages of living in South Africa is that the
market is quite small, and if you have a good name, you can
do exceptionally well down here. However, the size of the
market is also a limitation.
As from next year, I intend to spend more time closer to
Europe. I already visit Europe several times a year, but
with the restructuring of our business, it will be possible
to significantly reduce the cost of doing business in
Germany, France, Denmark, UK, Sweden, etc. Currently, the
flight is so expensive, and so long, that it is almost
impossible for me to fly to Europe for one or two days of
consulting. Similarly, if you want to attend a course at a
nice location, South Africa is too far and too costly.
What does this mean to you? If your company needs Java
or Design Patterns training (
or if you are in need of a no-nonsense consultant, close to
Europe, then I will now be able to help you. As always,
please send me
an email detailing how I can assist.
Before I start this Java newsletter, I wanted to mention an
bug in PropertyDescriptor, found by Michael Santos
from Sao Vicente in Brazil. This bug appeared in JDK 1.4.0, and disappeared
again in JDK 1.5.0. It did not exist before JDK 1.4.0.
Java Programmers aren't Born
I am frequently asked: How can I become a good Java
programmer? I know that the majority of subscribers to
The Java(tm) Specialists' Newsletter
are already excellent Java programmers, but if you are asked
this question, here is an answer you can pass along.
How can I become a good Java programmer? This is an
interesting question, so let us picture for a
moment, that a fan is asking David Beckham a similar question
Fan: "Good morning Mr Beckham, my son would like to start a
career playing soccer. What advice can you give him?"
Beckham: "Is he playing in the junior league?"
Fan: "Oh no, he does not play soccer. But he often watches
it on television."
Beckham: "Oooooh. What other sports does he play?"
Fan: "He plays golf. On his computer. Other than that, we
once played table tennis together."
Beckham: "Aha. How old is your son, by the way?"
Fan: "He is 35."
Beckham: "So, your son does not play soccer, he does not do
any other sport, he is already 35 years old, but he wants to
become a professional soccer player? What is the real
reason? The real real reason?"
[and yes the answer is always the same]
Fan: "I heard that you can earn lots of money playing soccer."
[For those of you who DO want a career in soccer, I was speaking
to my father-in-law Gregory Kytides the other day about this.
Gregory was a professional soccer player in the 70s, and was
voted "player of the year" in South Africa in 1971. He told
me that unless you start playing soccer when you are a young
child, you will never be good.]
Where 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.
Then the next step is to want to program for free. Yes, you
heard me right. Remember the soccer example. Imagine if
David Beckham had not wanted to play soccer in school because
he wanted to wait until he got paid for it? Isn't that an
absurd idea? Yet how many programmers want to get paid to do
something which is, essentially, an extremely enjoyable
When I embarked on my programming career, salaries for
computer programmers were quite low. I certainly did not
study computer science, in order to get a high-paying job.
No, I studied computer science, because I have always loved
I am a firm believer in getting a solid programming
foundation. The minimum that you should have is a bachelor
of science, majoring in Computer Science. In addition, being
good at Mathematics helps.
Ok, so now you are programming for free, and you have a
BSc in Computer Science, what do you need to do to become good?
I believe that being a programmer is not a job, it is a life.
In order to learn it, you need to eat, breathe, 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 day starts at
8:30, and ends at 17:00. It is what happens after those hours,
that will determine your future as a programmer. i.e. what
are you doing between 6:00 and 8:00, before you set off for
work? You could be programming in Java. And what about the
time from 17:30 (when you get home) until 24:00? If we take
into account a few responsibilities, you have an additional
1.5 hours in the morning, and 6 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 christmas presents,
buy books from Amazon.com on Java, Object orientation, Design
Imagine if at the age of 28, you had $600m. What would you
spend your days doing? Mark
Shuttleworth is probably South Africa's most successful
(or in his own words, most "lucky") software developer. Mark
started Thawte in his garage, and then sold it 4 years later
I have often discussed this question with friends. What
would I be doing if I suddenly had $600m at my disposal, tax
free? My feeling is that I would be doing exactly what I am
doing right now. Writing newsletters, writing programs, and
learning more about Java and object orientation.
A magazine asked Mark how many hours he spends behind a
computer screen per week. His reply? 90 hours. Here is a
guy, who has struck it extremely lucky, and who will not have
to work for the rest of his life, yet he spends 90 hours a
week behind his computer screen??? Is he mad?! Yet that is
what I do, and I would be no different to him. 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 not difficult, just
follow these easy steps:
- Do a degree at a recognised institution majoring (amongst
others) in Computer Science. Do at least your BSc, but if
possible, also your MSc.
- Program for pleasure, not for money. Spend at least four
hours of your own time per day on learning more about
programming in Java. Hang, it is tough for me as well, but
I have to do this in order to keep relevant.
- Never stop learning. The half-life of your IT knowledge
is 18 months. You cannot afford to stand still, otherwise
you will be obsolete in a very short period of time.
- Don't read books - study them. When I read a new Java
book, I open it next to my notebook, and then I type in the
code as I progress. This is a bit slower, but you learn
There are very very few people who have the potential to be
good programmers. It is a tiny percentage, on the right of
the bell curve, that can do it.
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. The next
newsletter will be more conventional again.
HeinzThis material from The Java(tm)
Specialists' Newsletter by Maximum Solutions (South Africa). Please contact Maximum
Solutions for more information.