Preferences

I don't think the point is that you can't be a good programmer unless you understand NP-hard problems (at least I hope so, otherwise I'm in trouble). I think the point is that you can use this matrix as a guide towards improving your knowledge and skills.

I think that without a lengthy disclaimer the author is misrepresenting his opinion to novices as being some sort of guide where you can choose your path from level 0 to 1 to 2 for rows in the table and that somehow you will become a good programmer. This is evidenced by the comments section with one user asking to "tell us a roadmap or path using which a programmer can advance his skills from Level to Level 2 and from Level 2 to Level 3."

To cherry-pick an example that helps my argument, how does having a blog remotely affect my ability to ship good code that is on-time and within budget? Why are Erlang and Prolog considered to be level 3 languages when they are not suited for all tasks (in fact languages are but a tool that should be chosen appropriately for the task)? Why must I author a framework to reach level 3?

The more I look at that table the more it disturbs me in it's subjectivity but is nonetheless an excellent resource for starting the discussion on what skills should be considered relevant for one's career.

Well, I will argue with the examples you have provided.

As to maintaining a blog, take a look at Joel on Software's "Advice for Computer Science College Students"[1], section "Learn how to write before graduating."

Learning Prolog, Erlang, Haskell, VHDL or some other out-of-the-box language is an eye-opening experience, and even more so is writing an interpreter or a compiler for such a language. It is a way to discover brain functions that you were not even aware are there in your mind. I speak this from my own memories about fiddling with a Hindley-Milner inference implementation.

Authoring a framework is not on my 'done' list, and it is not on the 'done' list of any of my friends, so I have no idea how influential is such an exercise. However, I will give the author of the matrix the benefit of the doubt - he got the rest well.

[1] http://www.joelonsoftware.com/articles/CollegeAdvice.html

Exactly. You do not need to understand what does NP-hardness mean to be an excellent developer.

Understanding complexity, computability and modern logics is pretty satisfying, I'm personally in love the Godel's incompleteness theorem. But it is just one of many variables. There's plenty of things to improve on.

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal