Live data from Hacker News

What does it take to be a good programmer?

qristin.wordpress.com

1–10 of 107 posts

Re: What does it take to be a good programmer?

#2
I teach programming, too. My way of teaching is not much about computer, it's more about thinking, drawing and writing (not only code).

- Thinking about steps, divide and conquer.

- Drawing or visualizing the steps.

- Writing documentation clearly before any code is written.

Most of new programmers tend to think just make program work means DONE. No, it's not, it's just the last part of what to be done.

Re: What does it take to be a good programmer?

#3
> You need to be really smart and have a scientific mindset. Most importantly you need to love learning new things.

I'm not so sure that these are required. I think they are more akin to "commonly found characteristics."

Especially the "scientific mindset" part. I have a disciplined mindset, but I suspect most scientists would take issue with me, calling it a "scientific" mindset.

In my experience, being a good problem-solver is more important than just about anything. Being able to "divide and conquer" a problem, sniff out root causes, and not settle for symptomatic fixes, etc. Stubborn might be more important than smart.

We also don't all have to be Mensa members. Many programmers are probably not much smarter than their peers in other disciplines.

But "love learning new things" is, while maybe not "required," at least quite helpful. It certainly applies to almost any vocation; not just software development.

But the real gist of her essay was that it helps if programmers are good with people, as much as with machines, because they connect better to the end-users of their work.

Whether or not being "good with people" is required is debatable, but I think that it is important for everyone to keep an eye on the final deliverable, and its operation in the context of the end-user.

In my experience, many organizations go well out of their way, to ensure that engineers never hear directly from the user. That's Marketing's job, and Thou Shalt Have No Other God Before Me... etc. I've watched Marketing people throw huge tantrums at engineers that "dare" to suggest that they might envision the way their work would be perceived by the end user.

Re: What does it take to be a good programmer?

#4
> In todays field of software development, people don’t come into it

To be as polite as possible without being dishonest; wow, there are a few rather sweeping, unsubstantiated, boiling hot takes embedded throughout there, i've just quoted one.

From my experience, most of what features here just simply isn't true, or is at least very anecdotal. Just as one example, i've never worked for any software company that "wasn't about the users". You really do just only need to look at how much "UX Specialist" roles have meteorically exploded over the last ~decade or so, as companies compete to offer increasingly smoother user experiences, and it is hammered into the actual developers too as a core operating principle everywhere i've worked.

Re: What does it take to be a good programmer?

#5
What do we mean by "good" in this sentence? I've worked with plenty of programmers whose output a lot of code quickly, but the code is difficult to understand and maintain. Others whose output takes more time, but the solutions are elegant, well structured, and maintainable. Coding is a craft and assessing whether or not a programmer is good has as much to do with the audience as with any metric of quality.

I draw parallels to the world of literature, sure James Patterson sells a lot of books, but is he a "good" writer? I would say no, but the millions of copies he has sold make a counter claim that cannot be simply dismissed.

Re: What does it take to be a good programmer?

#7
> 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 that it's fundamentally difficult to make meaningful improvements to them.

We're not there yet; but perhaps its time to start working in that direction?

Re: What does it take to be a good programmer?

#8
post #2

I teach programming, too. My way of teaching is not much about computer, it's more about thinking, drawing and writing (not only code). - Thinking about steps, divide and conquer. - Drawing or visualizing the steps. - Writing documentation clearly before any code is written. Most of new programmers tend to think just make program work means DONE. No, it's not, it's just the last part of what to be done.

The single most useful thing I ever learned was how to break down a problem, make steps to a solution, make a flowchart of said steps, and annotate the flowchart with pseudo-code. After that, making the software was trivial. Even with that toolset I’m likely mediocre at best.

Re: What does it take to be a good programmer?

#9

> You need to be really smart and have a scientific mindset. Most importantly you need to love learning new things. I'm not so sure that these are required . I think they are more akin to "commonly found characteristics." Especially the "scientific mindset" part. I have a disciplined mindset, but I suspect most scientists would take issue with me, calling it a "scientific" mindset. In my experience, being a good prob…

I worked with someone who didn't have what I'd call a scientific mindset, and it can really be a limiting factor. They confused correlation with causation, in other words were quick to launch on to theoretical explanations without testing or proving their thinking. When solving a problem, they tried tons of different approaches until they empirically found one that worked, without always fully rationally understanding the cause of the symptom they were trying to remedy. They usually succeeded, but the cost was the time spent, and the complexity of code that resulted.

There are a lot of ways to be a programmer, but that is not one of the better ways. The programmer was productive (prolific) enough, and the business was resource-constrained enough, that their work quality was not even close to consider firing or replacing, but I'm convinced it cost the team and the company a lot of productivity and effectiveness over time.

Re: What does it take to be a good programmer?

#10
post #4

> In todays field of software development, people don’t come into it To be as polite as possible without being dishonest; wow, there are a few rather sweeping, unsubstantiated, boiling hot takes embedded throughout there, i've just quoted one. From my experience, most of what features here just simply isn't true, or is at least very anecdotal. Just as one example, i've never worked for any software company that "wasn…

> i've never worked for any software company that "wasn't about the users"

Startups are going to tend to have devs focused on users and "quality is everyone's job" etc. In fact, you should never hear the phrase "that's someone else's job" in a startup.

Big corp jobs, especially at non-software companies will tend to treat people as isolated cogs in the big machine, a machine you're told by everyone is "someone else's job" to understand and steer.

The article isn't dishonest. It's that the experience of "being a programmer" varies very widely. Our field has no professional standards.

Post reply on HN