News for hackers. Stuff that matters.
Re:Ask HN: How old were the most talented software engineers... by scrollaway on Thursday January 03, 2019 @02:14AM (#18813455)
Same story here. The most talented engineers I know are either in their early 20s or in their late 40s/50s.

Of course it's for different reasons. Something many people don't want to admit is that a lot of talent comes from practice and experience, and someone in their 40s is much more likely to have 20+ years of experience than someone in their 20s.

The early-20s geniuses I know are talented for different reasons. The ones I am thinking about are people who pick up new things absurdly quickly; pick up on patterns very easily; have general experience in enough domains to make quick connections; etc. But some of them are extremely undisciplined (which may or may not be related).

Those same people with age, gain not only experience but also hopefully discipline. A combo like that yields you people like John Carmack and the like: Not just talented, but out-of-this-world "next level".

Re:Ask HN: How old were the most talented software engineers... by carlmr on Thursday January 03, 2019 @03:00AM (#18813576)
>The ones I am thinking about are people who pick up new things absurdly quickly; pick up on patterns very easily; have general experience in enough domains to make quick connections; etc.

That's my experience as well. Generalists are often the most productive people. A good generalist can often grasp the whole system faster than a niche programming language specialist. And you usually don't need those niche programming skills for 99.9% of problems. Humans are capable of much more than the small niches companies put us in.

Generalists are generally (hrhr) ignored by HR though. They don't fit any mold so have a harder time getting hired. The most successful ones I know usually freelance.

Re:Ask HN: How old were the most talented software engineers... by jpatokal on Thursday January 03, 2019 @07:22AM (#18814564)
I hire at a FAANG for two roles where we specifically target generalists: Solutions Architect (design solutions for complex real-world problems) and Technical Solutions Engineer (last line of support for really gnarly cases). Both need people who can cover a lot of ground, and it's hard to be good at either if you don't have significant practical experience and can't traverse the stack from source code to tcpdumps if needed. That said, being just a generalist is not going to cut the mustard, you're going to need depth in at least one field, plus you need to be able to talk to customers too.

Mandatory plug: if you think you'd fit the bill and are keen to explore, find me through my HN profile. Bonus points for being anywhere in APAC, although I can refer you elsewhere too.

Re:Ask HN: How old were the most talented software engineers... by cc81 on Thursday January 03, 2019 @08:22AM (#18814836)
Do you (or anyone else) know of any more resources of what a Solutions Architect is doing day to day at that company? What artifacts are they producing, how much hands on are they, do they belong to teams etc?

I have the title right now but it is a new one in the company and it is up to me to navigate really what it means for us.

EDIT: And are there any books or other resources you or you see Solution Architects recommend?

Re:Ask HN: How old were the most talented software engineers... by thepredestrian on Friday January 04, 2019 @11:56AM (#18825519)
Do you happen to hire co-ops for these type of roles? I have recently had interest in consulting
Re:Ask HN: How old were the most talented software engineers... by nickjj on Thursday January 03, 2019 @08:17AM (#18814803)
> Generalists are generally (hrhr) ignored by HR though. They don't fit any mold so have a harder time getting hired. The most successful ones I know usually freelance.

I think as you gain experience you naturally become more of a generalist over time.

I've been a freelance developer for 20ish years and I would consider myself a generalist at this point, but it took many many years to get to this point.

Everything from learning the Linux basics, how networking works, various programming languages and web frameworks, database modeling, dealing with the ops side of things, and the list goes on and on. Basically I spent a majority of my life learning all of these things in a lot of detail, but most of it ended up being on a need to know basis.

Basically once you become somewhat proficient in something, you naturally start learning about some other related topic. Even today I still think I know almost nothing in the grand scheme of things.

Re:Ask HN: How old were the most talented software engineers... by seanmcdirmid on Thursday January 03, 2019 @07:10AM (#18814533)
As a specialist who is currently looking for a job, HR generally only seeks generalists. Almost all interview loops that have been standardized seriously prefer generalists. The mold doesn’t fit anyone and are just generic programming/system design questions that do not evaluate specialist skills and experience at all.

PL specialists are also pretty good generalists. I mean, what hasn’t Jeff Dean done and do people even remember that he has a PL PhD anymore?

Re:Ask HN: How old were the most talented software engineers... by YorkshireSeason on Thursday January 03, 2019 @10:01AM (#18815555)

   PL specialists are also pretty 
   good generalists.
It has also been my experience that people with a PL / compiler background are often great generalists. At Google I can think of at least the following:

Jeff Dean, Fergus Henderson, Ken Thompson, Rob Pike, Ben Gomes, David Stoutamire, David Bailey, Urs Hoelzle, Hal Abelson, Martin Abadi, Peter Norvig, Sanjay Ghemawat.

There are more but can't think of them off the top of my head. Chris Lattner is a non-Google example.

(As an aside, I see a similar phenomenon -- albeit at a much lower level of ability -- in my undergratuate students, and I've supervised a large number: top students almost always do well in / and have enjoyed their compilers course.) Why would that be the case? I can offer 3 hypotheses for discussion.

1. PL / compiler stuff is so trivial that everybody can be good at it.

2. PL / compiler stuff is so difficult that only the smartest can be good at it.

3. PL / compiler stuff forces you to think deeply about the most important tools in programming, namely the CPU and programming languages, and the bridge between them (the compiler).

I'm inclined to go for (3).

Re:Ask HN: How old were the most talented software engineers... by seanmcdirmid on Thursday January 03, 2019 @11:14AM (#18816163)
People are often into PL because they are into programming and want to improve the tools and languages used for programming. For us, programming isn’t just a means to an end, it’s an end also.
Re:Ask HN: How old were the most talented software engineers... by legulere on Thursday January 03, 2019 @05:51PM (#18820133)
Or 4.: Most problems are about transforming A to B like in a compiler. Many of the techniques in compilers are also applicable elsewhere.
Re:Ask HN: How old were the most talented software engineers... by barrkel on Thursday January 03, 2019 @08:49AM (#18815034)
I think experience in compiler and language design is a strong signal of meta-thinking about problems and high-level abstraction. Compiler implementation requires a kind of rigorous thinking and separation of concerns to keep straight, because you're writing code that writes code, and need to model execution explicitly. Also, all edge cases and interacting features need to be considered in both disciplines - you generally can't get away with smoke and mirror demos or handwaving.

I don't think it adds up to generalist though. Generalists need knowledge in a lot of different things (though one man's generalist is another man's "full stack" web app developer), or else they're just smart people who don't know much yet.

Re:Ask HN: How old were the most talented software engineers... by seanmcdirmid on Thursday January 03, 2019 @11:18AM (#18816192)
None of the standardized interview looks test for that kind of knowledge however, they really are generic. Also, I’ve find that the really famous bigcorps don’t care as much about what you know than what you could learn, even for experienced hires. So by generalist, they simply mean someone who can learn to do anything rather than someone who can already do anything. Full stack job descriptions often come from lower tiered tech companies that can’t afford that and anyways don’t have as much specialized infrastructure as a place like google does anyways.
Re:Ask HN: How old were the most talented software engineers... by romeisendcoming on Thursday January 03, 2019 @10:58AM (#18816036)
Very insightful: 'They are smart people who don't know much yet.' One thing to consider is that understanding only how a compiler organizes things or how a good assembly programmer understands the world is not conducive to anything but optimization. The true generalist, while able to perform binary analysis and understand executable file organization, is not tied to that. They are pattern people. Learn the pattern, see the relation.
Re:Ask HN: How old were the most talented software engineers... by throwawaymath on Thursday January 03, 2019 @08:16AM (#18814793)
I think whether or not you're a capable generalist is independent of whether or not you have a PL PhD. Jeff Dean is a generalist because he invested significant time in working across a wide variety of problems, not because of his PhD. If anything, a PhD makes you a specialist by default. You need to do extra work to gain diverse experience across the stack.

This is to say that I don't think you should use Jeff Dean as an argument for hiring PL specialists in generalist roles.

Re:Ask HN: How old were the most talented software engineers... by seanmcdirmid on Thursday January 03, 2019 @11:19AM (#18816213)
Google does this though. Whenever is PL PhDs get together, someone invariably talks about how they are doing ads for google these days. It’s actually so common that it has become a meme.
Re:Ask HN: How old were the most talented software engineers... by arandr0x on Thursday January 03, 2019 @08:55AM (#18815087)
I don't know if I'd call that talented though? I mean, I also got the right number in the IQ and motivation lottery, but not only is that like 80% biochemistry, it's not a differentiator in the sense of doing qualitatively different things. I do all the same things as everybody else, just faster and without guidance.

But I work with people who are extreme specialists. (I don't mean in React. I mean in computer vision or non linear optimization, that kind of thing.) There is an entire class of problems that only those people can address properly; I could learn to but it would take me a couple years and the output from these years would be significantly below state of the art. In general they're skilled, not just talented, but they also work with mental models that require some amount of essential ability to grasp and that plenty of people will never be able to fully understand.

Although, the most successful developers I know (of) are both generalists and extremely talented. Their special talent is "people understanding"!

Re:Ask HN: How old were the most talented software engineers... by Steve44 on Thursday January 03, 2019 @03:08AM (#18813604)
When I stopped programming I moved more into technical testing and that morphed into 'project guru' on some quite large projects. I could understand from low level network protocols up to the big fluffy clouds, I could also pick things up very quickly as I understood all the building blocks if not the latest buzz words. From my first exposure to SQL I was optimising databases better than the incumbent dba within a couple of months, and that wasn't even my job.

I loved the work, but the downside was no one ever advertised for that role despite it was very important to the project.

Re:Ask HN: How old were the most talented software engineers... by geezerjay on Thursday January 03, 2019 @04:23AM (#18813861)
> From my first exposure to SQL I was optimising databases better than the incumbent dba within a couple of months, and that wasn't even my job.

That doesn't mean much, as in the not so distant past (and in some small shops even today) the resident database expert is far from experienced or even technically apt. In fact, it was and still is a job that was assigned internally to someone who happened to have anything to do with the project, who was thus forced to accumulate yet another responsibility.

Re:Ask HN: How old were the most talented software engineers... by iheartpotatoes on Thursday January 03, 2019 @02:26PM (#18818333)
Younger programmers: know less, but are more flexible learning new things; broad yet shallow

Older programmers: tired of having to be "flexible" for decades; extremely deep knowledge, siloed

Most clever programmer I saw was a guy in his 40's (in early 2000). He was a layout engineer who wrote a PowerPoint+VBA design rule checker for extremely rapid prototyping of layout ideas.

Most clever team I met was a group of 30 somethings (mid-1990s) who wrote a CPU architectural simulator that was essentially a tweak of the first linux kernel.

Most "how the fuck did you do that" was a 25 year old out of Russia who wrote a Windows 10 hack for hooking system calls for performance monitoring. He did things Windows docs said you couldn't do. All un-commented assembly. Glad I left before I had to own it!

Re:Ask HN: How old were the most talented software engineers... by spinach on Thursday January 03, 2019 @05:03AM (#18814042)
That begs the question then, what happens to these early-20s geniuses once they are late 20s/30s?
Re:Ask HN: How old were the most talented software engineers... by rotten on Thursday January 03, 2019 @06:53AM (#18814460)
Life gets in the way for a while: Kids. Spouse/partner. House. Hobbies. Cynicism. Burnout. Health. Elder care. Then things settle. You work through the life thing, and in your 50's you get a fresh perspective and new energy.
Re:Ask HN: How old were the most talented software engineers... by ryandrake on Thursday January 03, 2019 @03:54PM (#18819179)
All of the above, plus, at most (non-FAANG) tech companies, as an individual contributor your salary will plateau when you’re around 30-35. During your 20s you’ll get used to double digit pay raises and then all of a sudden that will stop. Even changing jobs won’t give you more than a 1-2% bump as some point.

I’ve had that surreal “we really want you to stay but we can’t give you a raise” conversation too many times in my career.

Re:Ask HN: How old were the most talented software engineers... by SimonPStevens on Thursday January 03, 2019 @06:52PM (#18820599)
Yes, this. So then those young brilliant individuals move into management because it's the only way to continue some semblance of career progression in your 30s.

Then a subset of the gifted technical individuals grow tired of management, step down and go back to the tech to do what they really loved all along.

I've met a fair amount of brilliant engineers in their 40s/50s who have been through management and decided it's not for them and are now shining as engineers again after a decade lost to leadership roles

Re:Ask HN: How old were the most talented software engineers... by imhoguy on Friday January 04, 2019 @04:40AM (#18822877)
I would also add massive family debt/mortgage to this list. I saw so many star engineers fear-driven and stagnating in their tiny comfort zones to the burn-out or layoff.
Re:Ask HN: How old were the most talented software engineers... by scalesolved on Thursday January 03, 2019 @05:07AM (#18814067)
Whilst half joking I've had children around this age and I don' claim to be a genius but the time afforded to technical exploration and learning has dropped significantly while they are young.
Re:Ask HN: How old were the most talented software engineers... by scrollaway on Thursday January 03, 2019 @06:15AM (#18814319)
Well, one of them now works at Facebook, another at Google, another at Amazon. The youngest one is still at a smaller company but I suspect he'll end up finding a job at a Big Five or some such.

To answer your question, they get swallowed. Google etc hoard talent, and those that can fake it. I don't know if that's good, but they definitely end up with resources to produce incredible things. Then again what would they do alone, I wonder.

Re:Ask HN: How old were the most talented software engineers... by kamaal on Thursday January 03, 2019 @09:33AM (#18815322)
Genius isn't a static quality. These things come with expiry dates.

Learning is the key to flying high when it comes to a knowledge intensive career like programming.

Its hard to do that a while. Also early 20's you just exit teenage, and a have degree of naivety and foolishness. That spark goes with time. And you become more intelligent, calculative and serious to stop experimenting the way you are before.

But mostly, they stop learning. That's what causes the downfall.