Many other fields have been so heavily regulated by government that truly pushing the boundaries is either far more painful or impossible, therefore the pace of improvement in them is far slower than it is in the world of software.
What Makes Great Programmers Different?
21–30 of 62 posts
Re: What Makes Great Programmers Different?
#2250% of programmers are below average.
Re: What Makes Great Programmers Different?
#23They spend time building useful things rather than getting caught up in online discussion forums.
Re: What Makes Great Programmers Different?
#241-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 new technology, he tests its properties thoroughly. For example, benchmarking each part of the setup on its most intensive tasks before building with it. No "assuming it will work" based on breathless blog posts. Using his intuitive sense of what is expensive, he also optimizes expensive operations in loops by hand (like mysql complex queries).
3-A well thought out, and well practiced tool-chain for development. Ex: Using vim and knows it well, pays for tools to make life easier, has easy backups with time machine to easily go back, etc.
4-Diverse range of skill, and eagerness to dive into something new at any point.
5-An ability to rapidly debug problems. I haven't pieced together how this skill is built, except it involves the usual logic combined with a better memory than mine (so remembering what to rule out) and a pattern recognition that comes from remembering similar problems.
Re: What Makes Great Programmers Different?
#25All of the very best programmers I know work incredibly hard and never allow a massive boring task to derail them. It's an interesting combination of confidence ("I can solve this insanely hard problem") and humility ("I am not above doing this crappy work").
Sometimes the solution is to automate the boring stuff; other times it's literally just getting through days of grunt work. The very best programmers I know are willing to do both, and know when to do which.
Re: What Makes Great Programmers Different?
#26So, how do you know if you are a bad programmer? It seems that a programmer could be bad but think they are great....
- 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 out fires, trying to look like heroes battling vast problems against impossible odds
- They never have time to comment their code or break it into smaller pieces
- Empirical evidence plays no role in their decisions
It would be hard to self-test, but some clues would be: do you think you're the best programmer in the world? Do you find code with a lot of functions messier and harder to understand than code with only a few large functions? Do you routinely copy code from one place to another and make a few small changes to it? Do your programs tend to be a few huge files or lots of small files? When you're asked to make a change, do you usually have to touch most of the code or just a small chunk of it? If you say 'yes' to most of these, you're probably bad. If not, you're probably alright. :)
Another clue is to go read the CodeSOD articles at The Daily WTF[1]. If you find them funny or horrifying, you're probably alright. If you don't understand what makes them terrible, you're probably bad.
Re: What Makes Great Programmers Different?
#27In other words, there really are no great programmers, there is only great programming.
Re: What Makes Great Programmers Different?
#28"being capable of quickly shifting registers from the large picture to small details and back again — relies on the strong memory" Something like that, yes. Just huge memory and fast processor. And unfortunatelly it is just talent, after 10-15 years in the profession you will see your limits: your programing skills can be developed further and further to be very good, but it cannot be developed to be really great. I…
I think the difference between his categorization of "Good programmers" and its subcategory of "Really good programmers" is the more interesting one though. Too many programmers seem to lack (or have lost) that drive to continually improve themselves, having become content with treating programming as nothing more than a 9-to-5 job during which they do little more than apply past knowledge. Like the article states, doing this puts them "at risk of slipping into the lower grouping by letting their skills atrophy".
The "Really good programmers" on the other hand are the ones with drive, with motivation; the ones that at least aspire for greatness even if they might stall out at merely being "very good". Every great programmer was once just a "Really good programmer", but you can't go from good to great without that passion.
Re: What Makes Great Programmers Different?
#2950% of programmers are below average.
50% of programmers are below median. It is quite possible that programmers do not follow a normal distribution.
Re: What Makes Great Programmers Different?
#30> 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…
Steve who?