Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 18 | Comments: 86

filter by tags archive

Can you learn to program better?

time to read 2 min | 360 words

Phil Haack has a post that you should read. There is an interesting quote there:

I am not convinced by the idea that developers are either born with it or they are not. Where’s the empirical evidence to suport these types of claims? Can a programmer move from say the 50th to 90th percentile?

I have a different view of programmers, as you can see below:


The first steps for beginners are relatively easy to start, then there is the first hump, which is usually where the non-programmers quits. Then there is the  big hump, which a lot of people simple never cross. This means that a lot of people are stuck on the basic level.

People that do make the jump across, usually have a lot of hard time, but they tend to not stay there for a long time. Either they pass, in which case they are going to be great programmers, or they stays there (or more often, slide back to the start).

I don't believe that it is a matter of To Be or Not To Be, some people have easier time doing it, some people have harder time. I believe that it is the big leap in the middle that not many cross that makes the difference.

At 17, I couldn't get my head around dynamic memory management (in Pascal), at 19, I grokked this stuff without a problem. I can't really say what has changed, though.

Update: This had me in stitches:

I’ve worked with developers who have 10, 15, 20 years in the industry and couldn’t code a virtual rat through a maze consisting of two parallel lines.



I assume that your "model" as related here is a simplified version of how you conceptualize devs.

Specifically, there are many different skillsets that a programmer can become expert in. Expert proficiency at the toolset one uses is probably at the core, yet there are many others.

Second, I would argue that there are many levels and gaps. I agree with the model, which strikes me as reminiscent of the plateau model that you have with most skills, sports, etc.

I have come across many ok devs, several good devs, some great devs, and perhaps a couple truly awesome devs. I think that you probably get the gap and plateau for each level.

Ayende Rahien

My thoughts on the subject;


Ayende Rahien


I certainly think that the graph above is a two dimensional model of multi dimensional reality.

Nevertheless, it does represent the average. On general, a great developer in one technology will be able to master another technology much easier than an average developer, assuming same initial skill set between the two devs.

It is just that there is a lot that the great dev can correlate and assume that the average developer will have to be thought.

Understanding the principals is far more important than understanding the mechanics.

Comment preview

Comments have been closed on this topic.


  1. Buffer allocation strategies: A possible solution - 3 days from now
  2. Buffer allocation strategies: Explaining the solution - 4 days from now
  3. Buffer allocation strategies: Bad usage patterns - 5 days from now
  4. The useless text book algorithms - 6 days from now
  5. Find the bug: The concurrent memory buster - 7 days from now

There are posts all the way to Sep 11, 2015


  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    03 Sep 2015 - The industry at large
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats