i like how youtube keeps reminding me of my lack of talents. Edit: to everyone in the comment sections. Don't compare yourself to anyone. You can't really compare yourself to Terence Tao who learnt math at age 2.
I'm 11 and I am the lead software engineer at Apple, Google and Microsoft. I am also at the forefront of sub 1nm semiconductor research with Galium Nitride/Carbon based transistors.
That's pretty cool! Personally I am 7 and have perfected the Art of machine learning and found a way to use certain frequencies of Electromagnetic radiation from the Sun to obtain information and create real consciousness for my Self made Robot that I created from spare parts of my broken coffee machine.
@@zoregamolenkamp2154 That is incredible. Would you be interested in an executive position at a new startup funded by Elon Musk perchance? It pays roughly 12.6 Billion USD per annum (after taxes). It's not much but it's probably a little more than you're earning at the moment. You will report directly to Mr Musk an myself.
@@rayhaanomar1200 Sorry I'll have to decline because I am doing this just as a hobby. Increase from 11 Billion to 12.6 Billion isn't going to cut it. I might contact you when I turn 10 and start my project for Multi dimensional time travel
@@zoregamolenkamp2154 Hey there, I'm 6 and a half. I was the head of NASA a few years back, I'm working on an inter-dimensional teleporter at the moment, hit me up if you're interested. How does splitting the profits 50/50 sound? Would it be better for you to wait a few years so you don't have to work on two projects at once? That electromagnetic converter sounds real interesting, and I wouldn't want to disturb your workflow. Contact me.
@@Mugistan yeah other 3 year olds should really buck up their ideas. If they can't even do basic kernel dev, they're destined for lifelong unemployment. Or a career at Microsoft apparently
@@not_ever Aye, but the bad thing is today 3 years old are less smart than before Making it harder on them because they don't know what is a keyboard or memory
Or a parent or older brother who wants to make the child seem like a prodigy, so when he is older has things to show that will make most people's mind blow. From my experience, such projects are rarely made alone by such a young person. Reminds me of media pushing the narrative of science genius kids who after doing a 2 week internship in a lab make a "revolutionary" discovery. Those just give publicity to the labs and allows them to get more grants. Nobody will make a breakthrough in 2 weeks labwork, let alone a schoolkid. They are given projects that were planned beforehand.
@@maythesciencebewithyou In many cases, yes, but every once in a while there are Child Prodigies! Take, for example, Darcie Lynne Farmer from America's Got Talent. She won in 2017 and came back for The Champions show in 2019 and took 2nd overall. She is completely self-taught and is amazing at what she does for her age. Not only can she sing, but the talent it takes to be a good ventriloquist is a challenge in itself, and she is also funny and quirky on top of it. When she came back the second time and sang Opera through one of her puppets, that actually impressed me. Yes, this is music and not "programming", but if she can achieve that I'm sure there are many children out there that have the capabilities of doing things you would deem impossible for their age! So is it hard to believe that a 12 or 13-year-old could do something like this? No!
@@skilz8098 that's a natural talent, not something that would be considered "genius" as she just happened to have good vocal cords. Programming requires a lot of time, focus, energy, etc. There certainly are child prodigies but it's much rarer than most think, think Mozart (IQ of 170) this person is either lying or exaggerating his age (he could be 15-17).
@@5thfloor584 That was my overall intent, to show that many types of talent can and does show up in young people, not just a natural talent, but also an intellectual one.
@@robbgray833 he is wrong *because* his suggested improvement adds a performance hit. Here's the optimal: `class C {public: C(std::string s): s_(std::move(s)) {}};` This is zero copies if the constructor is called with an rvalue. One copy-construct if called with an lvalue. His suggestion: `class C{public: C(const std::string& s): s_(s){}};` Performs at least one copy always. If you will always keep a copy of the argument, then you should have the copy happen in the call itself, since for rvalues that copy will become a move.
This is a great example of "there's always someone better than you" - in a nutshell, it's pointless to think you're the best at something, always strive to learn.
The thing is that we have only take his word for it. I'm not saying that there aren't any kid geniuses. However, I take stuff like that with a grain of salt. It could be a grown man pretending to be a child. Or a child that got alot of help from his older brother or parent. Or most of the code is copied from some place, something many "programmers" are guilty of.
13:57 Not a big deal, but since you were commenting on it any way: Since char is in the 0-255 range it would be more lookup-performant to just have an array Character Characters[256]. Or better, since printable characters are in the 32-126 range, you could have an array of size 94, and offset by 32 when indexing into it. This is of course assuming you don't start doing unicode stuff, where you may want to either have multiple ranges, or some hash map (that ideally is optimized for this purpose, not just a general std::map). In general, if something is indexed by an integer and the used keys are tightly packed, just use an array instead of a map (wrap it in a user class with error-checking methods if you are uncomfortable with a plain array).
char is not always 0-255, it's compiler dependant because the C standard for the most part only specifies it has to support the values from 0 to 127. It's better to use uint8_t (defined as unsigned char) for such a thing. The range of a signed char is [-128, 127] The range of an unsigned char is [0, 255] char can be either signed or unsigned.
This was a blast! What do you guys think of this new series? Don't forget that the first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/thecherno10201
If you are interested in doing Vulkan and need a library, I would be happy to hear your feedback about liblava. It is still in the preview and there is a lack of documentation, but with the tutorial and demos you can get along, I think. Stay healthy!
I just wanted to mention that I remember following your Java game programming tutorials as a kid. You 100% changed my life by giving me such a great introduction to programming. I'm now pursuing an undergraduate computer science degree and will be interning at Google for the second time next summer! Seriously thank you for all of the quality videos you've produced over the years. I'm so glad that you're still making content too.
If you are struggling with pointers..then you shouldn't be into programming or in to computer in general at all..why waste your whole youth doing something that you dreaded..and frustrated you..every day for the rest of your working lives...
@@faulyf His issue with unsigned int isn't the "unsigned" part, it's the "int" part. unsigned int can be any size (with a couple constraints), while uint32_t will always be 32 bits.
In C++ unsigned int and uint32_t... first unsigned itself means its values range from [0, max]. So if you do something like this: unsigned int i = -1; std::cout
beginner programmer: int intermediate programmer: unsigned int professional programmer: uint32_t expert programmer: int_fast32_t master programmer: int
18:06 std::vector::at is not returning a const ref because the member function itself is not const. The difference between operator[] and 'at' is just that 'at' does bounds checking and throws an exception. Also noticed this is plain old C++98, no -std=c++ flag.
In Cherno's solution you can also see exact line and file in which the call fails. You just need to set a breakpoint in the callback function and look at the stack trace in your IDe / debugger. It's much more useful than pure macro that gives you "just" line and file.
Bruh, good work I'm 14 and still learning how to make a 3d game engine with CMake and Vulkan with the game engine series. Honestly, I don't feel any bit of jealousy, I'm just seriously impressed, cause this proves that making something complicated like a 2d game engine, is possible at any age. Although my regret is learning web development for 2 years and I'm relatively stupid at and I really don't like web dev. Best of luck dude, I wish I could skip school for more of the Chernos content.
Web dev is a good skill to have dude! There's a ton of JavaScript jobs out there. You're just 14 though lol so I doubt you have to worry about that for several more years. No rush dude! Just be continuously learning!!
@@paradigmshift2223 thanks for your opinion! I agree that javascript is a good skill to learn especially for a frontend web dev, but I mostly focus on backend web frameworks with other languages. I mostly regard javascript as a slow scripting language that is good at what it's not supposed to do ( node.js and etc. ), but right now I am really focusing on pursuing game engine developement because I find it less confusing than the javascript documentation. Although I rarely play games nowadays. sorry for my english
Well, it's actually awesome to see that no all kids are spoiled by bad content and an overflow of shit that we see online nowadays. And it's great that he actually has access to stuff as well. The first time I showed interest in learning about game programming I was 8, and I didn't even had a computer in that time, because it insanely expensive in Brazil. I finally could get my first computer only when I was 22 and already working/playing as a professional musician in a band. So after that, I finally made my way to Computer Science, 10 years had passed and here I am, working for EA Vancouver :) I hope this kid never stops and never gets bored with coding, cause' we need more kids like that. I'm already teaching my 7yo some coding stuff.
I started programming when I was 13 with c++, i moved to c when I got an Arduino and I've finally settled on c# for unity Game dev and some python. This guys code is way better than anything 13 year old me could have done and I'm 17 at the moment. Every time I watch the chernos videos I get tempted to go back to c++
How do you like c# ? I'm learning c++ and re firing some long used memory from c standard that I used many many years ago.. im primarily interested in making games and made some in c in the 80s .. im 42 now..
@@wazaDev nice, I'm looking to do about the same though im working on c++ presently I don't work summers and am planning on "school" for c# with unity. I like it's ability for cross platform programming, I feel like tablet games for example are under utilized market as majority are pay to win, and I believe that's what makes any game crap. Nobody wants to pay for a game continuously.. got a expensive gaming desktop and just ordered a gaming laptop that I am dedicating to unity programming, possiblly unreal engine ( one of the reasons for c++ ) any advice for an older guy regarding c# and unity ? I also did some arduino stuff during covid... mostly rc box "tanks" for playing with the cat .
@@MrDmadnessthat's awesome, personally I just find it easier to learn something new if I have something I want to make with it. So maybe a really simple game In unity to start with or even a game Jam once you get used to it. I don't have a ton of experience myself but that's what worked for me
@@wazaDev I also work best like that, to me the roots are important but also pretty boring, but I was giddy as a schoolgirl to make the snake game from scratch and have it work the other day in cpp.. this was my 1st attempt at it ( I've been studying a lot ) that's why I'm sitting here with a brand new Asus gaming laptop with AMD Radeon™ RX 6800M Graphics w/ 12GB GDDR6, im going all in on programming, and c# and unity are my next step I figure after cpp. :)
NO! The best thing about you is your ability to learn and dedicate yourself to learning a skill and a project. Use what you learn here, your discipline and apply it to your future, if it's game development or not. You're awesome my dude! Keep it up!
I would recommend this kid to give himself a break from huge projects like a game engine. I can see that he wanted to take something from RUclips tutorials and make it on his own, but he is missing a lot of fundamentals that are essential to be able to do something half decent at best. He has a lot of time to learn, there is no need to rush, so he should stick to basic concepts. Great video by the way, would love to see more.
4 года назад+3
I would definitely agree. The ability to instantly see so many examples online of what you want to do, or get almost instant answers from places like stack overflow, can quickly get in the way of thinking and learning for yourself - a critical requirement to develop...and develop a love for the art (where those code virtuosos reside).
No you are wrong you can never learn anything without making mistakes if he want to start coding an Os, he should try that too and he shouldn't worry about failing , but my suggestion is the only thing you may store in back of your head is that your project can always be somewhat optimize better. if any beginner especially people around 13 are reading this, please make sure to divide your project into small goals and try finishing each goal through whatever means even if your engine have to even run at 30fps, don't worry about it. But you should Try searching for optimized libraries / optimized coding practices for your project too, and if you can't find em just implement it yourself and don't worry about implementing it horribly its okay.
@@GohersWay Yes you can. You can learn a lot without making any mistakes at all.
4 года назад+4
@@GohersWay "the only thing you may store in back of your head is that your project can always be somewhat optimize better." --> That statement (used all too frequently unfortunately) is a self-perpetuating obstruction to proper learning. Learn correctly first and you'll never need to optimise.
When I was 13, I made a program in pascal, it was drawing random lines in random color with one line end in the screen center and another one random as well. And that's it. Full game engine, even is simple, that's incredible.
Well, to be honest, you can find much more source code online also that you can copy and use in your code. But yeah, I used to do similar things when I was 13.
When I was 13 I literally was only learning HTML with notepad lol. I started coding by scripting a sa-mp gamemode with Pawn when I was 14 lmao, and it wasn't great, it's bloated as hell now that I look back at it.
This one video actually pointed out so many things i could improve in my own code. Great series and I'm looking forward for more of this amzing content. Keep up the great work :)
Im really excited about these series Yan! For me these are very, very helpful. Maybe a slight suggestion would be if the person has the code uploaded in github and is willing to share it maybe leave a link in the description so we can check it out in even more detail, as a imagine future episodes will contain even harder and larger code with more intricate and complex design solutions. Cheers!
The first time I dabbled with code was in high school when I was doing Pokemon ROM hacks. I was using advanceMap which focused on more on the visual aspect than coding from scratch. Now though, I am pretty decent at Java and Javascript. Maybe I should take another crack at it and see what my newfound knowledge will help me.
10:30 I strongly disagree. In this case where a std::string is passed as a constructor argument and used to initialize a member of the class, it should be passed by value and moved in the initializer list to the member string. If someone were to pass a const character array (string literal), it would first have to construct a std::string, then do an indirection and copy that string referred by the parameter of the constructor into the member variable. If it instead is passed by value, it only needs to be constructed directly and then moved, even without any (relatively expensive actually) indirection. You should almost never have to pass strings by const reference since c++17. Use std::string_view if you need a non-owned, read-only reference to a string, and pass it by value. Otherwise, pass a std::string by value (most of the time).
@Łukasz Wiśniewski forwarding is not always better: since it's a template you screw with overloading and all the other issues, and if you're going to consume the value (e.g. store it or mutate and return) then you're going to have to do two moves: into the parameter then out, rather than one. Taking by value is actually ok now.
@Łukasz Wiśniewski honestly I've forgotten too much about this to honestly defend the two moves statement, but from what I remember you end up constructing the string to pass it in, then moving from that argument in both cases, but the by value let's the compiler see the move from/destroy in the same translation unit. Forwarding was introduced for generically wrapping other functions, where you don't want to introduce an extra copy for each of the generic *arguments* you get, not for optimising the body. If you want to do that, maybe use something like "constructable_from"?
When I was 13 (1994) I was programming too, mostly in turbo pascal:) I actually made a multimedia lexicon with 3d animations for specific topics. It was a school project and i put everything + my soul into it, but because the teachers didn't understand how difficult it was they decided to give me a D. Bummer.. Later at the age of 15 i went into C++ and as a danish citizen my biggest hero was Bjarne Stoustrup.
Nice to see you promoting such a promising young person! Its great to see such potential. Young people these days have such amazing access to quality information that just wasn't there in the past. It makes me wonder just what they'll achieve in the future with such a strong start.
This series looks like it'll be so great! One episode in and I've already learnt a ton. This sort of criticism of hobby projects is very hard to come by, so even if it isn't my code there's still a ton of awesome take-aways that I'd never find in most programming tutorials.
Much respect to the young coder!!! Great Work!!! Some things like call by reference and call by value are not understood right now. 18:00 but this is all okay. You are 13 years old! Boy be happy, that you are such a great programmer for your age!
Damn, I started coding at ten and then spent like 3 years doing hello world stuff in pretty much every language under the sun. I am 14 now and have finally settled down into unity and some java stuff. This is amazing.
I've been watching your videos since 2016 and you still use the word "essentially" in almost every sentence, lol I just thought that was funny... P.S. Your videos taught me a lot about programming and development and I usually don't comment on videos but I genuinely just wanted to say thank you for everything that you've done, without your videos I definitely not be where I am now :)
I started web development when I was 10 (or 11), and now that I'm 14 I'm making my own 2d game engine for my first indie game with the Haxe programming language.
I wrote something pretty similar a couple years ago and just 5 minutes in i noticed so much stuff i did not... optimally :D Great series, keep up the good work!
The coping strings part. OMG. I feel anxiety. I made code that copies all the images into memory every-time you reset the window. It starts at 3 mb then 20mb then 200 mb ....
They can be intimidating and maybe even make someone vulnerable to their insecurities. Not saying it's not good to celebrate brilliance but typically projects like this aren't tackled by 13-year olds for example, so that can be intimidating
@@bitmammothOG nah, I actually got pretty far and even got up to 114 stars on github, but then I lost interest and thought that I would be a waste of time because I would have to spend an enormous amount of time to make the compiler better, and the final product would still won't be that good
@@sensiblewheels well you can make animations .. you can link buttons to slides and many things that you can hack for making a presentation look like a game
11:37: Can't agree. Class variables are more important than class methods imho. Should stand at the beginning of the class. Regarding all the other points I'm with you, though.
Global is not really the big bad wolf, as many OOP programmers like to make it out... especially in a game / game engine. It's a big project, with many systems that need to interact. You cannot separate them all completely. He could expand his code into a handmade-esque structure, as presented by Casey Muratori in his HandmadeHero series, and be better off.
I feel so sad and disappointed by myself, because I am 13 too, but the hardest C++ project that I have done is just a non graphical poker game, and when I finished it I was super proud of myself, but now I feel absolutely demolished!!!
I think it doesn't matter at all... Keep going and don't be discouraged by someone who's potentially better than you! I think most of your age aren't even capable of creating this game :) I startet coding at somewhere 13ish too and it's hard but also worth it and at some point you will get better quickly
Remember that this kid is the exception to the rule, not the rule. If you're constantly comparing yourself to others, you'll just feel bad about yourself in the end. Be proud of what you achieve!
I've always wondered why you use 'vendor' instead of 'libs' or 'libraries'? I'm just from Russia and for me, for example, the word 'libraries' is clearer.
@@richardlighthouse5328 In most cases, if you use your own additional code, it is already included in your project as the basis and does not go to the libraries. For example, I can't push my math library into libraries or vendor because it's supposed to be part of a game engine or a project.
When I was 13 I made a 3D engine following the graphics programming dark book. I didn't solve the pesky float raster problem that made some little one pixels holes thou.
Hey, I started programming when I was 11 I was able to make games when I was 13, like that guy, I know programming. Now I'm 15. I know most of the people get amazed when they see somebody younger can make games and softwares, but it's common nowadays. I think I know a kid in my country, 9 year old kid developed a good video calling software. This things are actually common in this age of technologies, where kids like me can learn computer from childhood.
I'm 16 and do a lot of stuff with computers and programming but literally no one else in my entire 200-people year seems to share the interest (well - one exception). Out of curiosity where are you from? I'm in the UK, so it might just be something local
@@superidra4461 I'm from Bangladesh, but I'm not a Bangali, I'm a Chakma. I really want to know what things can you do with your computer? Graphics art? I can model 3D graphics things but don't know how to join one and another 2D texture and making them look realistic looking 2D. But I'm interested with 2D graphics. Do you have facebook ID? I want to be friend with you on there.
Actually got a small comment on passing std::string by value. Pass by value and then move it into the member variable is a clang styleguide. In most cases, it is about the same as const ref and then copy
This was a great review Yan. When I was 13 i was studying how the gameboy advance was built and worked. Never knew how to code yet until I was 27 back in 2017 with basic java. Now I'm learning basic C++ with Unreal and a bit of Unity.
When I was 13, I used to wonder how the refrigerator's lights went off automatically.
lol
What is refrigerator ?
Everybody knows there is somebody inside the refrigerator that shuts the light out, that's a common sense stuff.
Muzol Byte it was a joke....
@@ZooperPlayz r/wooosh
i like how youtube keeps reminding me of my lack of talents.
Edit: to everyone in the comment sections. Don't compare yourself to anyone. You can't really compare yourself to Terence Tao who learnt math at age 2.
It reminds me of my lack of wealth in my family
Same.
I am 12 and I am still a noob at programming.
@@jaminithesecond i didn't even knew programming was a thing at 12. Fuk my life
@@leonidkhamadakov7778 I started programming when I was 8 it was horrible and I didnt really create anything but I knew basic things
At his age I was trying to balance the switch between on and off.
ASHWIN KARTHIK SHANKARA RAMAN onff
edit: sory i was tired when i made this comment, onff is not a good way to describe it
BOOL: tralse
So you've been experimenting with quantum mechanics at such a young age? ... wew
I'm 29 and I still try this sometimes.
@@MrNucleosome This can cause a fire
Now that's something everyone does
I'm 11 and I am the lead software engineer at Apple, Google and Microsoft. I am also at the forefront of sub 1nm semiconductor research with Galium Nitride/Carbon based transistors.
That's pretty cool! Personally I am 7 and have perfected the Art of machine learning and found a way to use certain frequencies of Electromagnetic radiation from the Sun to obtain information and create real consciousness for my Self made Robot that I created from spare parts of my broken coffee machine.
@@zoregamolenkamp2154 That is incredible. Would you be interested in an executive position at a new startup funded by Elon Musk perchance? It pays roughly 12.6 Billion USD per annum (after taxes). It's not much but it's probably a little more than you're earning at the moment. You will report directly to Mr Musk an myself.
@@rayhaanomar1200 Sorry I'll have to decline because I am doing this just as a hobby. Increase from 11 Billion to 12.6 Billion isn't going to cut it.
I might contact you when I turn 10 and start my project for Multi dimensional time travel
I was born yesterday and made it to godhood
@@zoregamolenkamp2154 Hey there, I'm 6 and a half. I was the head of NASA a few years back, I'm working on an inter-dimensional teleporter at the moment, hit me up if you're interested. How does splitting the profits 50/50 sound?
Would it be better for you to wait a few years so you don't have to work on two projects at once? That electromagnetic converter sounds real interesting, and I wouldn't want to disturb your workflow.
Contact me.
I am 3 just wrote my first operating system kernal
Congratulations, because if it works, then it is probably better than the latest windows update.
@@_sevelin It doesnt even have to work to be better.
This isn't so hard in fact all you need is to know some of the ports and some logic and you can make a kernel
The hard stuffs are drivers and GUI
@@Mugistan yeah other 3 year olds should really buck up their ideas. If they can't even do basic kernel dev, they're destined for lifelong unemployment. Or a career at Microsoft apparently
@@not_ever Aye, but the bad thing is today 3 years old are less smart than before Making it harder on them because they don't know what is a keyboard or memory
This kid has better naming convention as my "senior" devs with 12 years of experience.
because he is 13 not 12
@@ali51717 Bruh..
@@ali51717 make sense
@@ali51717 seems legit
Than*
Plot twist - the developer is a grown ass man but pretending to be 13 so that he can be judged less.
Or a parent or older brother who wants to make the child seem like a prodigy, so when he is older has things to show that will make most people's mind blow.
From my experience, such projects are rarely made alone by such a young person.
Reminds me of media pushing the narrative of science genius kids who after doing a 2 week internship in a lab make a "revolutionary" discovery. Those just give publicity to the labs and allows them to get more grants. Nobody will make a breakthrough in 2 weeks labwork, let alone a schoolkid. They are given projects that were planned beforehand.
This is probably the truth
@@maythesciencebewithyou In many cases, yes, but every once in a while there are Child Prodigies! Take, for example, Darcie Lynne Farmer from America's Got Talent. She won in 2017 and came back for The Champions show in 2019 and took 2nd overall. She is completely self-taught and is amazing at what she does for her age. Not only can she sing, but the talent it takes to be a good ventriloquist is a challenge in itself, and she is also funny and quirky on top of it. When she came back the second time and sang Opera through one of her puppets, that actually impressed me. Yes, this is music and not "programming", but if she can achieve that I'm sure there are many children out there that have the capabilities of doing things you would deem impossible for their age! So is it hard to believe that a 12 or 13-year-old could do something like this? No!
@@skilz8098 that's a natural talent, not something that would be considered "genius" as she just happened to have good vocal cords. Programming requires a lot of time, focus, energy, etc. There certainly are child prodigies but it's much rarer than most think, think Mozart (IQ of 170) this person is either lying or exaggerating his age (he could be 15-17).
@@5thfloor584 That was my overall intent, to show that many types of talent can and does show up in young people, not just a natural talent, but also an intellectual one.
13years old ? Well I was building some "Hello World" batch programs and trying to delete system32 folder and calling it virus back then😂
Everyone starts with that :))
the same thing but i was 12
Also opening the optical drive haha
@@theairaccumulator7144 kinda true, but never deleted Sys32 though, i did run "rm -rf /" when was very new to linux
When im been 13 im trying to reinstall windows and playing Skywars in Minecraft :D)
Welcome back to the first episode? Sounds like an infinite loop bug to me.
Circular list. I got here from the final episode
@@bzboii Hell, That's an involuntarly loop i wanna get in
We must be in the twilight zone
Lol
13 year old - Try to copy string
Cherno - bruh.
lmao
10:31 for anyone lazy ;)
He's wrong, though. Since C++11 this should be by value.
@@thomashabetsse He's not wrong, but it's not a performance hit.
@@robbgray833 he is wrong *because* his suggested improvement adds a performance hit.
Here's the optimal: `class C {public: C(std::string s): s_(std::move(s)) {}};`
This is zero copies if the constructor is called with an rvalue. One copy-construct if called with an lvalue.
His suggestion: `class C{public: C(const std::string& s): s_(s){}};`
Performs at least one copy always.
If you will always keep a copy of the argument, then you should have the copy happen in the call itself, since for rvalues that copy will become a move.
This is a great example of "there's always someone better than you" - in a nutshell, it's pointless to think you're the best at something, always strive to learn.
The thing is that we have only take his word for it. I'm not saying that there aren't any kid geniuses. However, I take stuff like that with a grain of salt. It could be a grown man pretending to be a child. Or a child that got alot of help from his older brother or parent. Or most of the code is copied from some place, something many "programmers" are guilty of.
How olympian. It is not about being the best. Get that out of your head. It is impairing. Oh and by the way, i am the best.
13:57 Not a big deal, but since you were commenting on it any way: Since char is in the 0-255 range it would be more lookup-performant to just have an array Character Characters[256]. Or better, since printable characters are in the 32-126 range, you could have an array of size 94, and offset by 32 when indexing into it. This is of course assuming you don't start doing unicode stuff, where you may want to either have multiple ranges, or some hash map (that ideally is optimized for this purpose, not just a general std::map). In general, if something is indexed by an integer and the used keys are tightly packed, just use an array instead of a map (wrap it in a user class with error-checking methods if you are uncomfortable with a plain array).
@@ic6406 You don't have to search in the array. You just use the (integer value of the) char as the index. It's an O(1) lookup.
@@ic6406 The elements have to be allocated if you put them in a map too.
char is not always 0-255, it's compiler dependant because the C standard for the most part only specifies it has to support the values from 0 to 127.
It's better to use uint8_t (defined as unsigned char) for such a thing.
The range of a signed char is [-128, 127]
The range of an unsigned char is [0, 255]
char can be either signed or unsigned.
@@monochromeart7311 Doesn't matter if you only support ascii. And if you support more than ascii, it is more complicated any way.
@@TheMaginor well yeah ascii is only 7 bits representing the range [0,127], but I'm just correcting your claim about the range of a char.
This was a blast! What do you guys think of this new series? Don't forget that the first 1000 people to use the link will get a free trial of Skillshare Premium Membership: skl.sh/thecherno10201
When i was 13 i was naming vars butt. 13 years later im still naming vars butt.
what
Vars = variables
@dspsx you are definitely not a programmer
this is why you never got accepted at job interviews, Gary.
If you are interested in doing Vulkan and need a library, I would be happy to hear your feedback about liblava.
It is still in the preview and there is a lack of documentation, but with the tutorial and demos you can get along, I think.
Stay healthy!
“Welcome back to the first episode” Think about that for a minute.
welcome back to my time of birth
25:12 with headphones on I thought there was a mosquito flying near my ear!
I just wanted to mention that I remember following your Java game programming tutorials as a kid. You 100% changed my life by giving me such a great introduction to programming. I'm now pursuing an undergraduate computer science degree and will be interning at Google for the second time next summer! Seriously thank you for all of the quality videos you've produced over the years. I'm so glad that you're still making content too.
i was eating sand when i was 13 y.o!,
i am still doing it from time to time;)
currently i am 20
Does it taste good?
@@psun256 try it yourself 😜
@@kristyii8008 Will try later today
забайтил иностранца жрать песок, а ты хорош)
@@psun256 yeah bro gotta get some of that iron and calcium in your body
13 year old - Trying to use pointers
Cherno - I am about to end this mans whole career.
If you are struggling with pointers..then you shouldn't be into programming or in to computer in general at all..why waste your whole youth doing something that you dreaded..and frustrated you..every day for the rest of your working lives...
@@syndromeX wow wtf man. chill
@@syndromeX You can still program, just not with the lower level languages that require you to manage your own memory.
@@syndromeX woah man chill im 13 and i finally understand pointers and stuff after a huge frustration c h i l l o u t
thats why you use java.
jk I love c++
9:55 - Try not to use unsigned int
15:48 - uses unsigned int in hazel
If the value is never be negative, why not?? You have to understand what is unsigned mean dude
@@muhamadhafiz25 unsigned int is almost identical to uint32_t, but it's more clear what size it is. uint is also unsigned
@@faulyf His issue with unsigned int isn't the "unsigned" part, it's the "int" part. unsigned int can be any size (with a couple constraints), while uint32_t will always be 32 bits.
In C++ unsigned int and uint32_t... first unsigned itself means its values range from [0, max]. So if you do something like this:
unsigned int i = -1;
std::cout
I am blown away if this guy is truly 13. Even his e-mail in the beginning is perfect without any typos. I was expecting "here is my codez lulz!"
huh why do most people think 13 year olds talk like idiots, basically any 13 year old I used to know talked like a normal person
beginner programmer: int
intermediate programmer: unsigned int
professional programmer: uint32_t
expert programmer: int_fast32_t
master programmer: int
lazy programmer: long long
Who wants to deal with integers smaller than 64-bit anyway these days
Over Engineering Programmer:
#include
#include
#include
#include
template
MySpecialIntegerClass {
/* ... */
};
Yeah, that's it.
18:06 std::vector::at is not returning a const ref because the member function itself is not const. The difference between operator[] and 'at' is just that 'at' does bounds checking and throws an exception. Also noticed this is plain old C++98, no -std=c++ flag.
25:11 jesus that scared me. thought the biggest mosquito was going to get me for a second.
The macro gives the exact line and file in which the call fails which helps debugging, which the reason I use them with vulkan.
In Cherno's solution you can also see exact line and file in which the call fails. You just need to set a breakpoint in the callback function and look at the stack trace in your IDe / debugger. It's much more useful than pure macro that gives you "just" line and file.
Bruh, good work I'm 14 and still learning how to make a 3d game engine with CMake and Vulkan with the game engine series. Honestly, I don't feel any bit of jealousy, I'm just seriously impressed, cause this proves that making something complicated like a 2d game engine, is possible at any age. Although my regret is learning web development for 2 years and I'm relatively stupid at and I really don't like web dev. Best of luck dude, I wish I could skip school for more of the Chernos content.
Web dev is a good skill to have dude! There's a ton of JavaScript jobs out there. You're just 14 though lol so I doubt you have to worry about that for several more years. No rush dude! Just be continuously learning!!
@@paradigmshift2223 thanks for your opinion! I agree that javascript is a good skill to learn especially for a frontend web dev, but I mostly focus on backend web frameworks with other languages. I mostly regard javascript as a slow scripting language that is good at what it's not supposed to do ( node.js and etc. ), but right now I am really focusing on pursuing game engine developement because I find it less confusing than the javascript documentation. Although I rarely play games nowadays. sorry for my english
When I was 13, I watched Spongebob and bought the idea that a whale could be related to a crab.
Well, it's actually awesome to see that no all kids are spoiled by bad content and an overflow of shit that we see online nowadays.
And it's great that he actually has access to stuff as well. The first time I showed interest in learning about game programming I was 8, and I didn't even had a computer in that time, because it insanely expensive in Brazil. I finally could get my first computer only when I was 22 and already working/playing as a professional musician in a band. So after that, I finally made my way to Computer Science, 10 years had passed and here I am, working for EA Vancouver :)
I hope this kid never stops and never gets bored with coding, cause' we need more kids like that. I'm already teaching my 7yo some coding stuff.
Awesome code review video. I did enjoy getting through the code. I came here to have a break and found the background music really interesting.
I'm here to forget that I failed the thermodynamics exam for the third time...
All I remember from thermodynamics are the words isobaric, isochoric, isothermal and adiabatic and how confusing they were
Thermodynamics is a relatively easy topic if you practice enough. But that can be said for literally anything 😅
I am sorry. What is the issue?
I started programming when I was 13 with c++, i moved to c when I got an Arduino and I've finally settled on c# for unity Game dev and some python. This guys code is way better than anything 13 year old me could have done and I'm 17 at the moment.
Every time I watch the chernos videos I get tempted to go back to c++
How do you like c# ? I'm learning c++ and re firing some long used memory from c standard that I used many many years ago.. im primarily interested in making games and made some in c in the 80s .. im 42 now..
@@MrDmadness c# is really awesome especially with unity for game development. I like it a lot
@@wazaDev nice, I'm looking to do about the same though im working on c++ presently I don't work summers and am planning on "school" for c# with unity. I like it's ability for cross platform programming, I feel like tablet games for example are under utilized market as majority are pay to win, and I believe that's what makes any game crap. Nobody wants to pay for a game continuously.. got a expensive gaming desktop and just ordered a gaming laptop that I am dedicating to unity programming, possiblly unreal engine ( one of the reasons for c++ ) any advice for an older guy regarding c# and unity ? I also did some arduino stuff during covid... mostly rc box "tanks" for playing with the cat .
@@MrDmadnessthat's awesome, personally I just find it easier to learn something new if I have something I want to make with it. So maybe a really simple game In unity to start with or even a game Jam once you get used to it. I don't have a ton of experience myself but that's what worked for me
@@wazaDev I also work best like that, to me the roots are important but also pretty boring, but I was giddy as a schoolgirl to make the snake game from scratch and have it work the other day in cpp.. this was my 1st attempt at it ( I've been studying a lot ) that's why I'm sitting here with a brand new Asus gaming laptop with AMD Radeon™ RX 6800M Graphics w/ 12GB GDDR6, im going all in on programming, and c# and unity are my next step I figure after cpp. :)
I've been programming since i was 11 too, and it is the most fun thing so far.
Bravo for starting this early, but this is hardly best thing about you. You're definitely more than just date of first written program.
@@mateuszabramek7015 you're right
Are you the one who wrote that code, if you are, the many congrats to you!!
@@ycombinator765 yes i did
NO! The best thing about you is your ability to learn and dedicate yourself to learning a skill and a project. Use what you learn here, your discipline and apply it to your future, if it's game development or not. You're awesome my dude! Keep it up!
Thank you for reviewing my code ..... i really appreciate it
Ah yes, people my age are making game engines while I am still trying to understand matrix multiplication ;-;
guess thats what school don't teach you
@@ayoubkoolgangster1048 it's funny cause I'm taking a discrete math class in hs and we are learning about matrices
@@jodazague8333 good luck man
@@jodazague8333 I miss those days .
Not that hard man, try it
I really appreciate what you're doing, I'm 14 ( I turn 15 this month) and I get a handful of criticism instead of like encouragement or solid advice
I would recommend this kid to give himself a break from huge projects like a game engine. I can see that he wanted to take something from RUclips tutorials and make it on his own, but he is missing a lot of fundamentals that are essential to be able to do something half decent at best. He has a lot of time to learn, there is no need to rush, so he should stick to basic concepts.
Great video by the way, would love to see more.
I would definitely agree. The ability to instantly see so many examples online of what you want to do, or get almost instant answers from places like stack overflow, can quickly get in the way of thinking and learning for yourself - a critical requirement to develop...and develop a love for the art (where those code virtuosos reside).
No you are wrong you can never learn anything without making mistakes if he want to start coding an Os, he should try that too and he shouldn't worry about failing , but my suggestion is the only thing you may store in back of your head is that your project can always be somewhat optimize better. if any beginner especially people around 13 are reading this, please make sure to divide your project into small goals and try finishing each goal through whatever means even if your engine have to even run at 30fps, don't worry about it. But you should Try searching for optimized libraries / optimized coding practices for your project too, and if you can't find em just implement it yourself and don't worry about implementing it horribly its okay.
@@GohersWay Yes you can. You can learn a lot without making any mistakes at all.
@@GohersWay "the only thing you may store in back of your head is that your project can always be somewhat optimize better."
--> That statement (used all too frequently unfortunately) is a self-perpetuating obstruction to proper learning. Learn correctly first and you'll never need to optimise.
@@belland_dog8235 yay you probably came out of your mom womb walking too, I totally agree with your highness and you are the one true Bellend.
When I was 13, I made a program in pascal, it was drawing random lines in random color with one line end in the screen center and another one random as well. And that's it. Full game engine, even is simple, that's incredible.
Well, to be honest, you can find much more source code online also that you can copy and use in your code. But yeah, I used to do similar things when I was 13.
When I was 13 I literally was only learning HTML with notepad lol. I started coding by scripting a sa-mp gamemode with Pawn when I was 14 lmao, and it wasn't great, it's bloated as hell now that I look back at it.
i was learning html when i was 7
I really like this series, I can already see how you code review some more advanced C++ engineers and how much I can learn from that. Keep it up!
I would definitely watch a series where you roast people's code
🤣
Yes
Oh my God yes.
That should be every code review!
Oh yeah
This one video actually pointed out so many things i could improve in my own code. Great series and I'm looking forward for more of this amzing content. Keep up the great work :)
Meanwhile I have been moving from engine to engine and framework to framework from the age of 13yr till now.
Please keep the series going the code reviews are extremely helpful to learn
Next .... Yandere Dev's code
literarily imagining Yan being Yandere xD
@@ilyboc no
@@SankoshSaha_01 ok ._.
public boolean evenNumber(int number) {
if (number == 1) {
return false;
} else if (number == 2) {
return true;
} else if (number == 3) {
return false;
}
...
}
string GetName(type WeaponType)
{
if (WeaponType.Katana == "katana")
{
return "katana"
}
}
Im really excited about these series Yan! For me these are very, very helpful. Maybe a slight suggestion would be if the person has the code uploaded in github and is willing to share it maybe leave a link in the description so we can check it out in even more detail, as a imagine future episodes will contain even harder and larger code with more intricate and complex design solutions. Cheers!
wait few days i will upload my code and give you a link.
And i want video of code review on RUclips or downloadable link of video.
Thanks and wait!
The first time I dabbled with code was in high school when I was doing Pokemon ROM hacks. I was using advanceMap which focused on more on the visual aspect than coding from scratch.
Now though, I am pretty decent at Java and Javascript. Maybe I should take another crack at it and see what my newfound knowledge will help me.
10:30 I strongly disagree. In this case where a std::string is passed as a constructor argument and used to initialize a member of the class, it should be passed by value and moved in the initializer list to the member string.
If someone were to pass a const character array (string literal), it would first have to construct a std::string, then do an indirection and copy that string referred by the parameter of the constructor into the member variable. If it instead is passed by value, it only needs to be constructed directly and then moved, even without any (relatively expensive actually) indirection.
You should almost never have to pass strings by const reference since c++17. Use std::string_view if you need a non-owned, read-only reference to a string, and pass it by value. Otherwise, pass a std::string by value (most of the time).
very useful insight. thanks
@Łukasz Wiśniewski forwarding is not always better: since it's a template you screw with overloading and all the other issues, and if you're going to consume the value (e.g. store it or mutate and return) then you're going to have to do two moves: into the parameter then out, rather than one. Taking by value is actually ok now.
@Łukasz Wiśniewski honestly I've forgotten too much about this to honestly defend the two moves statement, but from what I remember you end up constructing the string to pass it in, then moving from that argument in both cases, but the by value let's the compiler see the move from/destroy in the same translation unit.
Forwarding was introduced for generically wrapping other functions, where you don't want to introduce an extra copy for each of the generic *arguments* you get, not for optimising the body. If you want to do that, maybe use something like "constructable_from"?
When I was 13, I made a small text adventure in QBasic in school. :D
those were the days
I'm going to all of these out in order and I really hope the intro/outro bgm stays jazzy!
The Textrendering code is actually just copied from the learnopengl website.
i've done this too: can confirm haha
He’s 13, cut him some slack.
Yea, I have copied this code myself so many times that now I recognize it immediately, lol
well, that's exactly what professional programmers do as well
Wounderful Boy no you shouldn’t just cut and paste, at least write it out yourself
When I was 13 (1994) I was programming too, mostly in turbo pascal:) I actually made a multimedia lexicon with 3d animations for specific topics. It was a school project and i put everything + my soul into it, but because the teachers didn't understand how difficult it was they decided to give me a D. Bummer.. Later at the age of 15 i went into C++ and as a danish citizen my biggest hero was Bjarne Stoustrup.
When I Was 13, I've tried to do the Kamehameha in the pool.
n i tried to be a Power Ranger by wearing on those pieces that hung on their backs.
I'm over 30 and I still try Kamehameha in the pool
Nice to see you promoting such a promising young person! Its great to see such potential. Young people these days have such amazing access to quality information that just wasn't there in the past. It makes me wonder just what they'll achieve in the future with such a strong start.
The memory management bugs are exactly what I would've expected from a 13 y/o
Yeah but thats what you can expect at university too
@@mr.fantasee And then later in your day to day software engineering job. Memory management is a bitch, regardless of your skill level :/
@@UnicycleSoul I'm not on that level yet... But I can imagine :/
This series looks like it'll be so great! One episode in and I've already learnt a ton. This sort of criticism of hobby projects is very hard to come by, so even if it isn't my code there's still a ton of awesome take-aways that I'd never find in most programming tutorials.
I starred coding with 20 at College. did some basic coding at highschool too but yeah i had no idea what i was doing
Already looking forward to the next code review, very helpful!
At 13 I was pranking my teachers at school with some python. I did fake hacking apps. That just were terminal based, text things.
You're inspiring young people to code Cherno which can only be a good.thing.
Keep up the great work.
That jazz at the end...❤️
Тож оценил, аж перестал слышать что он говорит
@@arima_dj есть такое
Much respect to the young coder!!! Great Work!!! Some things like call by reference and call by value are not understood right now. 18:00 but this is all okay. You are 13 years old! Boy be happy, that you are such a great programmer for your age!
And I'm just teaching my 13-year-old son what a file folder is 🤦
xd
Some children slow in start but became extremely fast later years of 18,19
Damn, I started coding at ten and then spent like 3 years doing hello world stuff in pretty much every language under the sun. I am 14 now and have finally settled down into unity and some java stuff. This is amazing.
20:50 - This font rendering is from learnopengl website.
He knows how to copy and paste? He's ready for industry
I've been watching your videos since 2016 and you still use the word "essentially" in almost every sentence, lol I just thought that was funny... P.S. Your videos taught me a lot about programming and development and I usually don't comment on videos but I genuinely just wanted to say thank you for everything that you've done, without your videos I definitely not be where I am now :)
This is going to be a good series.
didn't expect to see you here 👀
This is a great new channel. Really helpful, and nicely paced.
Rather than email, make a subreddit, for code review, and the best or most interesting code gets more upvotes and you review it every week or so..
I don't know if there already is a subreddit about you, but this might be a good idea..😀
I started web development when I was 10 (or 11), and now that I'm 14 I'm making my own 2d game engine for my first indie game with the Haxe programming language.
Cherno: I am not a coding god.
Also Cherno: proceeds to speak the language of the gods.
I wrote something pretty similar a couple years ago and just 5 minutes in i noticed so much stuff i did not... optimally :D
Great series, keep up the good work!
I was 15yo when I started building my engine. Now I am 18yo. I am not sure if I should send him email.
You should send it, so he can roast the hell out of it.
Please do. We can all learn from his comments.
I'm just impressed that you've been working on the same project for 3 years! I can barely get myself to care about a project for a few weeks.
@@dibbidydoo4318 and then learn from it
@@WhatIsMyPorpoise yes that too.
Learnt a lot from this. Would love to see more code reviews in the future.
The coping strings part. OMG. I feel anxiety. I made code that copies all the images into memory every-time you reset the window. It starts at 3 mb then 20mb then 200 mb ....
mom pick me up im scared
When I was 13 I had no computer. I used to code in BASIC on a Z80 Amstrad at a classmate's home. My first 2D program was a sinusoid.
Videos like this ___ year old does ___ make me sad :(
why ?
They can be intimidating and maybe even make someone vulnerable to their insecurities.
Not saying it's not good to celebrate brilliance but typically projects like this aren't tackled by 13-year olds for example, so that can be intimidating
How old were you when you killed those hookers?
When I was 13, I struggled to script lil applets in AutoIt and thought my AlarmClock.exe was amazing.
Good memories
At 13 I was writing my own programming language..
I never finished it tho
oof
You mean you thought about doing it once? lol
@@bitmammothOG nah, I actually got pretty far and even got up to 114 stars on github, but then I lost interest and thought that I would be a waste of time because I would have to spend an enormous amount of time to make the compiler better, and the final product would still won't be that good
@@BinkiklouGaminglol do you still have it on github ? Link pls
Great series, great format! Would love to see more of this :)
At the age of 13, I used to make games inside powerpoint xD
Powerpoint can do that? 😁
@@sensiblewheels well you can make animations .. you can link buttons to slides and many things that you can hack for making a presentation look like a game
@@ilyboc Ah! Nice one.
If only I was introduced to coding at early age :(
18:01 that is the most amazing bug spot I have ever seen in my life...
Not a programming god?
ImPosSiBLe!
I started programming when I was 11 and built my first modern opengl game engine at 17.
11:37: Can't agree. Class variables are more important than class methods imho. Should stand at the beginning of the class. Regarding all the other points I'm with you, though.
Lol, cant even understand the beginning to start creating that at all. It is outstanding a 13 year old little one was able to do that. Respect!
Global is not really the big bad wolf, as many OOP programmers like to make it out... especially in a game / game engine. It's a big project, with many systems that need to interact. You cannot separate them all completely. He could expand his code into a handmade-esque structure, as presented by Casey Muratori in his HandmadeHero series, and be better off.
Agreed
I feel so sad and disappointed by myself, because I am 13 too, but the hardest C++ project that I have done is just a non graphical poker game, and when I finished it I was super proud of myself, but now I feel absolutely demolished!!!
I think it doesn't matter at all... Keep going and don't be discouraged by someone who's potentially better than you! I think most of your age aren't even capable of creating this game :) I startet coding at somewhere 13ish too and it's hard but also worth it and at some point you will get better quickly
baum_data Thanks man I appreciate it!
Remember that this kid is the exception to the rule, not the rule. If you're constantly comparing yourself to others, you'll just feel bad about yourself in the end. Be proud of what you achieve!
I've always wondered why you use 'vendor' instead of 'libs' or 'libraries'? I'm just from Russia and for me, for example, the word 'libraries' is clearer.
3rd party source code.
maybe cause you can make your own libraries, whereas vendor tells you more that it's not something you or your team made, thus you can't control it
@@richardlighthouse5328 Well libraries and frameworks are already third party code.
@@richardlighthouse5328 In most cases, if you use your own additional code, it is already included in your project as the basis and does not go to the libraries. For example, I can't push my math library into libraries or vendor because it's supposed to be part of a game engine or a project.
@@KennyTutorials libraries can be 1st party code.
This is great! We also sent in our engine for you to see, really looking forward to what happens in this series in the future
When I was 13 I made a 3D engine following the graphics programming dark book. I didn't solve the pesky float raster problem that made some little one pixels holes thou.
pasa el libro
Hey, I started programming when I was 11 I was able to make games when I was 13, like that guy, I know programming. Now I'm 15. I know most of the people get amazed when they see somebody younger can make games and softwares, but it's common nowadays. I think I know a kid in my country, 9 year old kid developed a good video calling software. This things are actually common in this age of technologies, where kids like me can learn computer from childhood.
I'm 16 and do a lot of stuff with computers and programming but literally no one else in my entire 200-people year seems to share the interest (well - one exception). Out of curiosity where are you from? I'm in the UK, so it might just be something local
@@superidra4461 I'm from Bangladesh, but I'm not a Bangali, I'm a Chakma. I really want to know what things can you do with your computer? Graphics art? I can model 3D graphics things but don't know how to join one and another 2D texture and making them look realistic looking 2D. But I'm interested with 2D graphics.
Do you have facebook ID? I want to be friend with you on there.
Now I feel stupid...
Actually got a small comment on passing std::string by value. Pass by value and then move it into the member variable is a clang styleguide. In most cases, it is about the same as const ref and then copy
python users:
I could have done this in 20 lines
:D :D :D :D :D
That is why we love python
Make a wrapper and do it in one line
@xOr Java is cool. You can make apps with android studio.
@xOr What !!!! I just started (6 months a go) my Java training.
This was a great review Yan. When I was 13 i was studying how the gameboy advance was built and worked. Never knew how to code yet until I was 27 back in 2017 with basic java. Now I'm learning basic C++ with Unreal and a bit of Unity.
You should prob be running these in a VM.
As always, solid cybersec advice from Bob Saget.
The guy is great. will go far! I also started coding at the age of 12 at the zx Spectrum) Good luck!
My integrated graphicscard is faster than my dedicated, Acer Aspire 5 ^^
I was attempting to write a simple calculator in qbasic when I was 13 - good job young man keep your passion up!