Live data from Hacker News

Things I’ve learned in my 20 years as a software engineer

simplethread.com

341–350 of 745 posts

Re: Things I’ve learned in my 20 years as a software engineer

#341

> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…

Someone who replies with that kind of hyperbole is just saying they don’t want anyone who is going to take more than a bare minimum of PTO. If you’re dealing with a reasonable person, you should be able to preface the question by explaining how having sufficient time off helps you do your best work and avoid burnout, and that you want to clarify expectations up front to make sure that you and the company are an ideal…

> If you’re dealing with a reasonable person, you should be able to preface the question by explaining how having sufficient time off helps you do your best work and avoid burnout

If you are dealing with a reasonable person, hopefully you want have to explain any of that.

Re: Things I’ve learned in my 20 years as a software engineer

#342

The 10x programmer is a silly myth. The idea that someone can produce in 1 day what another competent, hard working, similarly experienced programmer can produce in 2 weeks is silly. You know, 10x is an optimistic number here. Some programmers will do in 1 day what you wont achieve in a life time. And not understanding that makes you a bad programmer by my book simply because this is the foundation of the job. So let…

Carmack is an interesting choice here, oddly. He and team were among the first ones there, but it isn't like they weren't rapidly met. Nor, strictly, the first. Ultima Underworld, I'm pretty sure, has a bit of that distinction.

Even more impressive, much of the success of later titles came from his picking the likes of Abrash to help make things fast. Notably, the WTF comment in the "fast square root" trick was from Carmack about a contractor's code that was speeding things up.

Getting even more meta on it, they had amazing dev tools at their disposal that many other programmers just couldn't afford. Look at the recreations folks do nowadays using pico8 and friends. Some folks get some really amazing tricks running in that field.

None of which is to say Carmack is a bad dev. Quite the contrary, he is quite good. But don't discount the role of everything else to the early success that Doom and friends had. In particular, the artistic execution and vision of everyone else was probably worth more than you'd consider.

Re: Things I’ve learned in my 20 years as a software engineer

#343

The 10x programmer is a silly myth. The idea that someone can produce in 1 day what another competent, hard working, similarly experienced programmer can produce in 2 weeks is silly. You know, 10x is an optimistic number here. Some programmers will do in 1 day what you wont achieve in a life time. And not understanding that makes you a bad programmer by my book simply because this is the foundation of the job. So let…

This is always my go to example of a 10x programmer: https://norvig.com/spell-correct.html How many developers do you know that would bang out a spelling corrector on a single plane flight, in half a page of code? It's a question of knowing the algorithms of tools that make things possible that other developers might not even consider, and how to express those ideas cleanly and concisely, evaluate your solution, and…

> It's a question of knowing

Exactly. Norvig's skill set happens to be of the upscale variety, but similar "10x" knowledge+practice effects exist in more pedestrian domains as well.

Compared to my current self, my teenage self was a 10x PHP programmer. I'm absolutely sure that it would take years for me to get back to being even remotely good at PHP-interleaved-with-HTML style coding.

Re: Things I’ve learned in my 20 years as a software engineer

#344

Earlier quoted context omitted.

Agreed, I don't know why the industry (or people?) in general have a problem with accepting this abilities gap. It's as if the notion of people being arbitrarily born more or less with a knack for something is evil. Let me tell you the story of when I realized I was (at best), a "not-mediocre" dev: 1. I've been programming for fun even as a kid. That's what got me into it: If you count kid-programming as "programming…

> It's as if the notion of people being arbitrarily born more or less with a knack for something is evil. The stretch from person A is a better programmer / SW engineer than B to 'thus, person A is innately better' is unnecessary. In my experience, the programmer that spends more time programming is almost always better than the one who does not. You can hate side projects, open-source work, whatever as much as you w…

> You can hate side projects, open-source work, whatever as much as you want, but IME, the programmers that engage in that (and thus have multiple times more actual experience than one who works 9-5) are universally the 10x people.

The usual correlation-vs-causation disclaimer goes here. How many open source developers spend time on it because they produce good code?

I spent quite a bit of time on side projects and helping (as I thought) others with projects that I like. After many years of doing this I have come to the conclusion that I simply cannot produce really good code. So rather than being a drain on already overworked maintainers I decided not to bother them anymore. Seeing a few others starting 5-10 years later and quickly outrunning me is quite discouraging, but such is life.

Re: Things I’ve learned in my 20 years as a software engineer

#345

> The 10x programmer is a silly myth. The idea that someone can produce in 1 day what another competent, hard working, similarly experienced programmer can produce in 2 weeks is silly. I think the 10x programmer myth was never about productivity. The idea is more about creativity. I.e. one creative programmer can create a product that would have never existed otherwise.

the dot com boom is over, you can make the next apple or google from your garage any more. All the low hanging fruit have been picked...

Re: Things I’ve learned in my 20 years as a software engineer

#346

Earlier quoted context omitted.

I think the "10x programmer" as a term is confusing. In one analogy it could be the 10x bricklayer. One who does a well defined job 10 times faster than the others. I think this is the notion people oppose. Another analogy is the 10x classical composer. A person who produces music that is 10 times better music. But this is much more about creative/artistic capacity than about producing. Nobody oppose this. I that you…

But very often what makes an idea "better" is that it produces a result faster. I've done exactly this: spent hours trying to solve a problem to no avail. Then walk away, come back to it and see that a completely different approach will solve it in ten minutes.

I doubt the bricklayer will become more efficient by taking a walk ruminating. But sure, some tasks are like that. Those are the tasks where you have 10x producers.

Re: Things I’ve learned in my 20 years as a software engineer

#347

Earlier quoted context omitted.

Someone who replies with that kind of hyperbole is just saying they don’t want anyone who is going to take more than a bare minimum of PTO. If you’re dealing with a reasonable person, you should be able to preface the question by explaining how having sufficient time off helps you do your best work and avoid burnout, and that you want to clarify expectations up front to make sure that you and the company are an ideal…

> If you’re dealing with a reasonable person, you should be able to preface the question by explaining how having sufficient time off helps you do your best work and avoid burnout If you are dealing with a reasonable person, hopefully you want have to explain any of that.

Sure, I've just found that it can be helpful to clarify intent is all, especially when you're dealing with someone you've just met - e.g. maybe the interviewer is mostly reasonable, but is scarred from past negative experiences with colleagues who were legitimately lazy. This phrasing might help such a person understand where you're coming from a bit more easily.

Re: Things I’ve learned in my 20 years as a software engineer

#348
I'd say the top lesson I learned is that when you get a list of requirements from someone, most of the time they are not 100% set on them and if they agree to change something very minor, it can allow you to create significantly simpler solution and all parties will benefit from that.

Junior developers often get lost while trying to design a super complex system, which satisfies all the requirements, while it doesn't really need to be that complex.

Re: Things I’ve learned in my 20 years as a software engineer

#349

> “if they ask about time off in the first interview then they are never going to be there!” The fact that this attitude is common scares me when I'm doing interviews. Time off is incredibly important to me. What's the use of making a great income if you can't get the time off to enjoy it? The culture about the use of PTO varies wildly between companies. A friend of mine worked somewhere that supposedly gave 20 days…

Your quote of the article made me think I was going to hate the advice, but then I realized you quoted it out of context, here's the full quote:

> People might claim they have “signals” for these things… “if they ask about time off in the first interview then they are never going to be there!” But these are all bullshit. If you’re using signals like these you’re just guessing and turning away good candidates

Re: Things I’ve learned in my 20 years as a software engineer

#350

The 10x programmer is a silly myth. The idea that someone can produce in 1 day what another competent, hard working, similarly experienced programmer can produce in 2 weeks is silly. You know, 10x is an optimistic number here. Some programmers will do in 1 day what you wont achieve in a life time. And not understanding that makes you a bad programmer by my book simply because this is the foundation of the job. So let…

The confusion is that it's all about what people can and cannot do, not how much code they can write. If your development needs are mundane crud stuff, you don't need a "10x programmer". If you're doing tricky stuff, on the other hand, you absolutely do.

I do CRUD stuff mostly at work but I always research things to improve. A good programmer can make a huge difference in CRUD applications. Things like proper relational database design can save a lot of issues down the road. Using good OOP practices can improve reliability. Keeping things DRY is great too.

I have seen some awful source code that run business applications for years.......but bad engineering practices may cost millions in the long run one way or another.

Post reply on HN