Earlier quoted context omitted.
Maybe true, but "knowing how to learn" doesn't completely cover it. It's absolutely possible to make middle-of-the-road developers into good developers through training and mentorship. It's just that many (possibly most) developers don't get opportunities for good training. They're expected to use their "talent" to figure things out on their own, which in most cases means Googling or trial-and-error experimentation.…
I agree, it's sad that not everyone gets the opportunity to have a great mentor. But somehow, when it's meant to be, most will still push through.
How To Become A Better Programmer By Not Programming
81–90 of 121 posts
Re: How To Become A Better Programmer By Not Programming
#82Programmers are not born. They're made. You may have a certain aptitude or talent for software development. However talent without discipline fizzles out or produces wildly varying results. Talent is like that. What makes a good programmer, mathematician, sports player, etc is discipline. The love of the craft/sport/etc that pushes a person to believe that all the discipline and hard work is worth it. People are natu…
I completely agree, but at the same time, discipline alone doesn't make a good programmer. You need the other half.
Re: How To Become A Better Programmer By Not Programming
#83From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
So Gates is right in that top talent is probably born, there's nothing you can do to attain that level (which is true for most things, btw). But you can become a damn good programmer by practice.
Re: How To Become A Better Programmer By Not Programming
#84From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
Why isn't writing software like chess or sport? The highest ranked player in the world is twenty years old. Any local chess club is full of people who have studied the game for years but failed to break 1400. I've taught people who were just incapable of the most rudimentary strategic thinking and people who just naturally saw things that it took me years to learn. The evidence is clear that there are people in the w…
Precisely because 5-standard-deviation-above-average natural talent isn't required for success in our field. There's only one chess champion in the world and a handful of grandmasters, by definition, and those are gonna be the ones with talent and hard work. But to succeed as a programmer requires more work than genetic luck. An average person can probably do it with enough work.
(But I would point out there is, by necessity, a floor of base talent required somewhere. But it isn't necessarily as high as commonly supposed.)
Re: How To Become A Better Programmer By Not Programming
#85"I agree with Bill. From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that." This is a very condescending look on humanity and I did not know that Jeff had said such things. To anyone thinking the same, let me introduce you to the concept of deliberate practice (how to really improve a…
The author of that also uses a great deal of selective evidence, flat out ignoring genetic research in relationship to music, for example. Specific genetic sequences have been linked both to perfect pitch and to success in classical music. If you can't find it via a quick google search, I'll be happy to provide citations. Evidence for the role of genetics in running, swimming and a variety of other sports is equally…
But do you mean that someone without the right genetic sequence can't play music? Or do you mean that someone with the right genetic sequence but who never does deliberate practice will be better than someone who has practiced 6 hours per day for the past 20 years under the best masters?
I think you don't mean that and the book did not mean that everyone can be star.
I'm sure some programmers are advantaged by their genes, but saying that all the bad programmers don't have the right genes and should look elsewhere is another thing. I would prefer to look at their learning practices and motivations before studying their genes. I'm sure I would have a lot more success than a geneticist in this case.
Re: How To Become A Better Programmer By Not Programming
#86From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
Having mentors, supportive management, and interesting work is great. But these are not the norm anywhere and they're certainly uncommon in the first few years in the software industry. A career average of 25% on these, for one's first 10 years, is probably about par. The good programmers are those who figured out how to get better in spite of these setbacks.
If I were going to put it into simple terms, the problem with the worst of the bad programmers (the deserving underclass) is that they don't expect much of themselves. They're happy to chug along at 100 lines/month on uninspiring work, and they do just enough not to get fired, but they don't achieve enough to offset the complexity load they create by modifying code while not knowing what they're doing, and by imposing resistance-to-change on the organization they inhabit. That's Class #1 of bad programmers, the ones who've been powerless for too long and are now just passing through. It probably comprises 65% of bad programmers out there.
Class #2 is the do-the-wrong-thing-well type. These are the ones who are generally very intelligent but narrow-minded. For example, they optimize for runtime performance at the expense of code readability, or who use the wrong languages, or who eschew databases because "SQL is a mess; let's just use the filesystem". They tend to be really, really good at some small subset of programming and tend to want to use that set of tools and skills even when not appropriate. These are the people who annotate an O(n^2) sorting algorithm as "WRONG!!" even when it's sorting a collection of 20 elements, because to them, not optimized == wrong. Their learning rates were too high, and now they're stuck at suboptimal local maxima. That's 15% of bad programmers.
Class #3 of bad programmer (15%) is the rock star, the kind who writes lots of code quickly, uses fancy "metaprogramming" features, but no one can understand the code (much less the rock star) a week after it's written. They tend to be parasitic, appearing highly productive but actually generating lots of unpleasant work (externalized costs) for the rest of the team. The call sign of the rockstar is the tendency to change interfaces willy-nilly and expect everyone else to adapt to his changes.
Those numbers add up to 95%. I'm going to leave 5% open to acknowledge that there are species of bad programmers I haven't met yet.
Re: How To Become A Better Programmer By Not Programming
#87Even after 25 years, I was doing things that I didn't have the knowledge or skill to do five years before. (On the other hand, sometimes I look at kragen-hacks posts from ten years ago and say, "Whoever did that must be a lot smarter than I am ---" before remembering it was me.)
Re: How To Become A Better Programmer By Not Programming
#88From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
Why isn't writing software like chess or sport? The highest ranked player in the world is twenty years old. Any local chess club is full of people who have studied the game for years but failed to break 1400. I've taught people who were just incapable of the most rudimentary strategic thinking and people who just naturally saw things that it took me years to learn. The evidence is clear that there are people in the w…
Re: How To Become A Better Programmer By Not Programming
#89From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
Why isn't writing software like chess or sport? The highest ranked player in the world is twenty years old. Any local chess club is full of people who have studied the game for years but failed to break 1400. I've taught people who were just incapable of the most rudimentary strategic thinking and people who just naturally saw things that it took me years to learn. The evidence is clear that there are people in the w…
Are there really natural geniuses? To me a natural genius is someone who from the start performs at a high level, and I don't know of any such programmers. Maybe it's just that some people can move faster on the growth curve than others, but everyone can reach the same high echelons with perseverance?
Re: How To Become A Better Programmer By Not Programming
#90From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…
- Explaining why code is "sub standard" is hard.