Live data from Hacker News

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

simplethread.com

171–180 of 745 posts

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

#171
post #8
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…

-1x programmers also exist, in a variety of guises. From the dev with long cv of projects he’s contributed nothing to and been sidelined from, but who manages to keep getting hired because of his cv, to the dev who crowbars in new tech where it’s not needed and causes a ton of problems.

This could be managers who deem themselves programmers or software architects. (Often they would use their authority to promote their ideas and effectively shut everyone else up.)

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

#172
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…

Saying 10x programmers are a myth because it's crazy that someone could do in 1 day what another could do in 1 week makes the assumption that both programmers in the example have the same amount of context, background understanding, and experience. The benefit of talented engineers comes from the fact that they avoid costly pitfalls - not that they pump out more code per hour worked. I feel this "10x programmers are…

> The benefit of talented engineers comes from the fact that they avoid costly pitfalls - not that they pump out more code per hour worked.

Not just avoid pitfalls, being able to put together a good architecture is a huge factor as well. The effect is cumulative. If you have a good design to begin with, everything becomes easier with less risk of bugs. The result is that implementing new, or changing existing functionality takes less time.

The 10x developer doesn't write 10x as much code, (s)he will probably write less code than the 1x developer.

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

#173
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 like to say that I am a 10x developer 10% of the time. My work tends to be very "bursty" followed by long bouts of low productivity. It probably has more to do with my mental health than anything else. :/

I have the same problem. But the more I tackle it in reasonable ways, the better it gets. Here's some pointers that work for me:

- enough sleep, rather get in bed early than late as the quality of the sleep depends on natural rhythms

- engage with people that are affected by my work - this is important for motivation and to keep track of what actually matters

- operationalize everything, say out loud what to do next

- being honest when I have bad focus, talk about it

- trust my instinct and do the right thing, if I don't I quickly lose focus and motivation, if opinions don't align learn why

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

#174
post #59

Earlier quoted context omitted.

With that argument you could say that everything humans ever did was for humans. So either it is a platitude or it is wrong.

You could say that, but my cat thinks you'd be wrong. However, I'm yet to see my cat boot up the computer.

My cat has turned off my computer on me - does that count?

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

#175
post #148
post #123

Earlier quoted context omitted.

I think this applies to not just software, but engineering in general. See, science is mostly about observing the natural phenomena. On the other hand, there are jobs that are mostly about taking care of people's needs. Engineering sits in the middle. It's a mediator. We have to understand the circumstance of both sides - nature (this could be something like hardware capacity in our case) AND people. Just taking care…

It applies to every job not just engineering. I thought this was considered obvious.

For many people it definitely is not - some folks get into software engineering because they have the mistaken (albeit not as mistaken as if they were going into another career like medicine!) belief they can avoid people and just deal with machines.

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

#176
post #58

Earlier quoted context omitted.

Or they write it for themself and not _other_ humans.

Your future self can be seen as “other” humans given a long enough time frame. Anybody who has looked at their own code done more than 5 years ago can surely attest.

5 years is optimistic. A lunch break can be enough.

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

#177
post #148
post #123

Earlier quoted context omitted.

I think this applies to not just software, but engineering in general. See, science is mostly about observing the natural phenomena. On the other hand, there are jobs that are mostly about taking care of people's needs. Engineering sits in the middle. It's a mediator. We have to understand the circumstance of both sides - nature (this could be something like hardware capacity in our case) AND people. Just taking care…

It applies to every job not just engineering. I thought this was considered obvious.

To clarify, you're saying that you vire that that being technical and observing natural/physical phenomena are important parts of selling clothing at retail, being a novelist and working as a receptionist?

I think those are important jobs, and completely disagree with you. I'm trying to understand if those are jobs you weren't considering, or if we view each the responsibilities of those jobs very differently.

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

#178
post #55

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...

Approching the same experience level and fully agree. A piece of coding art that doesn't fulfill customer needs, or requires understading of language standard minutia for fellow devs to do maintainance updates is worthless.

Yes, or in some cases even worse than useless - an active problem that requires expensive specialization to not make things an even bigger mess

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

#179

> 1. I still don’t know very much > “How can you not know what BGP is?” I learned a while ago that answering someone who asks you "What is X?" and replying with a phrase similar to the above is probably one of the worst ways to broach the subject. It comes off as questioning the person's intelligence/knowledge. Instead try to see it as a teachable moment. If it is something you think is cool and/or you are passionate…

I used to be pretty bad about this, and I honestly didn't realize I was doing it until someone pointed it out.

I hate when people do it to me, so no idea why I was doing it right back.

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

#180
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.

Don't forget to write for future you. They'd appreciate some consideration as well. Mostly along the lines of "wtf does this module do?"
Post reply on HN