Live data from Hacker News

What Makes Great Programmers Different?

drdobbs.com

61–62 of 62 posts

Re: What Makes Great Programmers Different?

#61
post #52
post #43

Earlier quoted context omitted.

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.

I think that may just be a straw-man argument. It should not be difficult to figure out how it works, the logic is laid out right in front of you.

There is always a learning curve when taking over a project.

Re: What Makes Great Programmers Different?

#62

Earlier quoted context omitted.

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.

The closest open-source example I can think of is --verbose mode on many UNIX utilities, though that wasn't really what I had in mind. Developer Tools in Chrome is another example of the principle - think of how much easier it is to debug Chrome than IE6 - but again, not quite all the way. Imagine using Developer Tools to debug all of Chrome, eg. Webkit rendering (overlaid on the rendered page itself), resource parsing & scheduling, JS JIT compilation, etc, and not just the pages that execute within it. (Maybe this is possible, I'm not familiar enough with the Chrome project to know all the debug flags available.)
Post reply on HN