The Solitary Path of the High-Talent Programmer
Today there is a greater focus than ever on reusing existing components and wiring together disparate components to form a cohesive architecture. —Griffin Caprio, Microsoft
Yes, that is one of Microsoft’s primary businesses. Sell a never-ending collection of components, modules, and functions to teams of corporate developers. And those teams, it would seem, just keep eating it up.
Low, Medium, High
What does a low-talent programmer do? He writes lots of straight, sequential code, with simple function calls, because that’s easier to understand than using a big framework of nested inheritances and dependencies.
What does the medium-talent programmer do? He uses those frameworks of inheritances and dependencies, because he’s smart enough to understand them, and because the problems he’s solving aren’t very complex, so implementing them in a relatively complex OO framework isn’t so bad.
What does the high-talent programmer do? Like the low-talent programmer, he writes lots of straight, sequential code, with simple function calls. Why? Because he’s tackling algorithmic problems that are so complex that he doesn’t want to be juggling a framework in his head at the same time. He’s pushing his mental faculties to the limit on the real problem, and he needs the programming methodology to be simple so it doesn’t unnecessarily complicate the task at hand.
One principle duct tape programmers understand well is that any kind of coding technique that’s even slightly complicated is going to doom your project. ... Duct tape programmers don’t give a shit what you think about them. They stick to simple basic and easy to use tools and use the extra brainpower that these tools leave them to write more useful features for their customers. — Joel Spolsky, The Duct Tape Programmer
Low-talent programmers are lucky if they can make any money at all as a software developer. Medium-talent programmers join software development teams at corporations, and solve the mundane problems that those corporations need solved — and they do it in the form of OO frameworks and tied-together, pre-existing modules.
The Solitary Path
What do high-talent programmers do? Someday, hopefully, they pour their talent into solving really complex problems, resulting in really amazing apps. And they don’t use OO frameworks or pre-existing modules any more than they absolutely have to. But until such efforts make money, they typically have to play medium-talent programmer at some corporation, and tow the line on all the OO, module-oriented mentality that surrounds them there.
If you’re a high-talent developer, and you ever want to use your full abilities to make really great things, then sooner or later you’re going to have to get out of that corporate development team, and start using your time to really shine with your own, solo projects.

