Live data from Hacker News

John Carmack: Career Advice

twitter.com

121–130 of 178 posts

Re: John Carmack: Career Advice

#121
post #84

Interesting; my strategy has been almost the polar opposite of his ('learn widely', not 'deeply'), and it served me well so far. It's the whole discussion of being a specialist vs. a generalist, to some extent. Do you want to know stuff about a lot of things, or know a lot of things about some stuff? TBH I also believe in knowing fairly deeply a few areas (you have to have _some_ depth too, not just breadth); but I s…

> TBH I also believe in knowing fairly deeply a few areas (you have to have _some_ depth too, not just breadth);

There's a specific term for this, it's called "being T-shaped". You have breadth at the top and then depth in one subject area.

I think the ideal balance probably varies from person to person. Some people really enjoy going deep on a subject (these are the kinds of people who get PhD's). I personally can't keep my interest on one thing for too long so I end up with a lot of breadth, but I make sure there are a few subjects I revisit a lot so that I manage to build some depth.

Re: John Carmack: Career Advice

#122
post #84

Interesting; my strategy has been almost the polar opposite of his ('learn widely', not 'deeply'), and it served me well so far. It's the whole discussion of being a specialist vs. a generalist, to some extent. Do you want to know stuff about a lot of things, or know a lot of things about some stuff? TBH I also believe in knowing fairly deeply a few areas (you have to have _some_ depth too, not just breadth); but I s…

> Interesting; my strategy has been almost the polar opposite of his ('learn widely', not 'deeply'), and it served me well so far.

This whole kind of advice is not very useful in practise. Copying a recipe for success from a person that is wildly different in personality than you will not lead to the same outcomes.

If you've read Masters of Doom, it is evident that Carmack is not neuro-typical. Few people have the ability to concentrate like him. There is no point trying to become like him, this will only make you miserable. Don't fall for post-hoc rationalisation: he naturally gravitated towards it and became successful. 200 years ago he might have been a scholarly monk, or a watchmaker tinkering.

You have to choose your own path. Doesn't mean you cannot learn from the mistakes of others, but this will probably be about how and less about what.

Re: John Carmack: Career Advice

#123
post #95

David Epstein's Range has a lot to say about this topic. Carmack's idea of 'deep' work [0] is environmentally dependent. It works for him and for the places he has been at. But it is not a universal rule for learning in all environments. Epstein uses Tiger Woods and Roger Federer as his headline case, but goes into many other forms of learning. Woods' golf is a kind learning environment ; the rules are clear, the fee…

This is an interesting perspective, from a technical view it seems like the difference between writing library and debugging a system. Programming a library referencing an RFC seems kind, the rules are already there. Debugging a performance issue in a large distributed system is unkind, you need a lot of existing knowledge and ideas to know where to start.

Epstein kinda treats things as a binary: un/kind. But I think there is a spectrum of 'environmental kindness'. Troubleshooting is a good case of this. If all you do is debug a single system, then you'll get really good at it, via practice. It starts out environmentally unkind, but ends up being environmentally kind via repeated use. While if you have to debug multiple systems and add in new systems, then you stay in an environmentally unkind situation.

Being a mechanic on your own car is one thing, but working in a shop with new cars and problems coming in all the time is another.

Re: John Carmack: Career Advice

#124
post #84

Interesting; my strategy has been almost the polar opposite of his ('learn widely', not 'deeply'), and it served me well so far. It's the whole discussion of being a specialist vs. a generalist, to some extent. Do you want to know stuff about a lot of things, or know a lot of things about some stuff? TBH I also believe in knowing fairly deeply a few areas (you have to have _some_ depth too, not just breadth); but I s…

My number one tip for this strategy is: good generalists need deep knowledge of the fundamentals which apply to their general field.

If you know the fundamentals and the theory of programming/CS well enough, you can contribute to almost all kinds of programming projects (given some time to acclimate). Some examples of what I mean by fundamentals:

- data structures;

- computer architecture (no need to design your own hardware, but you should know how all the components interact);

- basics of complexity theory;

- at least one scripting language.

- knowing how to write low-level programs in at least two operating systems. For example, write a simple HTTP proxy in C by using just the C standard library and BSD sockets. If you don't want to use C, use another compiled language but avoid any fancy libraries for this kind of exercise.

If you're good at all of the above you'll never run out of companies that want to hire you. You won't know everything, but you'll be able to learn most things quickly enough.

Re: John Carmack: Career Advice

#125
post #55
post #50

Earlier quoted context omitted.

This closely matches advice I've been giving to new hires and team members for years. When you join a new team look for the gaps, what isn't getting done or what will benefit the team most and fill that gap. You're not going to compete with the current guru of this or that, so learn from them for sure but that's not going to mark you out. The only down side is there are often reasons those gaps are there, but it's ju…

I'd be a bit weary of gaps in some environments. As you suggest, those gaps often exist for a reason. From my experience a lot of those gaps are essentially integration efforts between two systems where one person builds something independent of the other that were supposed to be integrated or are now desired to be integrated yet were never planned or designed appropriately to integrate. In the end, you end up needin…

> This seems to be a more common modern phenomenon where people need to pump out something to look good/productive and then coast away before the challenging effort of making things work together occurs. I would say this issue is exacerbated by the mass adoption of "agile" where integration is always an afterthought since business leaders are often the dictators.

For me it is the latter over the former. I would love to do a 3 point business feature every sprint and spend the rest of the time cleaning up code. Between the POs pushing work onto my plate, as well as everything else I have to do (releases, code reviews, fixing regressions etc.), cleaning up old code is a luxury at the moment.

Re: John Carmack: Career Advice

#126
post #17
post #5

Tools change, fundamentals don't. I disagree that you should modify what you should learn in order to start contributing as fast as possible to a team. I think that the advice that he gave was a bad one.

The problem is that far fewer people get hired to work on the fundamentals than to operate the current industry-standard tools. Also many of the jobs that require fundamental skills seem to require steep academic credentials (e.g. a PhD from a big name university) that are sometimes more difficult to acquire than knowledge of the fundamentals itself.

I don't think Carmack has ever been "hired" for a job since he was a teenager.

So you're right, he's talking about "this makes you desirable in my eyes", not "practical employability through the lens of HR".

Re: John Carmack: Career Advice

#127
post #95

David Epstein's Range has a lot to say about this topic. Carmack's idea of 'deep' work [0] is environmentally dependent. It works for him and for the places he has been at. But it is not a universal rule for learning in all environments. Epstein uses Tiger Woods and Roger Federer as his headline case, but goes into many other forms of learning. Woods' golf is a kind learning environment ; the rules are clear, the fee…

> Federer's tennis is an unkind learning environment; the rules aren't as clear, the feedback isn't as quick, and the skills are more murky. A lot of tennis is the mind-game aspect and in elite tennis, you don't get the same person very often. The Inner Game of Tennis [0] for folks interested in learning more about this. [0] https://www.amazon.com/Inner-Game-Tennis-Classic-Performance... PS Novak's probably more clut…

Anyone who has played some tennis can attest that it's more mental than physical specially when you're playing against opponents of the same level. No magic about that.

Re: John Carmack: Career Advice

#128
post #70

My advice: 1. Make sure you do what you love to do. 2. Make sure you constantly improve and try to do as good job as is possible. 3. Don't get distracted. In almost any field, there is always need for people who have deep expertise and can do excellent job. It doesn't matter if you are developer or lawyer or a salesperson or actor. If you do world class job, your prospects are good. It is hard enough to do something…

My problem is that what I love to do changes a lot, so I get burnt out and/or bored with a thing before I've mastered it (and certainly before I've spent a full year at a company doing it day in and day out).

Also, most of the things I genuinely love (like reading whatever strikes my fancy at the moment for pleasure) aren't things anyone will pay me to do.

Re: John Carmack: Career Advice

#129
post #53

I prefer Richard Hamming’s series: https://www.youtube.com/watch?v=e3msMuwqp-o&list=PLctkxgWNSR... “ I have given a talk with this title many times, and it turns out from discussions after the talk I could have just as well have called it "You and Your Engineering Career," or even "You and Your Career." But I left the word "Research" in the title because that is what I have most studied. ”

+1, one of many transcripts of a version of this talk: https://wcarss.ca/reading/you_and_your_research

Re: John Carmack: Career Advice

#130
post #91

Earlier quoted context omitted.

Pretty sure your getting downvoted because this sounds like the advice of a professor who hasn't spent much time in an industry setting: grind algorithmic problems to succeed, only to find out past the interview that knowledge rarely gets used. Ive managed to not have to do a technical interview for all of my internships and jobs so far, largely due to my efforts networking and focusing on learning popular technologi…

Hmm - that is surprising since I specifically mention I work in industry (and have for quite some time). It sounds from your post like you may do front-end work. I work primarily on distributed systems for machine learning, so I can't speak to front-end work, but in my experience understanding basic data structures and algorithms is quite useful in day-to-day work. It is great you have gotten to where you are without…

I think you're definitely right about how taking time to practice with algorithms and data structures using tools like Leetcode can give you that nudge of intuition that helps you reason about other systems.

In fact, I had a similar "simplification" moment during the summer after practicing Leetcode for a few weeks. There was a longer than needed function that returned a list of unique items, and realizing the intent of the code, I simplified it to a one-liner using built-in data structures. Small moments of recognition like that feel great!

Your point about becoming more familiar with your language's APIs is also a great one. After the aforementioned Leetcode practice, I didn't have to look up things half as much as I did previously about Python. It was a good feeling :)

Unrelated to the above anecdote, I recently started following the Backend Engineering Show with Hussein Nasser [0], and he makes a lot of these kinds of connections to popular technologies like you described.

EDIT: forgot to add the link!

[0]: https://open.spotify.com/show/55pPBm0l75K28dIqoHIQIc

Post reply on HN