Fog Creek Software
Discussion Board

World Class code - How Many Years ?

I am just getting started into programming.

And I would love to know how many years
of experience did he took you to write world class code.

Did you ever came across someone who manage to
write very good code after one year programming ?

Monday, January 7, 2002

After 12 years, still learning...

Robert Chevallier
Monday, January 7, 2002

I am aware that learning new tricks is a life long experience.

Did you meant that after 12 years you still do not produce world class code ?

Monday, January 7, 2002

You're asking a loaded question.

One has to be pretty full of themselves to say, "I've been coding for X years and I'm world class baby."

And, what do you mean by "world class"? Do you mean a programmer who creates clean, maintainable code with few bugs or one who can hack into an FBI database?

BTW (with the anonymity of this discussion group) I can safely say: after 6 years of writing software, used by thousands of people around the world, I'm world class baby!

World Class
Monday, January 7, 2002

You're asking the wrong question, I think.  Writing code is easy.  Most anyone can do it.  Solving problems, on the other hand, is HARD.

If you're not good at solving problems expressed in English, you'll never become good at solving them in C.

Secondly, there is no way to measure what constitutes "World Class code".  No one has ever won a Olympic gold medal for code terseness or an Emmy for Best Supporting Subroutine In An Open Source Project.  And how long it takes you to be PROFICIENT at programming has a lot to do with what problems you're trying to solve.  Writing the world's 10,000th implementation of Tetris is substantially an easier problem than, oh, say, Natural Language Processing.

I've only been programming in the "real world" for about three years now.  Of course I first learned the basics of programming when I was eight.  I'd say a great portion of how I've improved since then has nothing to do with writing code and more to do with (a) learning to work with other people on a common project and (b) learning about the nature of various problems that need to be solved computationally.

Monday, January 7, 2002

Read this John Carmack interview:
[ ]

You're asking a pointless question, but from your lack of knowledge, it's a sensible one.  Allow yourself to be arrogant and confident enough to see new perspectives and thoughts no one else has before.  It's not rote memorization, but the expansion of a mind.

Monday, January 7, 2002

Hmm, actually you'll want to eventually dump 'arrogance' and stay with 'chutzpah.'  But that is quibbling; important as I may think it is. :-)

Monday, January 7, 2002

I haven't met a first-year programmer who didn't still have lots to learn. There's always lots to learn, but at some point you can just write stuff without learning anything new.

I don't know how one would define "world class", really. I noticed that in some areas (ui design in particular) I was much better than most in about 2 years - but that may just be that it's an easy area to compare your stuff to others.

It's all a matter of what patterns you've absorbed (using "patterns" in the broadest sense). Some of these patterns would be in the UI design, some would be in the logic, and some would be almost as low-level as to be mistaken for work habits. If you have learned a good set of patterns, your results are better.

How long it takes to get a set of patterns that give you "world class" results must necessarily vary according to what kind of work you are doing, and I suspect that a varied work history produces more and better experience.

Jeff Paulsen
Monday, January 7, 2002

Just a guess here: would you not measure "World Class"-ness more in success than years? I've been programming for years. I also have basically no real projects under my belt. I am far, FAR from World Class. OTOH, there are less (timewise) experianced programmers, who have released successful products. Assuming we can agree on some sembalance of a definition for good, I'd say that you're world class when you've written good software, not when you are old.

Also: you never know everything. Once at work (retail comp. store) a Sun sysadmin walks in. Knows a crapload about sparcs, but asks what RDRAM is. I know linux well, but I have not used in depth any Microsoft OS since 98. "Expert: n. Someone who knows more and more about less and less" :{). Is 'expert' world class?

At that same store, I noticed that of the people I worked with, there was little correlation between age and knowledge: Some of the smartest people I know worked there with me, and were probably 20-something. I also encountered a number of fairly ignorant older people, such as one EE (I don't know why he was working retail, but whatever) that was a nice guy, just not the smartest guy. Do not judge by age and time, for they are irrelevant: judge instead by quality. If they've written a number of diverse, robust, software packages, then they are world class. If they wrote buggy code for decades, they are not.

Mike Swieton
Tuesday, January 8, 2002

Amateur wrote:
"And I would love to know how many years of experience did he took you to write world class code."


Jan Derk
Tuesday, January 8, 2002

*  Recent Topics

*  Fog Creek Home