I think missing here is that to be a good programmer, one must be good at dealing with ambiguity. The output might be unambiguous instructions, but the input is generally anything but that. Working with product managers, designers, business stakeholders, etc - a good programmer can identify and resolve ambiguity in the requirements given to them in an effecting manner. This involves asking the right questions and often doing discovery/research.
What does it take to be a good programmer?
11–20 of 107 posts
Re: What does it take to be a good programmer?
#12Depends wildly on what you are doing - but tenacity in my case (paid consultant for lots of different companies) is my greatest quality. Push through - schedule carefully external dependency promises and follow through.
Maybe this is more of a project manager answer - but a consultant programmer has to adopt the role of a project manager in lieu of a component one.
Re: What does it take to be a good programmer?
#13But I'm not sure about the whole "programming is simple, like planning a party" thing. When I am thinking about my own projects with more than 150K lines of code its not like any party planning process I have been involved in, it is actually a lot more complex. It is easy to forget how hard things are when you know them and have worked with it for many years.
Re: What does it take to be a good programmer?
#14> How are we getting away with this? Isn’t someone going to catch on soon? How many “new platforms” do we have to make, before people start realising that rewriting everything, using “the latest tech” is not going to solve the problems that matter? There's a very simple solution: The tools will need to change more slowly. This will happen when operating systems, frameworks, and programming languages mature so much th…
They are basically spoiled little brats thanx to their talent, and (some) companies tolerate that since they do deliver. But often they need to be babisitted by managers to clean any mundane tasks from their roads, so you sometimes have a little ecosystem of people or even teams working around one 10x dev. Mostly still worth it for the companies, but there is hidden price that shows often very late, ie 6 months after they leave and somebody has to change their brilliant cathedrals a bit. And one thing is as sure as death and taxes - changes will always keep coming.
What you describe would be hell for them, they would keep tinkering and keep creating new frameworks, languages or even whole platforms just for given problem, because that's fun for them. That's how it all started anyway.
Re: What does it take to be a good programmer?
#15> Programming is writing down unambiguous instructions, and then grouping those instructions in meaningful ways. We’re coordinating work. It’s not rocket science. I think missing here is that to be a good programmer, one must be good at dealing with ambiguity. The output might be unambiguous instructions, but the input is generally anything but that. Working with product managers, designers, business stakeholders, et…
1. https://books.google.co.nz/books/about/Exploring_Requirement...
Re: What does it take to be a good programmer?
#16Yes, I agree. But I think it does take a lot of design skill to achieve the latter. Making the complicated simple is not an easy task. Hoare described a similar problem like this[0]:
> There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
> The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature.
[0] The Emperor's Old Clothes (1980) - https://web.archive.org/web/20220428130737/https://www.cs.fs...
Re: What does it take to be a good programmer?
#17“I hope we’ll manage to find a better balance between the eagerness to learn new tech, and the focus on actually delivering value.”
This is not always up to dev, org level changes to move to cloud or use new tech happens at mngr/arch/lead level. There needs to be trust in new tech as well as doubt if it solves the problem. I totally disagree with this thinking against new technologies. Can you imagine not going to cloud in 2022 and deal with old server technologies ?
Re: What does it take to be a good programmer?
#18good article to read however op is missing few points imo… “I hope we’ll manage to find a better balance between the eagerness to learn new tech, and the focus on actually delivering value.” This is not always up to dev, org level changes to move to cloud or use new tech happens at mngr/arch/lead level. There needs to be trust in new tech as well as doubt if it solves the problem. I totally disagree with this thinkin…
Re: What does it take to be a good programmer?
#191. Solves task.
2. Does that within a necessary performance constraints.
3. Uses commonly accepted approaches, libraries, style, does not reinvent things which are not necessary to reinvent.
4. Readable by programmers who'll work with that code in the future. That could be juniors or seniors, that depends on a particular company and project.
5. Extendable for changes which are likely to happen in the future.
6. Not extendable for changes which are not likely to happen in the future.
Every item is necessary and going down this list requires more skill and more humility. It's easy to write complicated code. It's hard to write simple code which is as good as complicated where it matters.
That's what my opinion is and that's what I strive to.
That said, I might be completely wrong about it, as I see great churn with modern software, things are being rewritten over and over again. Code maintainability seems not to matter as much as it mattered in the past. May be that's my bubble. Sometimes I think that the good programmer is one who can spew JavaScript nonsense faster than his peers can review it, because who cares, that stuff is going to be rewritten tomorrow with revolutionary new age framework.
Re: What does it take to be a good programmer?
#20> How are we getting away with this? Isn’t someone going to catch on soon? How many “new platforms” do we have to make, before people start realising that rewriting everything, using “the latest tech” is not going to solve the problems that matter? There's a very simple solution: The tools will need to change more slowly. This will happen when operating systems, frameworks, and programming languages mature so much th…
Man, the most brilliant folks I've ever met in software dev realm in past 20 years were always, without exception, the least patient ones. They get bored very quickly with mundane use of stable set of frameworks and libs. Doing yet another similar app and not something obscure, using bleeding edge stuff (and bugs). By bored I mean resigning, often immediately. They are basically spoiled little brats thanx to their ta…
I think at that point the people you describe will move to a newer field where things are still changing quickly.