6 ms·
The opposite approach is much simpler. There's only one sign that you are a great programmer: Clients and fellow programmers are still happy with your work two
by rickmb 15y ago
The opposite approach is much simpler. There's only one sign that you are a great programmer:
Clients and fellow programmers are still happy with your work two years after you've delivered it.
(Of course: "still" implies that they we're happy at delivery, which includes actually shipping working software in a timely fashion.)
- Sodel 15y agoI would definitely stipulate that the clients applied to this metric need to be "clueful". You might give them exactly what you asked for, only to have them discover that what they asked for wasn't really what they wanted; "clients from hell" might ask you to re-write it for free, or at least be cross with you for not reading their minds. In any case, they won't be happy. Ignore those.
- deleted 15y ago[deleted]
- spenrose 15y ago"Clients and fellow programmers are still happy with your work two years after you've delivered it." Disagree. The first system I wrote kept the client happy for years. It was a mess, but it was literally millions of dollars better than not having any system. If what you mean is something like "focus on doing work of long-term value, and consider programming skill as such an input", then I'd agree with that.
- saraid216 15y agoThat was an AND, not an OR.
- philwelch 15y ago"and fellow programmers" Did your client ever hire programmers to maintain and improve the first system you wrote? Were those programmers happy with your work? I guess if no one is ever going to maintain your code it doesn't matter as much. I wouldn't ever be so bold as to predict ahead of time whether that's going to be the case.
- krobertson 15y agoIt also assumes those fellow programmers are also good programmers. Can a mediocre programmer tell the difference between mediocre code and good code? To the original point, the happiness of the client and other developers is a good indicator, but not the only.
- andrewflnr 15y agoCan a mediocre programmer tell the difference between mediocre code and good code? Maybe not directly, but they can probably tell how well they understand the code and how hard it is to change. Not as well as a good programmer, since they'll have more trouble with both regardless, but somewhat.
- spenrose 15y agoMy bad; thanks to philwelch and saraid for flagging the error. The resulting discussion is interesting, as is 13 upvotes for a post based on a misreading :-). FWIW, my favorite bit on programmer's understanding each other's work is Yegge's Done and Gets Things Smart.
- philwelch 15y agoThat's true. It's not so much about other programmers being a passive critic of your code so much as it is about the maintenance programmer down the line being able to understand what your code is doing and either fix bugs or add features to it. The maintenance programmer should be competent, but shouldn't have to be brilliant to understand what's doing on (except in the rare case that your code actually is doing something brilliant). If the maintenance programmer doesn't understand a basic language feature, it's his fault if he doesn't understand your use of it (be it ternary operators, blocks, list comprehensions, regular expressions...). If the maintenance programmer does understand ternary operators but you do something like nest them four layers deep, it's probably your fault if he gets lost.
- hcayce 15y agoI wonder if the test is closer to one writers face: you're probably a decent writer if people value your work enough to read it. Likewise, whatever else one can say of programmers, you might be a reasonably decent one if someone else values your work enough to use it. "Reading" and "using" in this case might be similar.
- cafard 15y agoWell, I wonder. As the neighborhood bookclub's pain in the ass (I did not seek the vocation; it found me) I see quite a number of books with great blurbs, and even the occasional award, that I think are very sloppily done. A large number of best sellers seem to scratch an itch widely but briefly felt. Will anybody read _The Da Vinci Code_ in 2025?
- Dove 15y agoThis is the only metric that matters. Ability to achieve. Everything else is a tool.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- sounds 15y agoThis article stands out from many that point out common errors. This one also provides great* tips on how to improve -- even a "contrapositive" link: http://www.southsearepublic.org/article/2024/read/what_makes_a_good_programmer http://www.southsearepublic.org/article/2024/read/what_makes... * Disclaimer: maybe I've seen so many "you're doing it wrong" posts that I see something in the opposite direction and get too excited. But then, that's what makes something like PG's "Great Hackers" (http://www.paulgraham.com/gh.html http://www.paulgraham.com/gh.html) rare. It takes a lot of things: education, some innate ability, good habits, work environment -- including a good team... Innate ability isn't a huge factor, but writing wonderful code definitely isn't for everyone. So then, what is to be done with all the mediocre code being produced? I don't see the world overrun by it, long term: code is too expensive. But to get there, something definitely needs to be done.
- runT1ME 15y agoThis is a ridiculous assertion. I believe it's the kind of attitude that keeps our profession from gaining respect among other professional groups. I've cooked meals for people that were impressed and happy, does that make me a great chef? Perhaps the people I fed are easy to please, have a simple tastes, spend most days eating unflavored oat meal. If i'm capable of changing a car's spark plugs, and it continues to run well does that make me a great mechanic? People having low or incorrect expectations does not change the overall quality of something you create or deliver.
- nostrademons 15y agoThat could also be a sign that you work in an industry that doesn't change very much.
- wlievens 15y agoI'm not sure being a great programmer (as in being great at the craft) is the same as ship on time & be sucessful. It's quite possible to write crappy code but still have a usable product that satisfies the customer much more than the previous pile of crap.
- epscylonb 15y agoI think the very first judgement you should make about a piece of software is whether it works or not. After all the user will never care about anything else. That being said, if you are in a team and you know you all will have to extend or maintain the code at some point, then discussion of coding style, program features, choice of data structures, etc, is healthy. These things are important for a growing application, getting them right will make the software more robust and make maintenance more efficient.