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: 6,026 | Comments: 44,842

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.


No future posts left, oh my!


  1. Technical observations from my wife (3):
    13 Nov 2015 - Production issues
  2. Production postmortem (13):
    13 Nov 2015 - The case of the “it is slow on that machine (only)”
  3. Speaking (5):
    09 Nov 2015 - Community talk in Kiev, Ukraine–What does it take to be a good developer
  4. Find the bug (5):
    11 Sep 2015 - The concurrent memory buster
  5. Buffer allocation strategies (3):
    09 Sep 2015 - Bad usage patterns
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats