Things I’ve learned in my 20 years as a software engineer
381–390 of 745 posts
Re: Things I’ve learned in my 20 years as a software engineer
#382The sad realisation that I'm the 0.1x software engineer.
Re: Things I’ve learned in my 20 years as a software engineer
#383> “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…
The context is key. First interview . The issue isn’t taking time off, it’s that the prospective employee’s head is up their proverbial ass. First interview is propspecting. If you were selling a product, if the customer is asking about the return policy before even selecting an option, it’s a similar signal. When you’re in a subsequent interview talking about the benefit plan, salary, etc, that’s where that sort of…
Re: Things I’ve learned in my 20 years as a software engineer
#384Earlier quoted context omitted.
> 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 max…
If you read the book the researchers argue that worldview is neither factual nor is it helpful.
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) better at coding competitions than the average competitor. And the average competitor is a few orders of magnitude better than the average professional programmer who doesn't have algorithm experience. All of this is measurable (at most we can quibble about whether the skill differences are 100x or 10000x or infinite). If you don't believe me, please go and take a simulated Codeforces competition right now and see how long it will take you to solve some set of problems that tourist solved in under 2 hours (or if you will be able to solve them at all - I certainly won't be able to solve the hardest Codeforces div1 problems no matter how much time I put in).
I have a feeling this mountain of empirical evidence was insufficient to change your mind about this. I would appreciate if you could take the time to explain why? Why is this evidence not enough?
Re: Things I’ve learned in my 20 years as a software engineer
#385The 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…
Re: Things I’ve learned in my 20 years as a software engineer
#386Earlier quoted context omitted.
I think that depends on the context in which you’re working. Flashes of genius don’t have much place an an enterprise code base. Everything is rigorously standardized and separated into layers. Each layer has a bunch of bookkeeping about dependencies, interfaces, mocks, expectations, and test cases. This is not really brain work; it’s typing. Now maybe if you’re really brilliant, you’ll do much better than average wi…
Maybe that's why so many people think 10x programmers don't exist - they work in environments where a 10x programmer isn't needed and couldn't really demonstrate their skills.
Re: Things I’ve learned in my 20 years as a software engineer
#387Earlier quoted context omitted.
How long would it have taken you or me to write Doom, or Quake? How long would it have taken Carmack, if it'd just been him? I think you have a false dichotomy here. Carmack isn't 10x better a C or assembly than me. But in his domain he's easily 10x smarter and more productive than me. And on top of that, he has a quarter century more experience in graphics programming than me. That shit accumulates. Yes, actually. I…
> How long would it have taken you or me to write Doom, or Quake? How long would it have taken Carmack, if it'd just been him? I'm not a games programmer. I doubt a median games programmer would take 10x the length of time that it would take any other games programmer. It just seems implausible, and I don't know why people want to defend it.
I think in any field where you have a deep domain with complex, difficult constraints, it is entirely possible to have programmers with 10x the effectiveness of the median simply because of their greater domain expertise. They know the unique algorithms, data structures, design patterns, hacks, tricks, hardware quirks, tools, debuggers, code smells, etc. All of that has a huge compounding factor when it comes to output.
Here's a story I like to tell:
I joined EA shortly after the PS2 came out and worked at the studio that made Madden. Madden was a launch title on the PS2 (meaning it shipped right as the PS2 hardware did) and that version essentially sealed Madden's success. It was hugely successful.
But making a launch title is really hard. You're developing softare for a hardware platform that is itself in flux. When EA first started working on Madden PS2, they didn't have any dev kits to work on. I don't know if dev kits even existed. They needed to write code that they couldn't compile and run. But if they didn't start immediately, they would never be able to get the game done in time for the launch.
They had a guy on the team with a reputation for being a wizard. He took the MIPS R5900 reference manual, and disappeared into an office with blacked out windows for some number of weeks. When he re-emerged, he had written a PS2 emulator despite never having access to an actual PS2. The rest of the team were able to compile and run the game on that emulator so that they could make progress until eventually real dev kits arrived. From what I heard, when the real hardware showed up, the game actually ran on it.
Now, some of this legend may have grown in the retelling (it was already legendary by the time it was told to me), but I worked with that engineer a few times and I can vouch for his incredible ability to get stuff done. I remember once when FIFA was having performance problems and couldn't get their framerate high enough to ship. He was called into to help and a few days later, got it up to a solid 30 FPS. This was even though the team's own engineers had been trying to make progress and he had never touched the code before.
I think people dislike the mythos of 10x engineers because it's interpreted as some sort of cognitive essentialism. But I think most of it is just really deep domain expertise. Instead of talking about "10x engineers", we should talk about 10x at what.
Re: Things I’ve learned in my 20 years as a software engineer
#388> “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.
Re: Things I’ve learned in my 20 years as a software engineer
#389Re: Things I’ve learned in my 20 years as a software engineer
#390Earlier quoted context omitted.
Usually I am more inclined to hire someone who discusses time off during an interview. It shows that they think about their life-work balance. I do not need heroes, I need reliable folks who do not burn themselves out. Or to put it in a cliche... I need people who work to live rather then live to work.
and also importantly people who have family to take care of. If someone comes to me and asks for time off because they have children or partners or parents to take care off and they take that seriously that certainly deserves some respect would make a better impression on me than someone showing up with a Patrick Bateman business card in hand
book != cover