Live data from Hacker News

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

simplethread.com

431–440 of 745 posts

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

#431

Earlier quoted context omitted.

> It is completely realistic to achieve 10x (or even much greater) productivity and it isn’t challenging, but it requires abandonment of closely held ideas that are socially reinforced. OK, you piqued my curiosity. Can you elaborate?

This is completely off the top of my head. Objective quick wins: 1) Less code. The less there is the less there is to debug and maintain. This applies to all code including dependencies, frameworks, abstractions, and decoration in your own code. If abandoning OOP means substantially less code then do it without question. 2) Iterate faster. If you have a build that takes 10 minutes and the next guy has a build that ta…

Great stuff!

> 2) Iterate faster. If you have a build that takes 10 minutes and the next guy has a build that takes less than a minute they can fail 10x more frequently and achieve the same level of productivity.

I think this is very under rated. There are so many things that can reduce developer latency (time between making a change to the code and seeing if it works, or deploying to production) is one of the most under rated aspects of software engineering productivity.

Most other factors pale in comparison.

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

#432

Earlier quoted context omitted.

A 10x programmer doesn't cost 10 times as much as a regular programmer. 10x programmers are real and drive real business value. The people who insist 10x programmers are a myth simply have not worked with one. Do not conflate brilliant-but-an-asshole or prodigious-output-but-creates-a-mess programmers with 10x programmers.

Yet another comment that uses the phrase 10x but does not provide any way to quantify it. No one is disputing geniuses exist. Calling them 10x, however, is problematic.

> that uses the phrase 10x but does not provide any way to quantify it

Understand your complaint but "10x" is best interpreted as a figure-of-speech and not an exact mathematical equation. It's just a short & snappy sounding label that's easy-to-say and easy-to-type on the keyboard. (My previous comment about that: https://news.ycombinator.com/item?id=13753178)

We use numerical type phrases without quantitative precision all the time:

- He doubled-down on his opinion. (We don't nitpick and ask how can an opinion be quantitatively measured as 2x?)

- The old editors like vi/emacs is a million times better than IDEs. (We don't nitpick about where the 10^6 quantity improvement comes from.)

- Microsoft decimated the competition. (Some might nitpick that exactly 1/10th didn't get eliminated but Websters Dictionary says that so-called "correction" is wrong anyway: https://www.merriam-webster.com/words-at-play/the-original-d...)

And yesterday, the top comment[1] in "Economics Programming Languages" wrote:

- >a new language to be adopted it needs to do something (something reasonably important) 10x better than the competition. Even 2x better is not enough to motivate the disruption of changing languages.

Yes, it's hard to measure "10x" in languages beyond synthetic benchmarks. But I think most of us get the idea that "10x" is a just a synonym for "a massive amount" of a fuzzy quality.

For some reason, "10x" attracts a lot of extra nitpicking that we don't consistently apply to many other examples ("double-down", "million times", etc).

[1] https://news.ycombinator.com/item?id=28784181

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

#434
post #313

> “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…

This is especially true if the company uses "unlimited"/not-tracked/etc. time. Otherwise, unless you know someone at the place (and even then it can vary by group), you're left with making assumptions about norms that may not be accurate. Personally, I've never not used all my PTO in a given year and would consider being unable to do so a show stopper.

I've heard the "unlimited PTO" policy referred to jokingly as the "no PTO policy" at some shops.

Most companies are great about it though and encourage PTO.

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

#435

Earlier quoted context omitted.

If you read the book the researchers argue that worldview is neither factual nor is it helpful.

> factual Nope. Just because it says so in a book doesn't make it true. When you make a statement of the form "X does not exist", a single counter-example is sufficient to prove you wrong. Lucky for me, many such counter-examples exist, and many have even been discussed in this thread. I'll add one to the list: tourist (Gennady Korotkevich). He's a competitive coder that's several orders of magnitude (e.g. 1000x) bet…

I think you’re missing the point or I was unclear. The point is not that masters at a skill don't exist. The point is that attributing their skill mostly to something innate rather than practice, study, etc is not supported by the body of research they review in the book (the book is written for a general audience, their academic research supports the arguments in the book).

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

#436
post #432

Earlier quoted context omitted.

Yet another comment that uses the phrase 10x but does not provide any way to quantify it. No one is disputing geniuses exist. Calling them 10x, however, is problematic.

> that uses the phrase 10x but does not provide any way to quantify it Understand your complaint but "10x" is best interpreted as a figure-of-speech and not an exact mathematical equation. It's just a short & snappy sounding label that's easy-to-say and easy-to-type on the keyboard. (My previous comment about that: https://news.ycombinator.com/item?id=13753178 ) We use numerical type phrases without quantitative prec…

Most of your examples are commonly used phrases. "10x programmer" is a unique phrase. We don't hear "10x electrical engineer" or "10x politician".

Phrases like "decimate", double-down, etc are part of the English language, and is well understood to have multiple meanings.

Your other examples (e.g. vi/emacs being a million times better) are examples of random numbers people throw out. Someone will say vi/emacs is a ton better, or an order of magnitude better, or a million times better. Whereas with 10x, it's always 10x. I don't hear people talk about 3x programmers or 20x programmers.

The HN comment actually supports my point. You can see how different people are interpreting 10x in the responses. That's the exact same problem we have in this comment thread.

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

#437
post #313

> “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…

This is especially true if the company uses "unlimited"/not-tracked/etc. time. Otherwise, unless you know someone at the place (and even then it can vary by group), you're left with making assumptions about norms that may not be accurate. Personally, I've never not used all my PTO in a given year and would consider being unable to do so a show stopper.

I really like the policy of "minimum mandatory time off" some companies have. That makes a big statement about where their priorities are in terms of care for their employees' well-being.

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

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

> when you don't care about the users and just do it just for the fun of doing it

Yes!! That makes me so happy.

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

#440

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…

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…

> In one analogy it could be the 10x bricklayer. One who does a well defined job 10 times faster than the others.

Software as brick-laying gets a laugh out of me. If someone uses that analogy, that's a red-flag: they don't really understand software (and tech). It's like offshored bodyshops that just keep throwing more warm bodies at a codebase.

Truth is, a 10x isn't someone who lays bricks 10 times faster. A 10x is someone who thinks differently. Instead of building you a something with load-bearing walls, he'll innovate and use an internal steel frame, paving the way for your building to be taller than anything previously considered possible. [0]

[0] https://en.wikipedia.org/wiki/Home_Insurance_Building

Post reply on HN