Ravi Mohan's Blog

Wednesday, October 29, 2003

A long road

I just did a thought experiment on what one would need to know be a guru in programming and how long it would take.

Of course that raises the question of what it means to say someone is a guru ?

And how does one measure someone's "degree of guruhood" ?

To keep things simple, I chose books as the unit of measurement because it is simpler to measure knowledge that way. If a person has mastered the content of book X, where book X is one of many books a guru has to master (remember books are being used as units of knowledge) then he is that far ahead in being a guru.

Going further I estimated how long it would take Joe Programmer(ok ok , me) to master a book, multiplying the number of chapters in the book with a number of " ideal days " required to finish one chapter.

As my first topic of mastery i selected compilers . I would expect a compiler guru to have mastered the content of (at least)
  1. Programming Language processors in Java (or any other "newbie" book) -- 10 ideal days
  2. Essentials of Programming Languages -- 48 ideal days
  3. Lisp in Small Pieces -- 32 ideal days
  4. A Retargetable C Compiler : Design and Implementation -- 36 ideal days
  5. Advanced Compiler Design and Implementation -- 36 ideal days
giving a total of 162 ideal days .multiplying by a factor of 3 that gives me 162 *3 = 486 real days.

And that is just compilers.

which means it would take Joe Programmer almost one year and 3 months of full time work to become a compiler guru!

No wonder we don't have to many of those around!


Anonymous said...

ravi can you please remove the archiving from your blog? There are so many interesting articles of yours and now it has become very difficult to go back to an older one if one doesn't remember the date.

Ravi said...

hi ,
I can't "remove the archiving" if you mean to say that all blogs should be one one page. I have to set limits on how many blogs are displayed on a page.

There might be away for me to tweak blogger to list all post titles in one page, I will look into that .
Meanwhile, you might want to se the small search box on top of the page to look for specific phrases.