Live data from Hacker News

What Level Programmer Are You?

whattofix.com

51–60 of 68 posts

Re: What Level Programmer Are You?

#51
post #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 mainta…

I totally agree.

In most programming projects, the most important thing is maintainability, and that is relative to the skill of the maintainer.

If the maintainer is going to be junior developer, then writing complex OO design is not good, even if it makes the program more concise; if the maintainer is a business developer who is not good in math, then crafting non-trivial algorithms will throw him off, even if it means shorter program; if the maintainer is smart and willing to learn, then you can do whatever.

Re: What Level Programmer Are You?

#53
post #44

I don't really get this stuff. Building stuff that's considered to be hard are actually the things I learned when starting out with programming. Things like a driver, a boot loader, a compiler aren't things that are harder than any other piece of software. Of course everything gets hard when you go beyond the basic stuff, but I never got why people that program in C++ or Java (usually) tend to be so arrogant when it…

"Building stuff that's considered to be hard are actually the things I learned when starting out with programming."

Maybe it's not harder than other things on the list, but the author is saying that this order is the most common progression for programmers in his experience.

Re: What Level Programmer Are You?

#54
While this article doesn't help at all to classify programmers, it's interesting in that it gives a good insight into the author's approach to computer programming.

It's a very book-oriented, "teach yourself how to program computers, then program them" way of looking at the sport. It's what I'd expect to see from a CS major who'd never programmed until he hit university, or possibly a history-major-turned -programmer who learned his trade through those big red Wrox Press books with 24 authors on the cover. My personal path never intersected this curve at all.

I (and I suspect a lot of other folks) came up the Tinker route, being given an Apple II or C64 as a kid with no games on it and needing to find the shortest route to get games written so that you could play them. Every exposure to a new technology (with a new thing that needs accomplishing) gets met with a new batch of playing around with it until it all makes sense, then on to the next thing. Windows programming, web development, database stuff, OOP, functional programming, and everything in between, but never with a plan or anything resembling any of the "stages" the author describes.

Even now, 35 years in, I can't find a place on that scale where I fit. I bet there are a lot of programmers out there in the same position.

Re: What Level Programmer Are You?

#55
Reading the comments, theres a lot of disagreement (for some valid reasons) but this list is getting more hate than it deserves. If you consider that the MAJORITY of programmers are essentially corporate code monkeys this is actually a very accurate list.

If I read this list and then apply its rules to the average programmer at fortune 500 companies it is almost perfectly accurate at measuring the least to most talented programmers I've worked alongside.

In the corporate world, the bulk of developers fall into one of the following groups: guys who can barely modify a custom report, guys who can write a report, guys who can create a basic CRUD class for reuse across reports, guys who can contribute to a complex application, guys who can design a complex application, and then the guys who are hired to create the tools/languages that are leveraged when creating complex applications.

There are obviously many areas of programming that do not fall under these definitions but the AVERAGE programming (i.e. average corporate developer) probably fits very neatly into one of these definitions.

Re: What Level Programmer Are You?

#56
I was curious about something a former boss told me. He had been a programmer before he had been a manager, and he said, "oh, you haven't written a compiler yet? When you write a compiler you graduate to a whole new level of programming."

I have learned Lisp and in that sense I have graduated to a new level, although I've still not used it enough to make macros an everyday joy. I still prefer JavaScript and I am going to learn some Ruby and some CoffeeScript.

But I have no idea what writing a compiler gets you, so if anyone wants to tell me about it, I'd love to hear.

Re: What Level Programmer Are You?

#57
post #40

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

I was mostly agreeing with you until you starting on the technology bigotry. > Because while the Java+IDE environment makes it extremely difficult for an individual engineer to have a 1.5+ impact –there are two cases in recorded history of programmers breaking 2.0 in Java; one is Martin Odersky, who wrote Scala, and the other is Rich Hickey, who wrote Clojure What about people like Doug Lea and Josh Bloch? What about…

First of all, I was exaggerating the negatives of Java. There are 2.0+ programmers writing in Java every day. The vast majority of these would prefer to use another language, but that's another story.

My experience is that most 1.5+ developers, when forced to use Java, react in one of two ways. The first is to scale back their general tendency toward ambition in coding and tolerate uninspired patterns, such as objects with 25 getters and setters. This works, and it can produce quality software, but it's not fast and it's definitely not fun. The second is to follow Greenspun's Tenth Rule (http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule) which describes the process by which a skilled programmer, confronted with under-powered tools for his job, creates a personal DSL (and usually a bad one) for solving the problem. Rich Hickey and Martin Odersky are counterexamples: instead of writing shitty DSLs, they built full-fledged, awesome languages.

Are there 1.5 and 2.0 programmers in languages like Java? Absolutely. Is it common? No. Is it likely that a person exposed to only Java and C++ will ever crack 1.5? Absolutely not.

You have now introduced a definition which implies that the designers behind projects like the Windows kernel, MSSQL, and Kinect are a lower level of programmers because of the technology they use or the company they chose to work for.

You're taking it a bit far. Obviously, there are exceptions. Multiplier effects happen on bad languages, but you have to either (a) fight the language the whole way through, or (b) deliver a complex system, which ends up being a divider effect if someone other than you ever has to maintain it.

To call functional programming a 'shibboleth of good engineers' seems to exclude too many people I would call good engineers to be a good or even useful measure. I would go as far as to say that, for above average programmers, interest in and use of functional programming is orthogonal to their contribution and skill.

Disagree, unless you're taking a very strict view of what "functional programming" is. A 1.5 programmer in Python will find himself using a lot of list comprehensions. Are his Python programs likely to be "purely functional"? Absolutely not. It's not idiomatic for the language. But his code will be in a state where the average Lisper will understand what he is doing and why, and in which the average Java developer will be asking "where are the Factories?"

Re: What Level Programmer Are You?

#58

While this article doesn't help at all to classify programmers, it's interesting in that it gives a good insight into the author's approach to computer programming. It's a very book-oriented, "teach yourself how to program computers, then program them" way of looking at the sport. It's what I'd expect to see from a CS major who'd never programmed until he hit university, or possibly a history-major-turned -programmer…

Author here.

The funny thing is not that you're wrong about me, it's how completely wrong you are. I'm self-taught, and started programming Commodore Pets under PetBasic with, woohoo, 4K of RAM and a cassette tape. Wrote my first contract program when I was 16, on an Apple II. I had written my first game a few months before that. I think I had four college-level programming classes in my early 20s. That's about it for formal training. I'm very much a tinkerer.

But you're right about the books. Being self-taught, I had to voraciously read, especially starting out. Since I ended up doing this for a living, and since everybody else had the advantage of a college degree, I felt very much under the gun: learn or starve. I read like a maniac.

I don't think people "fit" in the scale in any one spot. Different jobs require different skills. Much more interesting (to me) is if folks understand the levels and are able to work as needed in them. So far the comments look very much hit and miss, which was about what I expected.

Interesting analysis, though! I appreciate the feedback on how I sound.

Re: What Level Programmer Are You?

#59
post #18

I disagree with the premise of this article. By trying to differentiate the different "programmers" by nothing other than their skill , he is ignoring the fact that you simply shouldn't group together low-level chipset programmers with PHP programmers with LABview drag-and-drop-individual-components programmers with computer scientists who also happen to be programmers. These people are fundamentally different, and t…

Yeah - to put it another way, ordered, general criteria like these will rarely be fit for the purpose of selecting the best coder for a given job. They place a huge premium on showing the widest possible diversity of knowledge, whereas what makes many programmers world-class is that they offer highly specialized skills for dealing with highly specialized applications, with which they have huge experience.

Re: What Level Programmer Are You?

#60
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…

I'd like to know why the LISP/Clojure/JavaScript functional crowd is so enigmatic.

Knuth is a genius.

Post reply on HN