Live data from Hacker News

What Level Programmer Are You?

whattofix.com

21–30 of 68 posts

Re: What Level Programmer Are You?

#21
post #8

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…

IMHO, when you reach this kind of math level programming, you do functional programming with indexed n-dimensional arrays.

Re: What Level Programmer Are You?

#22
Seems naive. I came up with an engineering scale that I think is pretty solid, at least over the 0.5 to 2.2 range. http://michaelochurch.wordpress.com/2012/01/26/the-trajector... . I'm only about 1.7 so beyond about 2.2 I had to start using "bigger and badder" type definitions because I could only delineate those levels based on visible accomplishments, not experience or observation. Also, it's more of an "liberal arts" engineering (adding value to organizations) than one focused on domain-specific programming capabilities, which are still important but much harder to measure. You can become a 2.0 engineer in artificial intelligence, or in front-end web development, or in embedded device development and the processes of getting there are rather similar. Being a "good programmer" in each discipline is different.

What 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?

#23
The levels in this article kept moving towards higher and higher levels of complexity (writing your own DSL), while in my experience, getting better at my job has resulted in writing code that's less and less complex.

I 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?

#24
I think his levels are really stupid. I can write functional & OO code somewhat well (in dozens of languages (Java, ObjC, C++, Scheme, ...) - in 3-4 of them I'm more experienced but with the help of StackOverflow can do almost anything I want, given a few hours time), read/write bash scripts, can (and do) write iOS/Mac GUI applications, can use PHP and Ajaxish things, have good experience with MongoDB/MySQL and a lot of other things. I use OS X Terminal.app regularly and have no problems doing tricks with bash (from piping to xargs'ing); But, I spent almost a whole day a few months ago and couldn't install an OpenVPN server on a linux machine. I just couldn't. I knew about IPSec, and that I must create exceptions in the ipfw for this thing to work, etc. but it wouldn't work, and I didn't have a single clue how to fix that mess. So by his test, I wouldn't even pass the first level...

You 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?

#26

I 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…

I'm sure those who have wrote complex scripts would probably disagree with you.

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?

#27
post #19

I 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…

My advice to you: stop taking it so seriously. It is just meant to be a metaphor for one's skills evolving from the concrete as a beginner to acquiring the ability to think more abstractly as your skills improve.

Re: What Level Programmer Are You?

#30
This same idea seems to crop up every month or so on HN, and it just seems like ego stoking. My friend is learning to program with a functional language. Does that automatically shoot him up to level 9?
Post reply on HN