Live data from Hacker News

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

simplethread.com

351–360 of 745 posts

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

#351

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…

[deleted]

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

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

N× programmers for N>1 are mostly not N× cowboy solo code slingers, lots of gains are in enabling other members of the team.

The idea that programmer contributions to output are all in solo code slinging is a close cousin of the myth “programmer contributions can meaningfully be measured in lines of code”.

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

#353

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…

What do people gain by arguing over these? Genuinely confused

Just to be proud and gain that dopamine?

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

#354
post #350

Earlier quoted context omitted.

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…

I shouldn't have said CRUD. I agree with you, there's a place for genius stuff everywhere.

What I meant is that there is also a lot of boring stuff that just needs to get done. A 10x programmer won't help you much there.

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

#355

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 a social service. Its for other humans.

I deeply disagree with this Calvinist utilitarian sentiment. Its akin to saying sex is for making babies. Maybe its an academic thing - When I went to grad school for CS, on Day 1 my Algorithms Professor paraphrased Perlis's famous quote on the blackboard - "Shaft the paying customer!"

You can find the whole quote on the first page of SICP[1], or elsewhere[2]. imho its a highly toxic sentiment to think that whatever a programmer does is for other humans. Software as a Social Service...SAAS :)

imho the best software is written to scratch a personal itch. Not to appease this customer. Not for other humans. Not as a social service. In fact all the people I deeply admire in the software world - Arthur Whitney, Kenneth Iverson, Mattis & Kimball, Perlis, Dijkstra, hell even Linus, are generally characterized as egotistical assholes in the public space who really don't give a flying fuck about social service & humans but care deeply about the software they created for their own selfish reasons.

Mattis is quite explicit about this - "You should understand that the GIMP and GTK weren't written to fill holes in the software available under the GPL...GIMP was started because I wanted to make a Web page. GTK was started because I was dissatisfied with Motif...These are purely selfish reasons. That is probably why the projects...eventually succeeded. I find it much more difficult to work on something for selfless reasons."

Perlis - "I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn."

otoh the people I deeply detest in software (too numerous to name) are generally these do-gooder types who write software to save the world & provide social service, employment to the masses, add "value" insert-marketing-speak-here etc...

I'm ok with the hypocrisy in pretending to care about software as a social service because I need to put food on the table like any other programmer on the market, but deep inside, I write code only for myself. I think a big fraction of developers are like that. There's no harm in saying it out loud.

[1]https://cloudflare-ipfs.com/ipfs/QmQ3C4ooSCmBMuK7mKq4sqVAfGq...

[2]https://www.goodreads.com/quotes/405620-i-think-that-it-s-ex...

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

#356

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 the opposite of how you should want any knowledge worker to think. If you believe that there’s some innate ability that makes people 10x better at a skill than you rather than hours of practice and study then you are much less likely to acquire that skill or learn those skills efficiently. You need to have a growth mindset to be an effective knowledge worker not a fixed mindset. This is discussed in the book…

Couldn't agree more, thanks for this perspective!

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

#357

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…

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…

I figure there are a lot of aspects to the job and I'm exceptional at some of the ones most people suck at, and I dont know much about some common things and can find that embarrassing at times. The rest I'm average. So I try to find work where I can bring those less common skills, and I try to fill my gaps too sometimes. Everyone is different, find a place that needs what you have to offer.

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

#358

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 the opposite of how you should want any knowledge worker to think. If you believe that there’s some innate ability that makes people 10x better at a skill than you rather than hours of practice and study then you are much less likely to acquire that skill or learn those skills efficiently. You need to have a growth mindset to be an effective knowledge worker not a fixed mindset. This is discussed in the book…

> This is the opposite of how you should want any knowledge worker to think.

Some of us don't choose our beliefs based on what is most convenient or most beneficial to us. Instead, we try to see the world for what it is, truthfully (or as close to a true representation of the world as it's possible to get, anyway). If having a realistic worldview hinders my ability to learn, then so be it. Not everything is about maximizing productivity.

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

#359

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…

Norvig wasn't given a random problem that he then solved quickly. He picked the problem to work on. I'm sure I can give him problems of similar complexity that I work on for my job and he wouldn't do it that quickly. Quicker than me, for sure - but it wouldn't be hard to find someone who does it quicker than he did.

I'm sure I can find problems that I can solve quickly and amaze people. Being able to pick your own problems makes for a bad metric for identifying 10x programmers.

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

#360
post #353

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…

What do people gain by arguing over these? Genuinely confused Just to be proud and gain that dopamine?

> What do people gain by arguing over these? Genuinely confused

If you assume some arguments (eventually, in some way) lead to people altering their opinions closer to the truth, then people gain more accurate views of the world. This also reduces the spread of misinformation (when the people who have corrected their views no longer spread it), thus having a compounding effect on more people getting closer to the truth.

Or if you assume people never change their opinions as the result of arguments, then I suppose people gain nothing by arguing.

Post reply on HN