Live data from Hacker News

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

simplethread.com

11–20 of 745 posts

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

#11

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

you can replace the word "software" with basically any other professional work and that is still the same. I don't know what you can learn from the fact that it's a social service.

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

#12

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

Isn’t this true of basically any job?

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

#13
post #11

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

you can replace the word "software" with basically any other professional work and that is still the same. I don't know what you can learn from the fact that it's a social service.

Well, all economy is human economy, so yeah .. okay.

You can learn from the fact that its a social service by actively NOT resisting the truth of this fact.

Incorporate it into your thinking with every commit you make and you will become a better programmer over time.

(Corollary: those developers who forget this fact, make shitty software...)

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

#14
post #12

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

Isn’t this true of basically any job?

Sure, but that doesn't make it any less useful as a fact - especially when you are working with other developers who choose to try to ignore/avoid it as a maxim.

Please don't tell me you've never met such a developer ..

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

#15

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

Software is whatever you want it to be. I can write software that is not for other humans. That's the most fun part of software engineering to me, when you don't care about the users and just do it just for the fun of doing it.

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

#16
post #6

This is a very insightful list. But there is one thing I'd quibble with: while it's inherently a super-subjective metric, I would say that 10x programmers do exist. Both in the "can support a company by themselves" sense and the "mad lone genius" sense. Not all the 10x programmers are good at working with other people or on other people's ideas. 0.1x programmers are often lost or afraid, although they may just be uni…

I've also met one 10x programmer in my life. A lot comes down to being able to reason fast, architect well, and write code on the fly without resorting much to:

* Documentation

* The debugger / print()

Becoming a 10x developer means that you have a set of skills that work well together in an end to end process from going to initial requirements to fully fledged architecture and/or code.

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

#18
I have seen many similar posts what people have learned but not once have I seen:

"Don't assume anything".

So many times when shit hit the bricks because someone assumed something about some other thing they clearly don't know everything about. Which eventually lead to the system failing.

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

#19
post #6

This is a very insightful list. But there is one thing I'd quibble with: while it's inherently a super-subjective metric, I would say that 10x programmers do exist. Both in the "can support a company by themselves" sense and the "mad lone genius" sense. Not all the 10x programmers are good at working with other people or on other people's ideas. 0.1x programmers are often lost or afraid, although they may just be uni…

> People are often willing to sacrifice any amount of development velocity to avoid being seen to make mistakes.

I'm living this at the moment and it's driving me crazy.

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

#20
post #15

40+ years of experience here, and I'll tell you the #1 thing I've learned: * Software is a social service. Its for other humans. Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...

Software is whatever you want it to be. I can write software that is not for other humans. That's the most fun part of software engineering to me, when you don't care about the users and just do it just for the fun of doing it.

And, as the article says, your advice and the GP’s are contextual.

If you’re interested in creating software that makes people happy, solves their problems, gets cherished and recommended - then work hard to not lose sight of that goal in the thick of crafting a massive code edifice.

If you’re interested in pushing the limits of your own creativity, and building a technical structure capable of handling domain complexity with ruthless efficiency - then sure, don’t worry too much about how it looks, how it reads, or how others respond to it.

If you’re lucky, you might get to do both in the same body of code. But not likely.

Post reply on HN