1. everything you are developing should flow from user value 2. your product should provide value to people 3. if you are technically sound, you should pull right levers to make great design that produce more value for the least effort 4. value is defined from the data. you get atleast minimal data from real user rather than working on a guess with imaginary users.
People take him as just a good programmer but he's so much more. Carmacks communication skills are off the chart for a developer. His obsession with creating user value is also not something with usually see on programmers, they will mostly put their code on a pedestal and treat everything else as less important. It's no wonder John created so much impactful things, he actually cares about people who will be using his stuff.
Amazing communication as a developer is rare I can attest. It’s actually why I do so well in technology. There are people more technically gifted than myself, but I am highly personable which is a game changer.
@@vickmackey24 Personable isn't simply a trait, there is an act to being personable. It takes extra energy and effort to care about others instead of trying to break them down any change you get. I suppose you wouldn't know.
@@tottiegod8021 Thanks for that "caring" and "personable" reply. I had my doubts, but after just one exchange with you, my opinion of you is now nothing but glowing. You really _are_ a charmer. 🤭
@@vickmackey24 He doesn't make the best "personable programmer" impression, does he. And he's not one, that's almost certain. So he's an average programmer with average programmer personality who thinks that he's better than other programmers. In other words, he's the average programmer.
He's inspired me to work on a project. I play the drums. That means I try to play a lot of drums along with songs on UA-cam. Problem in, from the time I press the 'play' button on my laptop, to when I sit up and am adjusted and ready, chances are I've already missed the first beat. So I thought... 'I'm gonna write a couple of programs. The first will generate a 4-beat metronome sound wav file at the BPM the user gives it. The second will download a UA-cam audio stream from a video URL you pass it, convert that to a wav file as well. The last script will ask the user on which beat the song starts, and will merge the two wavs together so when I play the song, it'll start with a 4-beat lead-in.' I'm about 90% done with it. So far its working extremely well...
how people usually cover songs is bring it into an audio editor where you can see the wave form and add a 8 second buffer and just play when the waveform tells you too... if you could automate it then perfect
Carmack is undeniably a genius. He's one of the people who pushed gaming to new heights and he's always been focused on creating the most enjoyable user experience. I wish every game dev had his attitude because that's more important than talent. Even though Carmack has plenty of that as well.
He is, but keep in mind that the standards back then were higher. Just look at the various postmortem videos on major games from the '80s and early '90s.
@@hadeseye2297 What do you mean "others made as well"? He pushed the limits of 3D engines and FPS games with every game he made. Why don't you read a thing or two about it before you make ignorant comments like that, kid?
That's pretty good general advice which can apply to almost every field. On the technical side though, if you want to be a good programmer you need to be a good problem solver. You need to be able to solve problems you haven't solved before without asking for help. I've seen a lot of people try to get into computer science who can memorize all sorts of algorithms, but you just can't throw them into the deep end. And they don't make it
I like how John Carmack has strong opinions and views. A lot of corporate types would give you the runaround or give softball answers, which is unhelpful.
To summarise. Do your job thinking about your impact on the customer, rather than doing your job thinking only about the impact to your bank account. This has long been the cultural battle in the software industry. The divide between 'passionate' programmers and those who see it as just a job. The problem for the majority of software teams is that the management structure tends to be one where they're generally risk-averse and try to remove the incentive for the free-thinking part of a programmer's brain. Over time this causes teams to optimise for risk-averse long-term programmers that optimise for satisfying the immediate Jira tasks without anyone apart from upper management responsible for design decisions. Usually this results in the architecturally directionless code repositories devolving into a giant mess. Every blue moon a passionate programmer joins the team. Has to spend hours and hours to wade through the almost incomprehensible mess, then once understood, embarks on a slow but strong and steady journey of refactoring small pieces of the mess, gradually carving out a bigger piece of clarity in code & architecture. It's a tough battle. It's not uncommon for the passionate coder to quit if he cannot wade through the garbage quickly enough while firefighting a steam of bug fixes (many company's way of enrolling a new joiner to the team). Then of course even if the passionate coder is successful in detangling a significant pile of the mess, he would've likely achieved alienation from many of the other members. Happy with what you did with the place, but no longer feeling like the 'expert' with lots of knowledge of how to maintain trivial yet overly tedious and bug-ridden systems. Does that sound like your software team? The easiest, most intuitive way to become a great programmer is to write your own software (ideally a video game). There you have your end user requirements right in your hand instead of hidden away in some boardroom. You can rapidly (100x faster than working at your average software company) develop your software solutions, writing 100x more code, your knowledge will broaden 10x. Your fluency will go through the roof, and you'll realise why software companies are so inefficient, and the coders are so inexperienced in software development despite decades of experience in a repetitive career fixing little bugs without any care for the bigger picture, or inspiration for your own ideas. This is why Game Developers tend to think quite differently to the average STEM engineer.
Carmack's main superpowers 1) Perseverance and focus: He kept rewriting the quake renderer, pushing it faster and better, where other people had long ago settled for a lesser variant or given up. 2) Try everything, even the stupid ideas. When he wrote quake, the wisdom was that the FPU was way to slow for a game. He managed to do z-divisions for blocks of 16 pixels on it, while the integer code spit out the pixels. 3) Attention to detail. The doom span renderer was sub pixel precise, which was pretty unique for its time. It looked better in a hard to define way. 4) Code quality. Doom and quake are very readable, very portable and heavily documented. The average 1-person codebase tends to be messy and undocumented, as nobody else ever takes a look. On the other hand, plenty of fixmes in there. It was unabashedly special cased where he could get away with it. 5) He consumed whatever idea he could get. BSPs were an obscure research trick before he took them and ran with it. He had huge holes in his 3D knowledge when writing doom, as he admits himself. He didn't care until quake forced him to level up. But he could look in the mirror, say he needed to do better, and learn the extra things when he had to.
His take on value is amazing. Most programmers I know have never even given a second thought to their users. Even at the company level, there are very few that actually care. Among the major tech giants, I think Apple and Google are the only ones who truly consider the human experience of the products instead of just measuring how much revenue it generates.
It also bears mentioning that people generally don't know what they want until they see it, and that there are people who are not currently using your product and there may be very good reasons for this, reasons which you are unlikely to discover by studying the people who do currently use your product.
One of the primary jobs of sales is to find out what the customer needs and then giving it to them. Sometimes it involves explaining to the customer why a different solution is a better fit for what they wanted.
This probably the reason why you get shiny frontends and garbage backends, the user is able to see direct value on a frontend UI but often fails to see the value on the supporting backend. This is a typical business heuristic, that often leads to shoddy engineering.
Well that is a change then, because mostly in the past businesses left the user interface as an afterthought. That is the easy part you can slap on at the end.
@@Ian-eb2io My experience as well, most companies don't emphasize good frontend practices at all. I disagree that it's easy though. Strong frontend engineering is no less complex than backend and drives the entire architecture because you work backwards from user experience and developer efficiency.
I don't think value can be quantified, because it's entirely subjective and personal. You can predict whether people will see value in something, but how much value they see is entirely in the eye of the beholder, and each person will find a different level of value in anything (and that level of value is influenced by many factors in their lives; their habits, their tastes, their wealth, etc). Value is also not related to price. When people buy something, it's because they value it more than the amount of money they're giving for it, so the price of any product that sells is always lower than the value people see in it. And so prices are not determined based on how much people value things. (And obviously, there also free products that people still don't buy into, because they don't value it enough, or they value something else more.)
@@SmallSpoonBrigade That's not true. Not everything can be quantified, and I'm fairly positive that value is one of them. But I'm all open to suggestions on how you'd be able to measure value. It's much like trying to measure how much beauty a person sees in something, or how much someone loves someone else.
@@skaruts Measured relative to the volume of water it displaces when submerged in a tub maintained at just above freezing temperature. You collect that excess water, mix it with a fermented mash of wheat, barley, or other grain, boil it in a large still, capturing the vapors in a distillation tube, where it is infused with dried juniper and other botanicals, then age the distillate in cedar barrels for one year. Mix with 4oz fresh ginger beer and muddled mint and drink 3 servings of 8oz within one hour. Then you take a standard breathalyzer test, and THAT quantifies the value added by your software product, as a float between 0.00 and 1.00.
Y’all need to watch Carmack’s appearance on Joe Rogan next Rogan said fewer words than any JRE episode I’ve seen, lol. He just sat back as Carmack laid out his genius for hours
The point is that becoming a better coder means creating more user value relative to effort, not necessarily using a sexier design pattern or framework.
The reason that he's giving this answer is that he oversaw Id Software rise from its inception as a small start up to a multi million dollar powerhouse- which benefited directly from his work.
there's a difference between being a coder and being a programmer, a great coder will make flawless code with no failures, a great progammer will bring value to its program; most people want to be great coders but they are not good programmers, it goes deeper and beyond, in the end, people is going to use ur code, and its better for them to enjoy the experience, great programmer = great coder + great bussinessman
People pay for other people to solve their problems. This man is on point, measure yourself by your creative output by working on the right thing, do not work for vanity. The creator of the Ford car is the best sample. Designing a building cars for people to own and use. There are trade offs on perfection when you keep user experience at the front. 😊
He answered this in a business sense, I believe what makes a good programmer is someone who knows what their code compiles down to. There’s so much wasted resources because todays code is so inefficient, mainly because we have the technology that doesn’t require it. But just imagine if all programmers programmed with a confined size limit constraint in place. You wouldn’t need the next gen cpu or gpu to run programs.
you could also argue that most programs are impermanent enough and mutable enough that worrying so much about resource usage doesn't make sense, given the increase in computing power we've continued to see. Moore's Law isn't dead, it's just moving horizontally instead of vertically, and we have to think about problems in a different way :)
I regularly work with ultra optimized code. The only trouble is, it was designed for machines that don't exist anymore for architectures that are wildly different than what we have today. We are talking machines that had 4 kilobytes of memory at best and half that was taken by the OS/compiler during runtime. What you get is ultra optimization for memory usage, code that is hard to read, code that is hard to modify. We use less than 32 megabytes of memory for computing huge problems - on multi-socket Xeon blades with hundreds of gigabytes of memory... Totally CPU and I/O bound. On today's machines, these programs run like dog shit specifically because they were ultra optimized. The level of optimization you want just isn't sustainable long term and leads to anti-optimization plus maintainability headaches. Write dumb code. If performance is a problem, profile your code, optimize the one or two functions that are taking the biggest hit or tweak that big core data structure you are using. But don't try to optimize every single line.
@@AlexanderNecheff I get what you’re saying and I agree. i wasn’t meaning ultra optimization, I realize that isn’t likely and is more work than what is gained. I was more or less talking about the simple things, like if the compiler you’re using isn’t optimized right, a while loop will outperform a for loop, if you’re checking more than 2 conditions a switch statement will outperform an if else statement. Some algorithms are faster than others etc.
That doesn’t make you a good programmer at all. It’s important to know and understand the fundamentals of computer architecture but it’s not something to always keep top of mind. Computers are really freaking fast, and premature optimization is a legitimate issue.
@@hameed Premature optimization is time management, its spending way too much optimizing the wrong part of code that isn’t the bottleneck and/or worrying about your code scaling before you product has even been proven to be valuable. So if you’re optimizing the wrong area of code then my point still stands and a good programming needs to know what it compiles to, to know what area needs optimized; and if you’re worrying about scaling before you know you’re product will sale well then you’re just ambitious.
John Carmack is one reason I am an engineer....I have been following him for decades and he has grown so much.. I do think he is one of the best programmers on the planet and one of the top minds in computer science. Remember he has no formal education he learned this all by himself. He is up there with Elon Musk, Bill Gates, Steve Jobs, Steve Woznaik, and Jeff Bezos as one of the great innovators of his generation. If he worked on fusion reactors I think he would be one of the ones to figure it out and turn that theory into a reality. He will be working on AI because he sees the potential and he knows AI will be a big part of our future. Things like cancer and Hiv can be solved with AI.
It pains me when I see people comparing Bill Gates, Elon Musk, Steve Jobs and Jeff Bezos with true genius engineers like Steve Wozniak or John Carmack. The former are great businessmen, which are also needed for sure, but they are not innovators.
@@alefratat4018 Kind of. Gates actually wrote software and had the ideas, and pretty much single-handedly caused the PC revolution. Steve Jobs didn't code, but he understood the user more than any programmer ever has, beyond anything even Carmack is capable of. I genuinely hate Elon Musk, but the dude IS undeniably at genius level intelligence (technical stuff only, he's a dumbass when it comes to everything else). Don't know enough about Bezos, but I'd argue the others are definitely at Carmack's tier or higher.
Plz excuse my stupidity but i have to get this right, concerning the first question: If i wrote the ugliest and most stupid code ever but my final product works and the end user find it useful than that means I'm a good programer???
Carmack should be VR Dictator at Meta, he would cut through the bs and bureaucracy there with their culture and make it even better. It would also make them an enormous amount of money.
Honestly I think he was very reserved in this interview not to spill his thoughts on VR. I have a VR headset and it is an amazing piece of tech, but after the WOW factor fades you will find that it is not worth the headache(seriously). There is a market for VR but that market is not the general public. Military, Nasa, and Medical are the places where it will do the best. Gaming will always have a few % of players, but it will not be a successful as it needs to be to make money from the general public. I hope I am wrong, but I think JC sees the issues and he is moving on to AI..
@@johnjay6370 As a Oculus Quest 1 user, the real bottleneck is the the weight of the device. This will be solved in the next iteration and most likely in the new high end headset from Meta launching next year. I do believe mixed reality headsets will ultimately win out over VR initially but as more and more people look to escape from their reality, when the VR headset can be worn comfortably for hours and not short 30 minute sessions as is the case now for the most part the adoption will sky rocket.
@@unbornG4 I still don't think it will be that successful but you never know. I think 3d tv and VR suffer from the same issues. I got a 3d TV like 10 years ago and there were some movies on it that were amazing, but after a while everyone wanted to just watch the movies without the 3d because of headaches and nausea. Even at the movies we hardly see any 3d movies anymore, it is just not worth it. I don't think the VR tech will overcome the physical effects of image 3D *nausea and headache* . Also as a parent I would hate it if my kids were wearing the headset all day and avoiding us. I like it when the kids come over and we all play Mortal Kombat passing the controller if you lose.....
@@jss672006 Guardian/ passthrough works perfectly well on Oculus. A lot less of what you're describing happening in VR these days unless the idea is to go viral breaking your flatscreen
I don't know if he could. Most of the projects that made him famous were from relatively small teams. I get the feeling that VR at Meta is a much larger enterprise.
I kinda' felt that too. Misinterpretation of data is (dangerous...?) bad as well. However, I think data scientists are supposed to know how to fight that - to _not_ be fooled by statistics, so maybe it really isn't somethnig to worry about...?
Thank you. I keep thinking the same thing. His point applies to the product owner, product manager, basically the higher level visionary guiding the direction of a project. He had super valid and important points for leading a successful software company or product, but they do not answer the question of what makes a great programmer.
I feel like VR would have boomed already ... Apple has the right idea by making their headsets lighter, see through ... meta's approach to full immersion scares normal costumers . And yeah they got half the words pop on Meta, but a lot of double accounts , old / privated accounts too. But who knows ? Not me
This answer seems detached from reality. He's talking about product decisions. Most programmers are not in the position of making product decisions. These are made by product managers. The job of the programmer is to implement the product decision, and that's what's within their scope to optimise. This answer said nothing useful about how to do that.
I basically agree, however Carmack is a pretty indie guy working either at the top of a company, or totally on his own, so he has this business perspective too. Maybe too much business perspective in his answer but i can understand and get something useful out of it.
A tasp (wireheading) is not necessarily a good thing. Even if your user is smiling and believes you are delivering 'value', are you really? Displacing things they would otherwise be doing? Again not necessarily a good thing. Also somewhat naive in that corporate optimization functions are rarely in line with those of an individual's.
Yeah more power to people who enjoy it, but I just finished a 200hr boot camp and this stuff is just SO not for me😅 Glad we have folks who can stick with it, though.
Very brave of you to say that. I think because of the money in the field there are a lot of people trying to make themselves like something they do not really enjoy and even if they get hired they will not be happy.
@@deanwilliams433 Isn’t this most fields though? It’s very rarely people like or working or their jobs in general. CS pay is just a plus and extra incentive
@@user-kf3vu8ud7s I have to disagree. High percentage of people that are very good in their field like the work. That's been my observation working as a developer that also worked closely creating software that helps other professionals. All the great ones love it and mediocre to poor ones don't update their skill set and are just looking to coast by.
I am just an intern programmer but I disagree with his take on programming. For me, a good programmer is not someone who thinks how an user wants a product to be. A great programmer is someone who can do anything he likes with code as his weapon and is really passionate about his work. He is open to new technology and is able to look at the bigger picture and find innovative ideas about how he can provide value to the world.
It's not in a culture of FB... True. Those guys cannot build a decent product. I might be biased, but it all falls into the same pattern: WhatsApp, Oculus, Insta,.... Buy good company, ruin, repeat.
Yep, Carmack is holy right about that stuff, cause you need a pay to attention to resolve a real problems of business no of this piece of speaking shit in big tech company with your team members about: "wow, what is the class name we would give him today?"
I am just starting and I get in a lot of trouble cos I dont take time to do code great for my coworkers but just focus on the product...if my code is sh1t but the app is great I am happy, i mean we get paid for that, not to make code beautifull, everyone tells me that cos I work on small proyects and in time I will understand...so that is my strugle 🤣 I am like totally the opposite to what the current is... js code for me is not simple, cos I dont know how things work, I always strugled with high level languages and absolutly loved low levels one cos of that
it is the opposite for me. I freaking love coding. I mean sure, I do sometimes get bored at work. there are certain tasks that I find tedious and boring. but overall, I just freaking love coding, man
when the work you build on top of and the work you have to continue is done right, then it's neither boring or frustrating. but of course you first need to be comfortable with code to a basic degree
Am I the only one thinking it is absurde that he talks about creating value for the user and making the world a better place, while working for Meta, a company that arguably makes people's lifes worse and the world a worse place? It's as if he has completely lost track of the big picture.
read something in .... do something with it ... write it out it doesn't matter which "language you use it's all the same. of all the languages used "the narrative" is the most difficult ... the narrative is the programming language for people ... the bible is the oldest narrative. The bible ... the book of lies.
Did you just call the one man who made the biggest graphical leaps of what PCs can render a "snake oil salesman"? I ain't even mad, because that's just funny! 😂
1. everything you are developing should flow from user value
2. your product should provide value to people
3. if you are technically sound, you should pull right levers to make great design that produce more value for the least effort
4. value is defined from the data. you get atleast minimal data from real user rather than working on a guess with imaginary users.
Thank you for the succinct summarization
Everything that a person with at least two brain cells know. Wow. He discovered America. Just like Columbus!
People take him as just a good programmer but he's so much more. Carmacks communication skills are off the chart for a developer. His obsession with creating user value is also not something with usually see on programmers, they will mostly put their code on a pedestal and treat everything else as less important. It's no wonder John created so much impactful things, he actually cares about people who will be using his stuff.
Amazing communication as a developer is rare I can attest. It’s actually why I do so well in technology. There are people more technically gifted than myself, but I am highly personable which is a game changer.
@@tottiegod8021 Kinda weird to see a highly personable person talk about how highly personable they are and how game-changing their personality is. 🥴
@@vickmackey24 Personable isn't simply a trait, there is an act to being personable. It takes extra energy and effort to care about others instead of trying to break them down any change you get. I suppose you wouldn't know.
@@tottiegod8021 Thanks for that "caring" and "personable" reply. I had my doubts, but after just one exchange with you, my opinion of you is now nothing but glowing. You really _are_ a charmer. 🤭
@@vickmackey24 He doesn't make the best "personable programmer" impression, does he. And he's not one, that's almost certain. So he's an average programmer with average programmer personality who thinks that he's better than other programmers. In other words, he's the average programmer.
He's inspired me to work on a project. I play the drums. That means I try to play a lot of drums along with songs on UA-cam. Problem in, from the time I press the 'play' button on my laptop, to when I sit up and am adjusted and ready, chances are I've already missed the first beat.
So I thought... 'I'm gonna write a couple of programs. The first will generate a 4-beat metronome sound wav file at the BPM the user gives it. The second will download a UA-cam audio stream from a video URL you pass it, convert that to a wav file as well. The last script will ask the user on which beat the song starts, and will merge the two wavs together so when I play the song, it'll start with a 4-beat lead-in.'
I'm about 90% done with it. So far its working extremely well...
Great job. Keep up the good work
Great bro.
I had this issue but solved it with 2 lines of autohotkey
how people usually cover songs is bring it into an audio editor where you can see the wave form and add a 8 second buffer and just play when the waveform tells you too...
if you could automate it then perfect
Carmack is undeniably a genius. He's one of the people who pushed gaming to new heights and he's always been focused on creating the most enjoyable user experience. I wish every game dev had his attitude because that's more important than talent. Even though Carmack has plenty of that as well.
He is, but keep in mind that the standards back then were higher. Just look at the various postmortem videos on major games from the '80s and early '90s.
@@SmallSpoonBrigade any name to suggest in particular?
How are you defining genius?
He is a genius because he worked with other talented people? Or because he, Romero and co' made games, others made as well?
@@hadeseye2297 What do you mean "others made as well"?
He pushed the limits of 3D engines and FPS games with every game he made.
Why don't you read a thing or two about it before you make ignorant comments like that, kid?
That's pretty good general advice which can apply to almost every field. On the technical side though, if you want to be a good programmer you need to be a good problem solver. You need to be able to solve problems you haven't solved before without asking for help. I've seen a lot of people try to get into computer science who can memorize all sorts of algorithms, but you just can't throw them into the deep end. And they don't make it
I like how John Carmack has strong opinions and views.
A lot of corporate types would give you the runaround or give softball answers, which is unhelpful.
Sounds like a meta spokesperson to me. But ok. You heard it otherwise.
@@hadeseye2297 Yeah, his "opinions" all sound like Meta opinions.
0:00 Lex - “you are one of the greatest programmers”
… John nods head in approval
appreciate the insight into the mind of someone like john carmack, excellent point of view from a genuinely good man
A true realist, emphasizing leadership and technical merit at the same time, what an absolute legend
To summarise. Do your job thinking about your impact on the customer, rather than doing your job thinking only about the impact to your bank account.
This has long been the cultural battle in the software industry. The divide between 'passionate' programmers and those who see it as just a job.
The problem for the majority of software teams is that the management structure tends to be one where they're generally risk-averse and try to remove the incentive for the free-thinking part of a programmer's brain. Over time this causes teams to optimise for risk-averse long-term programmers that optimise for satisfying the immediate Jira tasks without anyone apart from upper management responsible for design decisions. Usually this results in the architecturally directionless code repositories devolving into a giant mess. Every blue moon a passionate programmer joins the team. Has to spend hours and hours to wade through the almost incomprehensible mess, then once understood, embarks on a slow but strong and steady journey of refactoring small pieces of the mess, gradually carving out a bigger piece of clarity in code & architecture.
It's a tough battle. It's not uncommon for the passionate coder to quit if he cannot wade through the garbage quickly enough while firefighting a steam of bug fixes (many company's way of enrolling a new joiner to the team). Then of course even if the passionate coder is successful in detangling a significant pile of the mess, he would've likely achieved alienation from many of the other members. Happy with what you did with the place, but no longer feeling like the 'expert' with lots of knowledge of how to maintain trivial yet overly tedious and bug-ridden systems.
Does that sound like your software team?
The easiest, most intuitive way to become a great programmer is to write your own software (ideally a video game). There you have your end user requirements right in your hand instead of hidden away in some boardroom. You can rapidly (100x faster than working at your average software company) develop your software solutions, writing 100x more code, your knowledge will broaden 10x. Your fluency will go through the roof, and you'll realise why software companies are so inefficient, and the coders are so inexperienced in software development despite decades of experience in a repetitive career fixing little bugs without any care for the bigger picture, or inspiration for your own ideas. This is why Game Developers tend to think quite differently to the average STEM engineer.
It sounds so simple but it really should be articulated in such a clear way because it's so easy to overlook this brilliant simplicity.
Carmack's main superpowers
1) Perseverance and focus: He kept rewriting the quake renderer, pushing it faster and better, where other people had long ago settled for a lesser variant or given up.
2) Try everything, even the stupid ideas. When he wrote quake, the wisdom was that the FPU was way to slow for a game. He managed to do z-divisions for blocks of 16 pixels on it, while the integer code spit out the pixels.
3) Attention to detail. The doom span renderer was sub pixel precise, which was pretty unique for its time. It looked better in a hard to define way.
4) Code quality. Doom and quake are very readable, very portable and heavily documented. The average 1-person codebase tends to be messy and undocumented, as nobody else ever takes a look. On the other hand, plenty of fixmes in there. It was unabashedly special cased where he could get away with it.
5) He consumed whatever idea he could get. BSPs were an obscure research trick before he took them and ran with it.
He had huge holes in his 3D knowledge when writing doom, as he admits himself. He didn't care until quake forced him to level up. But he could look in the mirror, say he needed to do better, and learn the extra things when he had to.
No one answers questions as quickly as John Carmack. Not hesitating a microsecond before answering.
His take on value is amazing. Most programmers I know have never even given a second thought to their users. Even at the company level, there are very few that actually care. Among the major tech giants, I think Apple and Google are the only ones who truly consider the human experience of the products instead of just measuring how much revenue it generates.
It also bears mentioning that people generally don't know what they want until they see it, and that there are people who are not currently using your product and there may be very good reasons for this, reasons which you are unlikely to discover by studying the people who do currently use your product.
One of the primary jobs of sales is to find out what the customer needs and then giving it to them. Sometimes it involves explaining to the customer why a different solution is a better fit for what they wanted.
I am reminded of Gojko Adzic's Impact mapping technique for measuring value by measuring changes in behavior.
This probably the reason why you get shiny frontends and garbage backends, the user is able to see direct value on a frontend UI but often fails to see the value on the supporting backend.
This is a typical business heuristic, that often leads to shoddy engineering.
Well that is a change then, because mostly in the past businesses left the user interface as an afterthought. That is the easy part you can slap on at the end.
@@Ian-eb2io My experience as well, most companies don't emphasize good frontend practices at all. I disagree that it's easy though. Strong frontend engineering is no less complex than backend and drives the entire architecture because you work backwards from user experience and developer efficiency.
I don't think value can be quantified, because it's entirely subjective and personal. You can predict whether people will see value in something, but how much value they see is entirely in the eye of the beholder, and each person will find a different level of value in anything (and that level of value is influenced by many factors in their lives; their habits, their tastes, their wealth, etc).
Value is also not related to price. When people buy something, it's because they value it more than the amount of money they're giving for it, so the price of any product that sells is always lower than the value people see in it. And so prices are not determined based on how much people value things. (And obviously, there also free products that people still don't buy into, because they don't value it enough, or they value something else more.)
Anything can be quantified if you try hard enough. Yes, some things will be more subjective than others, but everything can be quantified.
@@SmallSpoonBrigade That's not true. Not everything can be quantified, and I'm fairly positive that value is one of them. But I'm all open to suggestions on how you'd be able to measure value. It's much like trying to measure how much beauty a person sees in something, or how much someone loves someone else.
@@skaruts Measured relative to the volume of water it displaces when submerged in a tub maintained at just above freezing temperature. You collect that excess water, mix it with a fermented mash of wheat, barley, or other grain, boil it in a large still, capturing the vapors in a distillation tube, where it is infused with dried juniper and other botanicals, then age the distillate in cedar barrels for one year. Mix with 4oz fresh ginger beer and muddled mint and drink 3 servings of 8oz within one hour. Then you take a standard breathalyzer test, and THAT quantifies the value added by your software product, as a float between 0.00 and 1.00.
Y’all need to watch Carmack’s appearance on Joe Rogan next
Rogan said fewer words than any JRE episode I’ve seen, lol. He just sat back as Carmack laid out his genius for hours
I feel like Lex was asking about being a better coder but he answered about being a better businessman.
The point is that becoming a better coder means creating more user value relative to effort, not necessarily using a sexier design pattern or framework.
2:28 is his point
The reason that he's giving this answer is that he oversaw Id Software rise from its inception as a small start up to a multi million dollar powerhouse- which benefited directly from his work.
Yup, i feel like he wasnt listening to Lex's questions
there's a difference between being a coder and being a programmer, a great coder will make flawless code with no failures, a great progammer will bring value to its program; most people want to be great coders but they are not good programmers, it goes deeper and beyond, in the end, people is going to use ur code, and its better for them to enjoy the experience, great programmer = great coder + great bussinessman
People pay for other people to solve their problems.
This man is on point, measure yourself by your creative output by working on the right thing, do not work for vanity.
The creator of the Ford car is the best sample. Designing a building cars for people to own and use. There are trade offs on perfection when you keep user experience at the front. 😊
All interviewees in the these channel gave me hope that I can accomplish my goals ( especially the advise part )
He answered this in a business sense, I believe what makes a good programmer is someone who knows what their code compiles down to. There’s so much wasted resources because todays code is so inefficient, mainly because we have the technology that doesn’t require it. But just imagine if all programmers programmed with a confined size limit constraint in place. You wouldn’t need the next gen cpu or gpu to run programs.
you could also argue that most programs are impermanent enough and mutable enough that worrying so much about resource usage doesn't make sense, given the increase in computing power we've continued to see. Moore's Law isn't dead, it's just moving horizontally instead of vertically, and we have to think about problems in a different way :)
I regularly work with ultra optimized code.
The only trouble is, it was designed for machines that don't exist anymore for architectures that are wildly different than what we have today. We are talking machines that had 4 kilobytes of memory at best and half that was taken by the OS/compiler during runtime. What you get is ultra optimization for memory usage, code that is hard to read, code that is hard to modify.
We use less than 32 megabytes of memory for computing huge problems - on multi-socket Xeon blades with hundreds of gigabytes of memory... Totally CPU and I/O bound. On today's machines, these programs run like dog shit specifically because they were ultra optimized.
The level of optimization you want just isn't sustainable long term and leads to anti-optimization plus maintainability headaches.
Write dumb code. If performance is a problem, profile your code, optimize the one or two functions that are taking the biggest hit or tweak that big core data structure you are using. But don't try to optimize every single line.
@@AlexanderNecheff I get what you’re saying and I agree. i wasn’t meaning ultra optimization, I realize that isn’t likely and is more work than what is gained. I was more or less talking about the simple things, like if the compiler you’re using isn’t optimized right, a while loop will outperform a for loop, if you’re checking more than 2 conditions a switch statement will outperform an if else statement. Some algorithms are faster than others etc.
That doesn’t make you a good programmer at all. It’s important to know and understand the fundamentals of computer architecture but it’s not something to always keep top of mind. Computers are really freaking fast, and premature optimization is a legitimate issue.
@@hameed Premature optimization is time management, its spending way too much optimizing the wrong part of code that isn’t the bottleneck and/or worrying about your code scaling before you product has even been proven to be valuable. So if you’re optimizing the wrong area of code then my point still stands and a good programming needs to know what it compiles to, to know what area needs optimized; and if you’re worrying about scaling before you know you’re product will sale well then you’re just ambitious.
John Carmack is one reason I am an engineer....I have been following him for decades and he has grown so much.. I do think he is one of the best programmers on the planet and one of the top minds in computer science. Remember he has no formal education he learned this all by himself. He is up there with Elon Musk, Bill Gates, Steve Jobs, Steve Woznaik, and Jeff Bezos as one of the great innovators of his generation. If he worked on fusion reactors I think he would be one of the ones to figure it out and turn that theory into a reality. He will be working on AI because he sees the potential and he knows AI will be a big part of our future. Things like cancer and Hiv can be solved with AI.
It pains me when I see people comparing Bill Gates, Elon Musk, Steve Jobs and Jeff Bezos with true genius engineers like Steve Wozniak or John Carmack. The former are great businessmen, which are also needed for sure, but they are not innovators.
@@alefratat4018can always count on someone like you being here when a comment shows 1 reply! just can't hold it in can you 😂😂
@@alefratat4018 Kind of. Gates actually wrote software and had the ideas, and pretty much single-handedly caused the PC revolution. Steve Jobs didn't code, but he understood the user more than any programmer ever has, beyond anything even Carmack is capable of. I genuinely hate Elon Musk, but the dude IS undeniably at genius level intelligence (technical stuff only, he's a dumbass when it comes to everything else). Don't know enough about Bezos, but I'd argue the others are definitely at Carmack's tier or higher.
What a wonderfully PM-y perspective! Very customer-focused!
Yep -- make it easy for users, not an ego trip for the developers.
4:14
Lex needs to learn a bit about UX.
Lex still out there sounding like he needs a cup of coffee
everyone must be like me!
This advice makes sense for a product manager or leadership , but not for a software engineer who doesn’t dictate what they work on next.
Eh, "teach what you know." And for now, he's in the position of captaining a large vessel where tasks have to be delegated effectively
@@slomnim yes, but thats not a programmer. he completely changed the question he was asked
Amazing video. John Carmack is undeniably a genius.
"Great things in business are never done by one person; they're done by a team of people." - Steve Jobs
Plz excuse my stupidity but i have to get this right, concerning the first question:
If i wrote the ugliest and most stupid code ever but my final product works and the end user find it useful than that means I'm a good programer???
Carmack should be VR Dictator at Meta, he would cut through the bs and bureaucracy there with their culture and make it even better. It would also make them an enormous amount of money.
Honestly I think he was very reserved in this interview not to spill his thoughts on VR. I have a VR headset and it is an amazing piece of tech, but after the WOW factor fades you will find that it is not worth the headache(seriously). There is a market for VR but that market is not the general public. Military, Nasa, and Medical are the places where it will do the best. Gaming will always have a few % of players, but it will not be a successful as it needs to be to make money from the general public. I hope I am wrong, but I think JC sees the issues and he is moving on to AI..
@@johnjay6370 As a Oculus Quest 1 user, the real bottleneck is the the weight of the device. This will be solved in the next iteration and most likely in the new high end headset from Meta launching next year.
I do believe mixed reality headsets will ultimately win out over VR initially but as more and more people look to escape from their reality, when the VR headset can be worn comfortably for hours and not short 30 minute sessions as is the case now for the most part the adoption will sky rocket.
@@unbornG4 I still don't think it will be that successful but you never know. I think 3d tv and VR suffer from the same issues. I got a 3d TV like 10 years ago and there were some movies on it that were amazing, but after a while everyone wanted to just watch the movies without the 3d because of headaches and nausea. Even at the movies we hardly see any 3d movies anymore, it is just not worth it. I don't think the VR tech will overcome the physical effects of image 3D *nausea and headache* . Also as a parent I would hate it if my kids were wearing the headset all day and avoiding us. I like it when the kids come over and we all play Mortal Kombat passing the controller if you lose.....
@@jss672006 Guardian/ passthrough works perfectly well on Oculus. A lot less of what you're describing happening in VR these days unless the idea is to go viral breaking your flatscreen
I don't know if he could. Most of the projects that made him famous were from relatively small teams. I get the feeling that VR at Meta is a much larger enterprise.
he sounds more like a business guy. i think he completely side stepped the topic of interpreting user feedback
I kinda' felt that too. Misinterpretation of data is (dangerous...?) bad as well. However, I think data scientists are supposed to know how to fight that - to _not_ be fooled by statistics, so maybe it really isn't somethnig to worry about...?
Good answer for how to be a great product designer. Bad answer for how to be a great programmer.
even for a product designer, it's not that good
Thank you. I keep thinking the same thing. His point applies to the product owner, product manager, basically the higher level visionary guiding the direction of a project. He had super valid and important points for leading a successful software company or product, but they do not answer the question of what makes a great programmer.
I'm so glad that I share my POV for software development approach with him
I think Meta needs a whole new bible of values.
Needed this
most of this applies to great products in general also
Meta employees can't handle a boss that makes desicive judgments, no wonder they're failing.
I feel like VR would have boomed already ... Apple has the right idea by making their headsets lighter, see through ... meta's approach to full immersion scares normal costumers . And yeah they got half the words pop on Meta, but a lot of double accounts , old / privated accounts too. But who knows ? Not me
Create things that have a good impact on the world 🌎
This answer seems detached from reality. He's talking about product decisions. Most programmers are not in the position of making product decisions. These are made by product managers. The job of the programmer is to implement the product decision, and that's what's within their scope to optimise. This answer said nothing useful about how to do that.
I basically agree, however Carmack is a pretty indie guy working either at the top of a company, or totally on his own, so he has this business perspective too. Maybe too much business perspective in his answer but i can understand and get something useful out of it.
Notice they are called users, not customers… let’s call them what they are… products
Only two industries call their customers users: Drugs and Technology.
Happy birthday Lex!!!...💖🌵☘😊😋🌲🌻I'm wondering...Is August 14th or 15th your birthday?
Your first smile and personal achievement is when you print 'Hello World'
Did he ever answer the question?
Build tools that you use every day to create something more advanced.
I think Carmack is so good at programming that he forgets what it feels like to struggle with it lol
some people never do struggle with it
Finding out that he started working for facebook was like hearing that Mr. Rogers joined Al-Qaeda
Leibniz, Von Neumann, Dijkstra, Carmack. He's right up there, and he's alive and in front of our eyes :)))
A tasp (wireheading) is not necessarily a good thing. Even if your user is smiling and believes you are delivering 'value', are you really? Displacing things they would otherwise be doing? Again not necessarily a good thing. Also somewhat naive in that corporate optimization functions are rarely in line with those of an individual's.
John carmack is the g
ay.
g-
amer
Imagine working for Facebook and talking about being a "servant to the user."
[Title] How to be a great programmer?
[Answer] Be the boss' son?
Yeah more power to people who enjoy it, but I just finished a 200hr boot camp and this stuff is just SO not for me😅 Glad we have folks who can stick with it, though.
Very brave of you to say that. I think because of the money in the field there are a lot of people trying to make themselves like something they do not really enjoy and even if they get hired they will not be happy.
Wanna recommend the bootcamp to me?
@@deanwilliams433 Isn’t this most fields though? It’s very rarely people like or working or their jobs in general. CS pay is just a plus and extra incentive
@@user-kf3vu8ud7s I have to disagree. High percentage of people that are very good in their field like the work. That's been my observation working as a developer that also worked closely creating software that helps other professionals. All the great ones love it and mediocre to poor ones don't update their skill set and are just looking to coast by.
I am just an intern programmer but I disagree with his take on programming. For me, a good programmer is not someone who thinks how an user wants a product to be. A great programmer is someone who can do anything he likes with code as his weapon and is really passionate about his work. He is open to new technology and is able to look at the bigger picture and find innovative ideas about how he can provide value to the world.
I will be a programmer pretty soon
By yourself or a certification on your wall saying so?
LORD CARMACK
It's not in a culture of FB... True. Those guys cannot build a decent product. I might be biased, but it all falls into the same pattern: WhatsApp, Oculus, Insta,.... Buy good company, ruin, repeat.
Yep, Carmack is holy right about that stuff, cause you need a pay to attention to resolve a real problems of business no of this piece of speaking shit in big tech company with your team members about: "wow, what is the class name we would give him today?"
Brrrr, my body is shaking by thinking this shiiiiiiit
i could imagine john cringing being called the best programmer
This video is about how to be a great entrepreneur. It has nothing to do with programming.
lex has never heard of a customer survey?
Bing a developer is the most boring thing a human being can do
Sorry if you have always worked at boring projects.
interesting
He is right, but meta aims for nothing of he says.
Good thing he just quit meta
People not following user value
People not providing value
He just talks too much.
I am just starting and I get in a lot of trouble cos I dont take time to do code great for my coworkers but just focus on the product...if my code is sh1t but the app is great I am happy, i mean we get paid for that, not to make code beautifull, everyone tells me that cos I work on small proyects and in time I will understand...so that is my strugle 🤣 I am like totally the opposite to what the current is... js code for me is not simple, cos I dont know how things work, I always strugled with high level languages and absolutly loved low levels one cos of that
Step 1: Have a brain
Step 2: Be good at math
aight, I'm out
foobar
This dude has this lizard person vibe
Coding is probably the most frustrating, most boring thing I've ever done. I hate it.
Coding is boring if you have no attachment to what you're creating, but creating something new out of nothing is exciting.
it is the opposite for me. I freaking love coding. I mean sure, I do sometimes get bored at work. there are certain tasks that I find tedious and boring. but overall, I just freaking love coding, man
@@TheGothGaming keep us updated
And that's OK. Not everybody needs to be a programmer. For me it's exhilarating to be able to bend a computer to my will 😈
when the work you build on top of and the work you have to continue is done right, then it's neither boring or frustrating. but of course you first need to be comfortable with code to a basic degree
How about, great programmers listen and understand about what’s been asked. Fail.
F it ... 3rd !!! 😬👍🏻
Second
First
Seems like a great guy and very smart. Too bad he works for the devil
Am I the only one thinking it is absurde that he talks about creating value for the user and making the world a better place, while working for Meta, a company that arguably makes people's lifes worse and the world a worse place? It's as if he has completely lost track of the big picture.
These guys are so lazy.
read something in .... do something with it ... write it out it doesn't matter which "language you use it's all the same. of all the languages used "the narrative" is the most difficult ... the narrative is the programming language for people ... the bible is the oldest narrative. The bible ... the book of lies.
Carmack is a snake oil salesman. VR? AI? GPU? How many technical mumbo jumbo can he fit in one sentence?
Did you just call the one man who made the biggest graphical leaps of what PCs can render a "snake oil salesman"?
I ain't even mad, because that's just funny! 😂
🤣🤣