4 ms·
Well, I've been programming 30+ years..... I think one of the main things that makes a good programmer is someone who cares about the final product. Ironicall
by keithnz 10y ago
Well, I've been programming 30+ years.....
I think one of the main things that makes a good programmer is someone who cares about the final product. Ironically this doesn't necessarily mean you have to be super good at writing code. I have seen people with what seems basic coding capability very methodically build some really nice software. This is because they are very focused on the "end" not the "means". You see the thoughtfulness of what has been designed in. Sometimes, in the quest of writing "good code" it interferes with writing good software because the emphasis becomes getting good at the means to an end above the end itself.
Not to say improving your coding capability isn't of value, but it's done so you can create even more fantastic things.
- wruza 10y agoUsually they methodically build very nice nightmare, but of course 30+ years is long enough to see a couple of exceptions. I've been there for 15+, and half of that in 'consulting' — it's when you write business code right here, right now after 10m discussion. These are really two different styles, but I feel what you mean. 'Good code' is a hard thing to define, but for me it is the code that fully covers all aspects of the initial set of intents (I intentionally let the purpose and profitability off, because it may be not of value in some cases). If intents are unclear, we can't really evaluate anything in between. If it was a very dirty hack for a hard task, and we intentionally made it, it is still good code. Thus you can't tell good code from bad without knowing its history and the rationale behing it. Code doesn't fail, projects do.
- keithnz 10y agoUsually ... I find many people can make nightmares for all kinds of reasons ... but for me, usually, people who have a strong sense of what they want and they have a strong sense that they want it to be "good" but only have a basic coding skills. They don't end up with nightmares, possibly slightly strange things, but they tend to adopt coding advice in a considered manner and start growing their coding capability. The biggest problems there comes when the person is dealing with frameworks which have concepts beyond their current coding capability. I think we see at the other end of the spectrum with the frameworks, languages and software we really like, they are done by people who really want their end result to have this quality of "good" and are very considered. They leverage their coding ability to great effect. (lua and its implementation is a good example of this ) I think when we see your more run of the mill business app where you spec -> implement, often you don't see good programming, often because no one super cares. It's just average programming. However, when someone starts thinking, well, applications like this should be super easy to put together and really starts to care that they are easy to do, then you'll see some good programming :)
- mianos 10y agoI have also been programming for over 30 years. I agree with you when the problem is small but all the rules change when it is bigger. If you are not up to it then it does not matter how much you care, and I do want people who care working on stuff, but at scale if it is not really good then the chances of failure are much higher.
- keithnz 10y agoeven at scale, it's the same thing, even more so. just remember I'm not saying caring vs coding skills.... I'm saying caring from when you are noob through to your entire growth as a programmer will define you as a good programmer, as opposed to an average one. An average one will also adopt coding skills and be... ok, average programmers will be inspired by good programmers and want to emulate them, "wow! that person did some awesome stuff with React!, lets do React! it is all things awesome!", but then you find while it's certainly got some things you appreciate, you end up with average React code because you adopted the the framework and not the mindset. My observation is good programmers start... and continue with a mindset. "It works" is never quite the goal, it needs this quality of being "good", good code, good design, good Ux, which we won't try and define, but more importantly is driven by caring about the outcome. I guess that's more my reflection on my observations, what I have observed is having taken on people out of uni ( or crossed into programming from math / science / engineering ), and seen them develop over the years I have this sense of "good programmer" from the beginning, it's not once they reach some level of coding ability. They always do good things with their current capabilities. They then carry on and improve those capabilities and do even more good things.
- sidcool 10y agoBeen programming for 10 years and it's distressing how inadequate and incompetent I sometimes feel. I like to rebuff it as Impostor's syndrome, but who knows, may be I am just bad and surviving because mediocrity is what the industry wants. On the other hand, the pleasure that a good piece of code in a beautiful software gives is something I can perhaps relate to an opiate high (as a metaphor, never tried honestly :) )
- CannisterFlux 10y agoI find it more like the feeling of having sorted out my wardrobe (folded things and thrown out old clothes, I hate doing this despite feeling better afterwards). Or a mix of that and say building a good looking Lego MOC from a limited set of pieces. But only for some things - I have several self-contained python scripts that give me this feeling. Sometimes fixing a bug in a clean way. Other things - Android apps for example - tend not to give me this vibe. They feel more nebulous and "unfinished", like it's a miracle they work at all and will break at any moment in ways I couldn't understand.
- keithnz 10y agowork environment can mess with your mindset to care. To the point of being told not to. you just need to achieve X, and move on, and you never get to make things in a way you care about them.... so you may decide personally to focus on the means, try different languages, learning new frameworks, techniques..... but never quite being in environment where you can build something you care about. Interviewing people you often hear peoples stories around this, it's a motivation to find a new job, or they end up with side projects / open source which they care about and start wishing they could do those full time. They just want a space where they can build things that matter to them. Some places get it, some don't, some partially get it. One of the classic things I have seen is "managers" that say they want you to care but don't really care themselves. Interestingly a number of years ago I went through a program called "Better by Design" which the NZ government sponsored for local businesses, see:- http://www.betterbydesign.org.nz/why-design-matters/ http://www.betterbydesign.org.nz/why-design-matters/ and a big part of the message about good design was really all about trying to make people care at every level of the company.
- rumcajz 10y agoI call it honesty. To be a good programmer you have to be honest about what you are doing. Smarts won't help.