The discussion about tools and languages was particularly interesting. You might expect John Carmack to be pretty old school and dogmatic on using e.g. C and instead it seems he has a very broad taste and experience with different languages and tools. Just a very pragmatic person that switches between doing C, python, Go and other languages. For someone that is into hyper efficient graphics code, admitting that for the vast majority of code, using a garbage collector is perfectly fine is IMHO a very pragmatic and mature attitude. He doesn't have to prove anything to anyone anymore on that front of course.
VS Code is indeed a very popular IDE. The Jetbrains ecosystem is also pretty interesting. I found his comments on debuggers to be pretty striking. GDB is so hard to use that programmers avoid using it. Having a proper debugging UI changes that. He was talking about how he just runs most things in the debugger by default to see if things work as he expects.
In the same way having static code analyzers tell you that, no, actually your code wasn't perfect and is full of little time-bombs that could go off at any moment is a great argument against just pretending you are Buddhist monk that only requires a pen and paper to produce perfect code. Exaggerating here of course but I know some people and that on purpose avoid using, or even learning about tools that would allow them to be more productive and better engineers.
Not using tools that are there is a choice that a lot of people seem to insist they need to make. I've heard all the excuses on this front and it usually boils down to people believing in their super skills, discipline, and intelligence to the extent that they believe they don't need those tools. Some people actually feel threatened by a tool telling them they are doing stuff wrong. They get annoyed and frustrated by that. It's irrational.
He has been using various programming languages for a long time. Basic, assembly, (turbo) pascal, etc. In my experience most old school dogmatic C programmers started with C and never even tried to use any other programming language halfway seriously.
He especially gives a lot of praise to Borland for making turbo pascal and how far ahead it was of its competition back in the day when it comes to developer tooling (IDE, debugger, etc)
(agreed though. VS has been a beacon of light inside MS even in its darkest periods.)
Most Windows programmers I know (not a lot) use VS for the ease of integration with all things .NET and Microsoft.
It was a surprisingly bad experience - weirdly slow even on a high performance PC and so much clutter by default.
Tried out VS 2022 just now. First impressions are better.
VS seems to be a WPF app nowadays, so I assume the UI is written in C#.
Either the whole thing freezes and becomes unresponsive, or intellisense stops working, or (often) both.
Sublime Text + GDB + RR is my no-bullshit setup right now and I love it. A mouse interface to GDB would be nice, but I can live without it.
I remember how insane it sounded to me that someone as talented as Carmack would look up for a second or a third resource describing a concept just because he couldn't clearly understand it on first try because, contrast to how we react when a student fails to grasp pointers. Our kneejerk reaction to someone not understanding a concept on first try would be "You want to re-read that again? Guess you're not talented. And you keep making mistakes after an hour? Sigh you're a lost case".
And here you have literally Carmack himself not caring how many books he has to reference, because all that it matters is that it will eventually click, he will own it, he will make progress and that's all that matters.
Lol, he said Visual Studio is THE IDE, not VSCode. Compared with VS, VSCode is a toy.
Is it still true today? I don't really do C++ so I have no use for VS, but I have a hard time imagining not having access to everything to do C++ dev with VSCode
I think there's two major things you need in order to do that. Work on what you love/want and have no/little need for socializing.
That sounds like an intense schedule for sure but not really that insane. He's not super human and just staying in shape, and well rested is what has allowed him to do this for decades on end. Work life balance and taking care of his family is just part of that deal as well.
I notice that the quality of my own work is simply much better when I'm well rested and that beyond a certain point, the most productive thing is for me to simply take some rest or do something non work related. The rare case that I need to work on something late, I pay the price the next few days. It all averages out in the end in terms of productivity.
Grinding away at a problem for hours is simply draining. Often those problems melt away the next morning after I sleep a bit. Your brain doesn't stop working when you do. The hard work is immersing yourself in the problem and absorbing all its facets and then calmly reflecting on all the assumptions you are making. Generally, if you are stuck you need to find out which of your assumptions it is that is wrong. I've woken up with fully formed solutions in my head for seemingly unsolvable issues or bugs that I fought with the previous day so often that I actually rely on this happening a lot these days. So, I generally stop working around 6-7 pm and I'll park harder issues until I'm well rested in the morning or after a weekend.
I don't work on the weekend. The weekend is for resetting my brain. Just as important as sleep is. The most productive use of that time is allowing that brain reset to happen. Getting frustrated and stressed is counter productive. It leads to poor sleeping patterns and stuff just piles up. Take a break, relax.
I'm not sure what disqualifies that as insane, but it pretty much precludes any social life. I'm on-and-off doing these kind of hours (sometimes work takes over life, sometimes life takes over work), but when I do these kind of hours even when I'm not working my brain is still thinking about work. I can't imagine doing this for decades at a time, this is truly a life dedicated to work. But I agree that you can't achieve great things without sacrificing your life.
> Work life balance and taking care of his family is just part of that deal as well.
I don't judge anyone for how they like to spend their time (and certainly admire Carmack), but what work/life balance? There isn't much except work there.
If you can eliminate the average 90 minutes a day commuting Americans do, along with the average 20 hours a week spent cooking and cleaning et cetera by hiring people to do that for you, a rich person can have more life working 60 hours a week than a poor person has working 40.
Carmack is a high level martial artist. That would have required a significant time commitment.
Interestingly, it might not be the that significant of a commitment in terms of raw hours although it certainly is in terms of consistency and persistence. Quick googling reveals that it might take around 2500 training hours to get to BJJ black belt (I guess if you're pretty talented). Over 10-year period, that's just under 5 hours/week. And BJJ black belt is a pretty big deal.
With a more effective teaching model, I believe one could achieve the proficiency needed for a black belt in 2/3 of the time. However, this does not mean becoming a name on the world stage, for which much more talent and possibly more hours of practice are needed: talent saves many hours of practice that are instead needed by less talented practitioners, assuming that the latter can reach the level of talented people even in the limit of infinite time and youth.
Yeah, competitive scene is a whole different beast.
I did my PhD in a lab that demanded it: we were expected to put 6 days, 12 hours a day. It’s possible for maybe 30% of population maybe? Especially if you’re privileged and don’t have to worry about other things in life (like kids, parents, money, physical health, chronic issues, mental health, etc). So in some ways the ability to train and be able to adopt this more “productive” life is a bit exclusionary and even discriminatory. In the end I chose not to continue in academia primarily because of this demand, I just didn’t feel like it was worth it.
Now I’m in tech and I do get bored, but happy that I have the choice to set my hours.
damn, I can only feel bad for people who use that term :( it seems like simple human interaction are being optimized out.
1 standard can of diet coke (375 ml) contains 48 mg caffeine -> 128 mg/liter. So 3 liters (8 cans) contains 384 mg caffeine. Brewed coffee contains ~400 mg/liter.
It's not that much caffeine and it won't do anything to your teeth.
> Agree with him, VSCode is THE IDE.
Nothing in that interview suggests he's ever used VSCode.
I'm sorry, but diet coke (and most sugar free drinks) causes dental erosion. It's not the sugar that causes it, but usually the citrus acid. Even some flavored sparkly waters have citrus acid in them.
It's my understanding that soda is typically acidic, and after you drink it the soda coats your enamel, in turn wearing it down.
He's also a high level grappler (nerd worlds collide if I ever had a chance to roll with Carmack :) ), which is not an easy feat.
Open source was like that and was created to be like that. Parts of it still are, but much of it has degenerated into fiefdoms and lots of developers of larger open source projects have been soured by the prospect of just being free labor for surveillance capitalist mega-corps.
The good corners of the OSS world tend to be small communities doing interesting things. It's just like how the small topical subreddits are still okay while the big areas on Reddit are complete trash.
What I found interesting:
* he has insane hours and has never burnt out. He says that if you want to achieve big things in your life, you need to work a lot. He also says that as long as he's working, and making progress (and he always makes progress when he keeps trying, reminds me of Linus), then he can withstand his hours and pressure.
* he learns a lot through reading computer science books
* he is really big on simplicity, seems to appreciate Golang and its design, and he's not into metaprogramming on C++. I really like that he's focused on building things that work, and can be maintained, and not that interested in theory and advanced concepts that don't seem to bring him much. He also says he spent some time on the functional side, and that probably made him a better programmer, but he's back doing C++.
* he talks about the sort of hacking community he felt part of, where you just wrote code and shared it and reused other people's code. It really feels like open source is something else, made me feel bad about all these patents, and weird licenses (even Apache 2 or MIT) and academic people whining about credits. Wish we could just share and use whatever and be happy with it :(
* Agree with him, VSCode is THE IDE. It's much better than emacs IMO (I've tried using vim many times but couldn't).
* 8-9 diet cokes a day. Holy fuck. That's a lot of caffein (and I'm guessing not good for the teeth)