I think Donald Knuth, who must be placed at the Mystery Level, never went through the functional phases. http://homepages.cs.ncl.ac.uk/m.j.bell1/blog/?p=49 DK on the subject of functional programming: “Out of the ~250 programs I wrote last year, 2-3 would have benefited from being written in a functional style.” DK on the subject of functional programming: “With 1 or even 2 hands tied behind your back it’s hard to do…
What Level Programmer Are You?
21–30 of 68 posts
Re: What Level Programmer Are You?
#22What OP's system describes is the progress from a novice (0.5) to a competent adder (1.0) to a general-purpose multiplier (2.0). Most serious programmers are between 1.0 and 2.0, so the growth process is about becoming a multiplier. At 1.1, you start automating annoying tasks by writing scripts. At 1.4, you're starting to become aware of the need for language-level support for code reuse and complexity management, so functional programming becomes attractive. The 1.5-1.7 range is when Lisp's language-oriented features (macros) start to shine. Most 2.0 programmers are cautious about when they use such things, though. Yes, DSLs can be very powerful; they can also be unmaintainable, miserable cruft-piles. Being a great (2.0+) programmer is about adding the most value though team- or company-wide multiplier effects, not being clever. Often, you add the most value by designing systems so simple and elegant that they almost insult the user's intelligence (in a good way).
Functional programming is a shibboleth of good (1.5+) engineers because it's usually what they first learn as they break through the 1.2 ceiling observed in Javaland (since Java and enterprise programming actively work to prevent people from having multiplier effects). And pretty much every 1.5+ programmer knows what functional programming is and what its rules are (and when to break them). That said, it's not a strict rule that to reach or surpass 1.4-1.5 you have to spend X amount of time using functional languages.
Re: What Level Programmer Are You?
#23I used to refactor things into inheriting models with overridable behavior, etc if it could save me from repeating myself. Now I just copy/paste code when it's appropriate, and it's way easier to maintain. Key word is appropriate.
Re: What Level Programmer Are You?
#24You could be good at some aspects of programming and weak at other aspects. Programming is a multi-faceted art. You don't start at level 0 and move up; You learn different parts of it simultaneously.
Re: What Level Programmer Are You?
#25Re: What Level Programmer Are You?
#26I think there should be a level "I believe I've reached a level where I can speak wisely about programming ability". Followed by the "Oh, oops. Now I see I STILL know nothing" level. ;)
Of course, the problem here is that by making that statement, you are both trying to wisely speak about programming ability while still claiming it's mostly unknown to you. Both bases effectively covered. Score! :) It's just a blog entry with observations. I make no claim on being an expert or creating the next standard. Just throwing some ideas out. I knew this would generate a bit of a stir on HN, so I thought it w…
Do you know what writing complex scripts in equally complex environments entails? I sure don't, therefore it makes me sufficiently unqualified to determine "meta levels" (whatever that means) for that skill.
Unless you are deeply familiar with both, i'm not sure how you can say one is higher then the other.
Re: What Level Programmer Are You?
#27I am always a bit perturbed by lists such as this. I have worked with people that would be categorized as a "script kiddie" and the work they put out is far more useful than what has been done by someone who has a doctorate in computer science. I'd much rather employ someone who can get stuff done rather than someone who knows everything yet does next to nothing. The man driving the delivery truck is a lot more usefu…
Re: What Level Programmer Are You?
#28Re: What Level Programmer Are You?
#29I think there should be a level "I believe I've reached a level where I can speak wisely about programming ability". Followed by the "Oh, oops. Now I see I STILL know nothing" level. ;)