4 ms·
This article just confirms my notion that in the debate about "what makes a great programmer" there is a fundamental disconnect between the concepts of being "a
by rickmb 15y ago
This article just confirms my notion that in the debate about "what makes a great programmer" there is a fundamental disconnect between the concepts of being "a programmer" and being "a maker of software".
Making software consists of way more than just programming, and in that respect I agree with Atwood. However, that ignores two other things I consider to be proven truths:
1. You don't have to be a great programmer to make great software. Some of the best products are build from horrible code, not just by people who deliberately rushed things, but by people who simply didn't know any better.
2. You can definitely become a better programmer by simply practicing the craft a lot, even after many years. It doesn't however make you a better "maker of software", just a better coder.
- gaius 15y agoIt's the difference between a musician and a composer. They overlap often and both are absolutely essential to the performance. But practicing one doesn't necessarily carry over to the other.
- cloudhead 15y agoBut he's not talking about becoming a better programmer. He's talking about becoming great. Not all software can afford to be made out of crappy code either. There are many fields in which being a good programmer is the same thing as being able to write good software. The web might be the exception here.
- 16s 15y agoThe phrase "crappy code" is subjective and not easily measured. What you consider "crap" may be pure art to the people that produced it. Perhaps you just lack their perspective? Perhaps you've never had to write code in that language or at that scale? Perhaps they are just learning to code? The world is bigger than individuals. Some code may be "crap" to you, but let me assure you that your code is "crap" to someone else. Linux kernel code is often called "crap" by the OpenBSD developers. In their mind it is. I'm sure Linux kernel devs feel otherwise and in places where they aren't proud of it, they slowly improve it to make it better. Oh, and BTW, the "crap" that is the Linux kernel supports far more hardware than OpenBSD will ever support. So in my mind, it's all a matter of perspective and goals. Nothing is "crap". And calling it "crap" is wrong and may cause others to feel bad about themselves and their project. It's juvenile and unnecessary. If you are interested in the project and think it's "crap" do something constructive, submit your glorious code to make it better and to enlighten us all.
- cloudhead 15y agoI was referring to what the parent called 'horrible code'. There's definitely a little of both: some of it cannot be measured, some of it can. Code performance is easily measurable for instance. Code size and simplicity can also be roughly measured.
- drzaiusapelord 15y agoThis is such a good point. I've noticed that the personality style of "algorithm obsessed, Knuth worshiping, all about optimization, hardcore coder" doesn't have a lot in common with "creative, new software, good UI, unique application builder" personality. While its important to have some of the former under your belt, its the latter that gets shit done and makes things. I consider myself a maker, not a coder or a computer scientist. I'm getting a little sick of the attitude that you need to be this hotshot coder to be into software. Its just this geek macho poseur mentality that's harmful. A mediocre coder with a few good ideas is all it takes. I'd rather see a slow python app or a simple web app that's unique than some super-fast C or low-level me-too implementation. I feel this dichotomy is typical of geeks. My poor metaphor is we learn the notes, scales, and do our practices, but at the end of the day we're supposed to be writing songs, not waxing philosophic on music theory or who makes the best pianos. Geeks are just too prone to being "technically correct, the best kind of correct!" and those of us who want to create unique things really need to think more like artists than engineers half the time. Oh well, back to our typical barrage of "Why PHP sucks" and "real coders walk like this..." articles
- davidjnelson 15y agoI like your point. It reminds me of how facebook was initially cobbled together with some (likely) hodgepodge php and mysql code. It was a great user experience and took off. After it becoming a hit, they optimized it and improved it.