Ask HN: How do you go from good to great Programmer?
11–20 of 45 posts
Re: Ask HN: How do you go from good to great Programmer?
#12Re: Ask HN: How do you go from good to great Programmer?
#13By getting good at testing. I worked on a project with a 100% coverage requirement for a few years, and it forced me to learn how to test things that I normally wouldn't bother with. It also forced me to deal with the consequences of maintaining my tests. I've discovered that the usual buckets used to categorize tests (unit, integration, etc) can mislead people into writing tests that make refactors painful/impossibl…
What is your opinion of code coverage requirements now? I have been in a "phase" of seeing them as "code quality theatre". Considering that a function which takes a single 8-bit integer as an argument already has 256 unique inputs, and may bug only on 1-2 values, 100% statement coverage can be very misleading. A typical function has billions or trillions of unique inputs and 100% statement coverage could be very near…
Re: Ask HN: How do you go from good to great Programmer?
#14Re: Ask HN: How do you go from good to great Programmer?
#15Two things I have seen most of the really good programmers I have known. One, they read a lot of code, they mostly spend time digging into open source codebases and quite a lot of time contributes to them as well, which goes to the second point. Two, getting your code reviewed by a lot more programmers, with more experience than you, you get a much better perspective on a lot of things.
Re: Ask HN: How do you go from good to great Programmer?
#16Two things I have seen most of the really good programmers I have known. One, they read a lot of code, they mostly spend time digging into open source codebases and quite a lot of time contributes to them as well, which goes to the second point. Two, getting your code reviewed by a lot more programmers, with more experience than you, you get a much better perspective on a lot of things.
Good point. I have one question: How do I get other people to CR (Code Review) my personal projects? I'm actually willing to pay a bit for that but always find it weird to ask around. Most of the time my personal projects are small, but not trivially small so that I can put it on Stackoverflow. Something like 1,000 loc.
Re: Ask HN: How do you go from good to great Programmer?
#17As others have said, as you gain more experience, your greatest impact will shift from your individual contribution to your ability to grow and guide teams of people.
To be able to do that effectively, you've probably had a variety of experience. You've seen things done well, and also been involved in enough mistakes to understand where the dragons lie. You've been responsible for greenfield delivery, modeling multiple business domains, have worked on codebases that resemble modular monoliths as well as microservices and can confidently explain the potential benefits and pitfalls of each. You've read a lot, kept up with changes in the field. You read other people's code, especially well written open source stuff. You probably contribute to some open source stuff too. You actively solicit feedback on your own code and don't take criticism personally. You've seen testing done well, and testing done badly. You've studied different programming paradigms and languages and become experienced enough in each to be able to make good decisions about where to use them (and where not to). You've worked with multiple different frameworks over 10s of years and can see the differences, but also the commonalities between them. You learn how to decouple your core code as much as possible from things that are subject to change on a whim. Your curiosity over your career means you have picked up adjacent knowledge; business domain knowledge being particularly valuable, but also things like an understanding of the full stack - networking, security, databases, infrastructure - you're as comfortable digging through a wireshark capture or tracing through system code as you are facilitating business/tech workshops discovering bounded contexts.
Eventually you become the goto person, the one who everyone wants to bounce ideas off. The no-nonsense person who confidently knows how to get stuff done. And then you start growing and empowering others and realise that's where the true 10x multiplier comes from.
That's been my experience anyway. YMMV.
Re: Ask HN: How do you go from good to great Programmer?
#18IMO 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 hum…
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.
Re: Ask HN: How do you go from good to great Programmer?
#19Re: Ask HN: How do you go from good to great Programmer?
#20IMO 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 hum…
They may coexist in one person.
But great engineering is not always a great leader.