Live data from Hacker News

What Makes Great Programmers Different?

drdobbs.com

51–60 of 62 posts

Re: What Makes Great Programmers Different?

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

True but you can't just apply 1 and 2 to every problem and expect to meet deadlines. Part of the skill is to know instinctively how much polishing is enough.

Re: What Makes Great Programmers Different?

#52
post #43

> The other group, the reckless, consists of those who have the skills but don't have the discipline. They are the cowboy programmers of yore. They code according to their own desires, do nothing to integrate their work with that of others, scrimp on basic discipline, and cause work for other team members. It is worthwhile to note that Steve, Linus, Feynmann (last one in physics, not coding) all belong to this catego…

I've never understood the hate for cowboy coders. A great cowboy coder can do the work of an entire team. It's so typical for people to cry that the cowboy causes work for others, but I've never seen it myself, and I expect the great many who claim it are just following the group-think they've had drilled into their heads. If you inherit a program from some other maintainer, there is a learning curve no matter what.…

The problem is when your cowboy coder leaves your company, you are fucked. The code is undocumented, and incomprehensible. It works but you have no idea how it works and neither does anybody else.

Re: What Makes Great Programmers Different?

#53

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

Bad programmers I've dealt with tend to share certain traits: - Their code is large, messy and bug-laden - They have very superficial knowledge of their problem domain and their tools - Their code has a lot of copy and paste, and they have very little interest in techniques that reduce it - They fail to account for edge cases while inefficiently dealing with the general case - They're always rushing around putting ou…

god.. you just described one of my coworker to the dot.

Re: What Makes Great Programmers Different?

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

I certainly don't claim I'm a great programmer, but I can attribute a lot of my career success to focus on and learn to improve #5. I got the itch to improve it because the greatest programmer I know is a true master of rapidly debugging problems, and great at un-sticking projects when no one else can/will.

I was able to improve my own skill in the matter with the "Learn to Debug" section in the "How to be a Programmer Book": http://samizdat.mines.edu/howto/HowToBeAProgrammer.html

Re: What Makes Great Programmers Different?

#55
post #27

The only way you can be a great programmer in a meaningful sense is by putting in your best effort every single time you do some programming work, always looking out for ways to improve your work and always looking for feedback from other people, basically cultivating a "beginners mind". Once you start thinking of yourself as a great programmer, you start paying less attention to what you are actually doing and start…

Your last line reminded me of The Tao of Programming: http://www.canonical.org/~kragen/tao-of-programming.html

This is very high praise.

Re: What Makes Great Programmers Different?

#56
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 in…

That's a great insight/tip - I wish there was a book with hundreds of those...

Re: What Makes Great Programmers Different?

#57
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 in…

Please, would you give an example of an open source program with such infrastructure built in ? I'm eager to study such programs to pick up insights.

Re: What Makes Great Programmers Different?

#58
post #19

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

Yes, but you don't have a poor memory, you have an untrained memory. Nobody has an innately poor memory unless they've received egregious brain damage.

True. To clarify, I was just simplifying by calling my memory poor. I just have an attention deficit. So technically, I'm never committing to memory in the first place!

Re: What Makes Great Programmers Different?

#59
post #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.

Working on it!

Re: What Makes Great Programmers Different?

#60
post #45
post #19

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

It's important, but I don't think it's crucial. I've seen a couple programmers that are really good that do not have good memories. They always have apis and cheat sheets open in their browsers they are constantly referencing, along with frequent searches on google.

I'm quite relieved to hear it. Constantly referencing is what I do to get around my inability to remember things too!
Post reply on HN