Hacker News new | ask | show | jobs
by binary132 887 days ago
IMO what makes a great programmer is leverage and leadership. It doesn't really matter if you're a rockstar "10x" etc., what matters is how your work empowers others. Nobody is programming in a vacuum.

In order to become great at that, you have to make enough mistakes that affect other people until you understand what helps and what hinders them. You have to realize that your code isn't just implementation but is human-oriented communication, and tools are part of the puzzle.

The more your work hinders others, and the more you are forced to deal with the consequences of it, the more you will learn what helps and facilitates others.

You can also learn some of this by using and suffering from other people's bad work, as long as you don't allow it to make you complacent.

Finally, you need to have humility. Nobody who thinks they're great is going to be truly great. You need to recognize how you suck and how to suck less. "Take the log out of your own eye so that you can see clearly to take the speck of dust out of your brother's eye."

2 comments

> IMO what makes a great programmer is leverage and leadership. It doesn't really matter if you're a rockstar "10x" etc., what matters is how your work empowers others. Nobody is programming in a vacuum.

Nah. There are those types of folks, but there are other folks who are clearly above the rest in terms of technical ability. See John Carmack, Sanfilippo (of Redis fame), 100s of others. Or heck even folks who deeply understand the entire stack like Casey Muratori.

To act like there aren't folks who are "rockstars" or simply better software engineers, and at some point it boils down to soft skills, impact and leverage is corporate bullshit. There ARE people who are simply more technically gifted.

The OP didn’t ask about how to become a staff engineer, they asked how to become a great programmer. Those are not the same thing.

and why have you heard of them?
This. If the personalities you mentioned didn't have the soft skills GP was talking about, you wouldn't even know of their existence.

Sheer technical ability alone is not enough to be a great programmer. If you don't know how to properly communicate with others you are useless to your employer.

You're not making any sense to me. How did you get from "not famous" to "must not being a great programmer"?
They are rockstarts because they have technical skills AND soft skills. Sure, John Carmack was a technical beast when it came to computer graphics. But one can't work for Facebook/Meta from 2013 to 2019 (and as a consultant until 2022) without soft skills.
John Carmack can have all the soft skills in the world. If he wasn't technically credible, it does not matter. This topic is about how to get that level of technical proficiency, how to become a great programmer.

Jumping in and telling folks to be a great communicator or tech lead instead is not the way to become a great programmer. That's the way to become a great staff engineer. They're not the same things.

Because we’ve seen the technical artifacts? For example, they released their work open source and we saw the quality. What’s your point here? Redis, when released, was a single person effort, for example.
Leadership and engineering are two different skills.

They may coexist in one person.

But great engineering is not always a great leader.

Maybe it depends on how you quantify greatness. I think that if you're really good at writing a fast matrix kernel, that's lovely, but if you're really good at making a matrix kernel which is very useful to lots of people, or even just to your team or company, _that's_ great.
> which is very useful to lots of people, or even just to your team or company, _that's_ great

agree

but you don't need to inspire anyone to do that

You just need to be great at engineering and have some empathy to your end users

I didn't say anything about inspiring anyone
Sorry, I misinterpreted your meaning of leadership.