Live data from Hacker News

What Makes Great Programmers Different?

drdobbs.com

31–40 of 62 posts

Re: What Makes Great Programmers Different?

#31
post #24

I know one programmer who I would call great. Here's what I've observed from him so far: 1-A serious amount of fucks are given both via attention to detail, polish, and no corners are cut. I have been lazy comparatively and often accepted "good enough." I'm working on changing this so that my priority is what is awesome for the user, not easiest for me to implement. 2-At the micro level, before setting out with any n…

Impressive.

On point 5, thing is as a programmer (any career actually) with years of code experience, you just know the possible cause for any bug, and what function/class is at fault.

Re: What Makes Great Programmers Different?

#32
post #10

So, how do you know if you are a bad programmer? It seems that a programmer could be bad but think they are great....

It's really hard to know how competent you are in any field, if you are incompetent. There are known knowns, known unknowns, and unknown unknowns. The problem with really bad programmers, is that the unknown unknowns for them are really large... so they have no ability to gauge just how incompetent they are. http://en.wikipedia.org/wiki/Dunning-Kruger_effect

On the contrary,when you get better at coding, just like mathematics,whe you compare your codes with others programmers and are comfortable with the similar code patterns and habits, thats one of the indications that you're becoming a great programmer, just like mathematics.

Re: What Makes Great Programmers Different?

#34
post #10

So, how do you know if you are a bad programmer? It seems that a programmer could be bad but think they are great....

It's really hard to know how competent you are in any field, if you are incompetent. There are known knowns, known unknowns, and unknown unknowns. The problem with really bad programmers, is that the unknown unknowns for them are really large... so they have no ability to gauge just how incompetent they are. http://en.wikipedia.org/wiki/Dunning-Kruger_effect

[deleted]

Re: What Makes Great Programmers Different?

#35

Earlier quoted context omitted.

I can by the friends and family portion, but why would it be better to have your identity linked to your hobbies than to your career?

Because you have more control over your hobbies. At the end of the day, the success of your career is (at least in part) dependant on luck and the decisions of others.

Not in programming, which is one of the few lucrative careers where you can do it just as well as a hobby.

Re: What Makes Great Programmers Different?

#36
post #19

Is memory really that important? I'm just starting out with programming right now and I have rather poor memory.

Yeah, memory is important. It's easy to hack, though. The techniques are called mnemonics. Learn and practice a bunch of these, pick a few that work well for you. Eventually they will be very natural to you.

Re: What Makes Great Programmers Different?

#37
post #24

I know one programmer who I would call great. Here's what I've observed from him so far: 1-A serious amount of fucks are given both via attention to detail, polish, and no corners are cut. I have been lazy comparatively and often accepted "good enough." I'm working on changing this so that my priority is what is awesome for the user, not easiest for me to implement. 2-At the micro level, before setting out with any n…

Point 2 is something I've heard Jeff Dean strongly suggest. Write microbenchmarks for all the basic operations of the "black boxes" you'll be using to build the system. That way, you can do quick back-of-the-envelope calculations to estimate the performance of the system before actually building it. You can explore the problem space much more quickly when you can simulate the important characteristics in your head instead of having to actually type them out into an editor.

Point 5 is something my former manager once told me. He'd done RoboGames or something like that as a grad student, and he found that invariably, the teams that won were the ones who had built the best debugging infrastructure into their robot, so that when it didn't behave as expected, they knew exactly what was wrong.

This is as much a property of the program as of the programmer. The best programs usually have debug information built into the structure of the program itself, along with an easy UI for viewing that debug info so you don't have to stare at log lines all day. Once a couple programmers start doing this and everyone else realizes how much time it saves, it becomes part of the culture of the organization, and everybody starts designing programs with an eye toward "Will I be able to figure out what's wrong if this doesn't work?"

Re: What Makes Great Programmers Different?

#38
Am I the only one who feels like commentary that categorizes "good" and "bad" programmers is unhelpful? One can make a good case for somebody having more appreciable traits than another, but I would be loathe to call either "good" or "bad", even in comparison to each other. This kind of labeling is just namecalling, more harmful than helpful, a stroking of egos.

The reality is that different people have varying strengths and weaknesses for specific tasks; people have different rates of personal development in different areas. It is not a matter of "good programmer" vs "bad programmer"; it is a matter of "That person can do that task in a better way than I can" or "That person can do that task more efficiently than I can" by some perceived measure of "better" and "efficient". The comparisons between people are relative, not absolute, and divided across many kinds of traits.

However, this article does bring up a number of traits that many of us can probably agree with as "goals to achieve in personal development". For that, it has great conversation value. Personally, I like the notion that memory might be correlated to some quality of design and output.

If I were to pick a trait of importance for a programmer, it would be "Consistently improves bottom line growth." Things that factor into that might be "Writes maintainable code" and "Knows his tools well", but it is debatable that these subtraits have a clear correlation with "bottom line growth". Has anyone actually measured these things?

Re: What Makes Great Programmers Different?

#39

So, how do you know if you are a bad programmer? It seems that a programmer could be bad but think they are great....

If you honestly wonder and question if you're bad programmer, you probably aren't one. Just turn around "if bad" to "how better".

If someone is trying to improve themselves they are at least "not bad". And probably will be good/great some day.

Re: What Makes Great Programmers Different?

#40
I think what's really interesting here is not what makes a good or great programmer but rather how everybody has different criteria for "greatness". I found this thread more enlightening about the commenters than about greatness.

This isn't that surprising: different people do different things, and their ideal programmer is relative to what they do. Somebody more business oriented would value more maintainable software and good team-working; a hacker type would value "getting things done" and "worse is better"; a more academic type would value novel and nontrivial work. Of course, in reality, what different people value is more nuanced, but the core point remains: there is no single definition of greatness.

Post reply on HN