Thanks for watching, hope this helped! ❤ Don’t forget that Brilliant has that 30 day free trial so you can try everything they have to offer-free-for a full 30 days! Visit brilliant.org/TheCherno - the first 200 of you will get 20% off Brilliant’s annual premium subscription!
How much code do you think you write in the average week compared to the average programmer who is currently spending 40+ hours per week writing code with current technology and is up to date with the latest coding practices?
Dear @TheCherno Thank you for your videos i was able to learn a lot can you please in the future make a series on CMake and Testing in C++ (Google Test, Google Mock)?
You could have also added: if you're on linux - you can record using RR, which gives you the added benefit of during debugging be able to reverse-continue and reverse-step. Fantastic tool, not only for finding hard non-deterministic bugs, but also for navigating a code base.
Thank you for all your videos inspiring me a lot. If possible, topics cover multithreads, Cuda-GPU, or how to design architecture system or when to use object or pointer to object for a data member in class wil be really appreciated. Thanksssssssss!
Well, it's nice if you have a powerful IDE that can do all of this. But I started my programming journey with Arduino. In version 1 of the Arduino IDE you couldn't even jump to the definition of a function. And small microcontrollers usually don't have any debug features built in at all. Sending prints over serial is the closest you get. But at least the majority of Arduino code is C/C++ and not assembler...
@@theRPGmaster Not really. Since the main feature of a microcontroller is the ability to directly talk to the hardware, you would need special libraries to emulate the behaviour of the peripherals in your controller as well as any connected devices that the program is trying to talk to. Otherwise you won't even make it past the initialisation phase.
This is amazing. When you went into the unreal engine code, I too was like "How on earth do you read this, where do you even start from". But watching you break it down, good Lord! Now I feel a bit more motivated.
As my boss once said: you don't know what your program really does until you've stepped through it with a debugger. With MSVC, you can compile your code with /JMC flag, enable "Just my code" in the VS options - Debugger, and then F11 will not step into standard library functions, only into actual code of interest.
@@ziggyharding5207 Step 3: realize chat gpt is still pretty much in its infancy and already doing some really cool shit Step 4: realize chat gpt is indeed great, just that people are hyping it more than what it is. They're great for writing and reading code, just don't expect it to understand an actual project. It can write tests, just don't expect it to write decent tests for an actual project. Doesn't mean it's not great Step 5: realize that even years from now it's not going to replace programmers, at all, but it will help us improve our workflow. I find it funny how people so easily hype up chat gpt, but also how quickly they dismiss it and call "actually not great". Calling Chat GPT not great to me is just so incredibly short-sighted, but that's just my 2 cents
Thank you. Schools might teach fresh programmers about "readability" and "maintainability" when writing codes. This shows that, in fact, the "debuggability" might even be more important in real life projects. Especially when things get really big and complex.
Yeah, I hear alot about "clean" code and SOLID principles, but I've never seen a large (>1 million lines) project that use clean or SOLID be debuggable or readable. I've seen inline ASM in projects from 20 years ago that are more readable than some of the insane class hierarchies that arise.
Readability is still important to understand the logic written. But no matter how good your code is written, if it has 1 million line of code there's no way to know where to read without the debugger.
Reading code is a skill that is learned through practice. I've been doing it for more than 30 years in C++. I also wrote a lot of FORTRAN code before learning C and C++. Code doesn't need to be hard to read. In fact if it is hard to read, it probably should be discarded, or refactored. Don't make excuses for the STL. It is hard to read, for reasons I don't fully grasp. Don't accept hard to read code as being normal. If you have to maintain hard to read code. Make it easier to read.
@marcusgutierrez honestly pick up code by bits, get a simple c++ textbook get the basics(2 months) then from there object oriented programming(1 months) then data structures (2 months), then from you will have to venture into the dark and learn that you have a bigger world ahead and should get on a project that allows you learn more
Step debugging is a great idea but reading code can potentially involve a lot of prep. The more complex its interaction is with other code or the more dependent it is on timing (i.e., step debugging introduces bugs that otherwise wouldn't occur if the program were allowed to run at normal speed). You may have to mock classes or basically apply test-writing techniques to it. You may have to write an application just to exercise the code and output what you want to observe.
I'm a relatively new engineer that graduated from a good school and got into a big game company thanks to that experience and I've been using a combination of your videos, several books (such as game engine architecture and modern c++) to "catch up" and learn how to work on a large software project.
YES! so much this. I worked on a debugger in an IDE back in the day, and I can't tell you how many customers we watched struggling to find issues even in their _own_ code while completely ignoring the debugger that was available to them. And to this day you can see very experienced and talented developers on youtube wasting so much time adding a few lines of printf code here, build, run, nope, need to add some more over here, churn churn. And now the debuggers are even more powerful.
You’re incredible! Thank you! And this is simple enough for anyone with code with breakpoints or something with a profiler, whether C++, Python, C#, even GDScript in Godot has ways of putting in breakpoints like this. I’m sure it varies based on the language how deep the call stack will give you, but it’s an excellent start. No wonder you have learned so much lol. You’re a treasure when it comes to C++, engine creating, and just programming in general! Thank you for all the time you put into all your stuff! I truly am gonna look into trying out Hazel but may wait until the next stable build to truly enjoy your new planned features 😊
Imagine starting out coding by trying to read through Unreal's codebase, sure fire way to put off any beginner. Great video though, this kind of stuff is so overlooked in most youtube videos.
I'm an absolute beginner programmer, but I want to be able to read code easier. I find with my own code, it can be difficult for me to get a sense for what's going on on both the macro and micro scale. A huge issue is probably that I'm not very experienced at breaking down the problem from the beginning in order to be able to create the right blocks of code or determine how it should run logically. I hope it gets a lot easier to visualize code on the fly with time and practice, cause when I have those moments of clarity while coding it's a fantastic feeling! Do you guys have any recommendations for the best way to practice?
Yan, listen. I owe you a bugfix at work now :D I was doing what I had always been doing for one particular quirk of the app where it just crashes when it can't find a certain 3rdparty lib, and you would usually just put the .dll files and a .jar file (don't ask me how an enterprise C++ app depends on a .jar, it's a long story) into a specific folder and it would work. And I was doing it the way I always do it, and it still crashed. Then I watched your video, thought "Well, why don't I try this out?". Ran the scenario in the VS debugger and it spits out "cannot find jvm.dll". Guess what, I put the path to the jvm dll into the PATH variable and it suddenly works now. I'm really annoyed at myself for not trying this out sooner :D Thanks man, you really saved me a few days of suffering just now :D
People like to call things by all kinds of different names. I tend to refer to () as either parentheses or individually as parens. ( left paren, ) right paren. For some reason a lot of people refer to {} as curly brackets, but the name I've always known them by is braces. { left brace, } right brace. It seems somewhat universal that people refer to [] as brackets, but I've seen some backwards people refer to them as braces. [ left bracket, ] right bracket. Anyone have any others?
What about doing an overview video on Visual Studio? (cause I think it has so many useful tools but not a lot of beginner friendly documentation/tutorials)
14:50 absolutely perfect timing, I'm here waiting for UE5 to compile to try fixing the physics bugs present in their physics engine myself (at least for some temporary fixes/workarounds because it is REALLY broken) and I always struggled with fully grasping how the engine worked and somehow never really considered using the debugger this extensively for this
can confirm, there are some ps2 games that work better than ue's physics... :(, trying to fix it by teleporting them or nudging other NPCs around you by the forward vector of your character is not a solution, it needs a more lower level solution.
oh and I REALLY hate it when actors get stuck in each other and thus can't move because the game thinks it's always colliding with something... it makes ue feel unfinished
Coming from a corporate Java project, I"m quite amazed how hard to read I find C++. The different ethos of small to no indentation, lack of curly braces and empty lines makes these already abstract and hard to grasp functions harder still to read through. I used to love C++ in college, but now I'm glad I went with Java. Loved the multi threaded debug stuff!
the C++ code presented here is.... very utilitarian - it makes me sad to see and read it as well. Coding style goes a long way to enhance readability - proper usage of indentation, braces for scoping (one-liner if statements are disgusting!), proper variable names ("L" is not acceptable.. "), are all very important in writing maintainable code in a team-effort development.
Im confused. with the third one. I can't find anything that says debug at the top of my vs code. Is there something that i need to have clicked on? or i need to have the program Pre compiled?
"mmm, slow down there, cowboy.. I'm gonna tell you when you can do the next thing.. and i'm going to watch you do it.. oh yeah, that's my good little program.. you listen to daddy"
Hey Cherno Thank you very much for the video it helped a lot, can you please tell whether you are planning to make complete course on Debugging or Design Patterns?
Basically: use the debugger. This advice doesn’t work everywhere. For example if you’re an ETL developer using SQL server and your dev and test environments are available to everyone so if you run something you don’t understand to see what happens you could potentially ruin the environment for everyone else on that day / week or however long your refresh times are
however there is no msvs in linux or mac, so sad. I only have a m1 mac, when I study object model, I used lldb, I was nervous to open the disassembly, i Found that was arm asm, which is different from the x86 asm. so sad
This may sound basic to some but this may be the most precious piece of advice to grow. It took me too many years to fully grasp. Read, debug, and validate with small experiment that you execute.
Actually just reading the code is not that bad. Especially away from a PC. You can then focus on on the algo and structure and not get tripped up on the PC user mistakes when you compulsive lying type. But you should try at some point. But separate concerns is a good thing
At 7:27 there is an equal sign with a slash through it instead of != (i is not equal to object.end()). I've never seen that in code before. How would you even type that?
Yeah Hi there Hi have a friend who is funny bad with dyslexia He always wants to be making making games games he is very Imagine if and creative Is there any gaming programmes where can put an honorary track Thank you
People skipping the Brilliant ad misses the actual secret. And even if they read this comment they will still not believe it, nor comprehend its importance. Unless they are already in the know.
I am always wondering on how programmer can make money to survive since I cannot see fair with what developer does and the companies salary.. I don't think also that any of world wide engineer is satisfied with his fucking salary
Debugging with breakpoints is a great way of really understanding what your code is doing. 👍🏻 In my experience it also helps having good Documentation (Classes, Functions Comments), which I tend to read when the debugger passes over the related lines of Code. That, + and the Values of the variables help me make the 'Click' in my head and understand all that's happening there. Great videos & channel 👍🏻
Your videos are enlightening and filled with innovative ideas, particularly those related to open-source projects for complex systems like Operating Systems or Software Defined Networks (SDN), such as ONOS and RYU. In the VoIP realm, this includes platforms like FreeSWITCH and Kamailio. My question centers around the best way to comprehend the underlying code in these sophisticated projects. Unlike simple C or Python code, these require installation and intricate configuration. How does one begin to understand and engage with such complexity? I'm specifically interested in this topic because I need to grasp some aspects of the freeSWITCH code in order to modify and customize it. As a junior programmer, I find the insights in your videos incredibly valuable and would appreciate any guidance you can offer on this subject.
😅 i printed out my code and others' code as well. It can help if you can pencil and paper in it, especially if it won't run unless you implemented it correctly in a main program. It`s also funny how you learn certain coding guidelines and how to write comments etc. at university. But nobody really reads code with you, because everything is trivial to them so it has to be trivial for you as well. As a beginner in a job with all the fancy things you know, do yourself a favor, and take an older colleague by side and read some code with him. He will show you what tools are used for what and why. Once you get the hang of coding, start messing around with everything when you can. If you have an architectural idea, refactor the code as you like, and make and break as many builds as you need. That really teaches you what works and what doesn`t.
Really awesome video man! Just so you know, you're one of the reasons I write C++ and use Visual Studio! Thanks again and if you're ever in the UK, I'd be happy to meet up! Cheers.
lol that last part I can relate to. We had a yearly camp when I was a kid, and I took a thick book to read with me called "How to learn C++ in 21 days." Ya, that was a fruitless endeavor.
Cherno, I've seen a few empty destructors in your classes. I haven't seen that they have defined move constructor and move assignment operators, meaning that they are disabled. Implicit moves happen way to often in the STL, which in your case will be pesimized to copies. Unless you know for sure your objects won't be copied or moved around, I think you should either: A) Define the move constructor and move assignment operator for every class you defined a destructor for. B) Do not define those empty destructors until you really need them (which will also reduce binary size).
It might sound weird but it made me interested in how to set up a debugger without VSC now. I don't mean basic debugging, I have that in VIM, but that visual representation of threads - man, I want that.
Does anybody knows the tool Cherno is using to draw on screen so seamlessly? Like on 8:28 Windows built-in stuff takes screenshots first and doesn't look like that precisely thanks in advance
Not quite only other peoples code but mainly knowing the language and being able to implement and design the software using design pattern and software paradigms...so studying the field really is the only way to know what you're doing and beeing able to optimize..things like red black tree structures..search algorithm..understanding big O notation and such are essential to write 'good code'.
Amazing btw what lens did you use at the beginning of the video and did you do anything special to achieve that “come in focus range and track focus” effect?
Thanks for watching, hope this helped! ❤
Don’t forget that Brilliant has that 30 day free trial so you can try everything they have to offer-free-for a full 30 days! Visit brilliant.org/TheCherno - the first 200 of you will get 20% off Brilliant’s annual premium subscription!
Can you do a video of your vscode configuration? Plug-ins you have and their non-default changes you have 🙏
How much code do you think you write in the average week compared to the average programmer who is currently spending 40+ hours per week writing code with current technology and is up to date with the latest coding practices?
Hey, you have 529,000 subs now)
Dear @TheCherno Thank you for your videos i was able to learn a lot can you please in the future make a series on CMake and Testing in C++ (Google Test, Google Mock)?
You could have also added: if you're on linux - you can record using RR, which gives you the added benefit of during debugging be able to reverse-continue and reverse-step. Fantastic tool, not only for finding hard non-deterministic bugs, but also for navigating a code base.
Feel free to make more videos about debugging! This is full of cool stuff that I honestly didn't know about. That F10 trick is especially cool.
Thank you for all your videos inspiring me a lot. If possible, topics cover multithreads, Cuda-GPU, or how to design architecture system or when to use object or pointer to object for a data member in class wil be really appreciated. Thanksssssssss!
The Cherno is like one those guys that chernos
Thanks, that's very useful! By the way, how to do that with mac?
Well, it's nice if you have a powerful IDE that can do all of this. But I started my programming journey with Arduino. In version 1 of the Arduino IDE you couldn't even jump to the definition of a function. And small microcontrollers usually don't have any debug features built in at all. Sending prints over serial is the closest you get. But at least the majority of Arduino code is C/C++ and not assembler...
Can't you run that code in a different IDE, on a separate machine first?
@@theRPGmaster Not really. Since the main feature of a microcontroller is the ability to directly talk to the hardware, you would need special libraries to emulate the behaviour of the peripherals in your controller as well as any connected devices that the program is trying to talk to. Otherwise you won't even make it past the initialisation phase.
2:00, is there a hole in your T-shirt?
4:06, hm... this editor has the non-equal math sign. What's the IDE name?
This is amazing. When you went into the unreal engine code, I too was like "How on earth do you read this, where do you even start from". But watching you break it down, good Lord!
Now I feel a bit more motivated.
yeah actually.
How did he get Unreal Engine source code? It's not open source, right? Is it the source code or a project code?
@@melihmete807 it's open source
@@dark_lord98 It is source available, not open source.
@@williamclapp9694 It is open source for people whi agree the licence. But its not a Free Software.
As my boss once said: you don't know what your program really does until you've stepped through it with a debugger. With MSVC, you can compile your code with /JMC flag, enable "Just my code" in the VS options - Debugger, and then F11 will not step into standard library functions, only into actual code of interest.
Great tip!
omg ty
it is the first time that i learned that there is such a option.
step 1: copy paste the code into gpt-4 and ask for a detailed explanation
No
Step 2: realise chat gpt is actually not great
@@ziggyharding5207 Step 3: realize chat gpt is still pretty much in its infancy and already doing some really cool shit
Step 4: realize chat gpt is indeed great, just that people are hyping it more than what it is. They're great for writing and reading code, just don't expect it to understand an actual project. It can write tests, just don't expect it to write decent tests for an actual project. Doesn't mean it's not great
Step 5: realize that even years from now it's not going to replace programmers, at all, but it will help us improve our workflow.
I find it funny how people so easily hype up chat gpt, but also how quickly they dismiss it and call "actually not great". Calling Chat GPT not great to me is just so incredibly short-sighted, but that's just my 2 cents
how would you copy paste a library that has 60k lines of code or more ?
I tried to use gpt-4 to get me to write type safe generics and it couldn’t do it properly
Analyze possible malware code. Just run it!
This sounds like a lot of fun hehe
Then it becomes a challenge: catch the malicious parts before they're able to run!
Use a VM?
Thank you. Schools might teach fresh programmers about "readability" and "maintainability" when writing codes. This shows that, in fact, the "debuggability" might even be more important in real life projects. Especially when things get really big and complex.
In my school they taught both traceability and debugging of code. Yet I learnt still new things here, so valuable lessons! :)
Yeah, I hear alot about "clean" code and SOLID principles, but I've never seen a large (>1 million lines) project that use clean or SOLID be debuggable or readable. I've seen inline ASM in projects from 20 years ago that are more readable than some of the insane class hierarchies that arise.
Readability is still important to understand the logic written. But no matter how good your code is written, if it has 1 million line of code there's no way to know where to read without the debugger.
Reading code is a skill that is learned through practice. I've been doing it for more than 30 years in C++. I also wrote a lot of FORTRAN code before learning C and C++. Code doesn't need to be hard to read. In fact if it is hard to read, it probably should be discarded, or refactored. Don't make excuses for the STL. It is hard to read, for reasons I don't fully grasp. Don't accept hard to read code as being normal. If you have to maintain hard to read code. Make it easier to read.
any books/resources you recommend that helped you understand c++ & understanding code?
@marcusgutierrez honestly pick up code by bits, get a simple c++ textbook get the basics(2 months) then from there object oriented programming(1 months) then data structures (2 months), then from you will have to venture into the dark and learn that you have a bigger world ahead and should get on a project that allows you learn more
i don't know why but i just love c++
Step debugging is a great idea but reading code can potentially involve a lot of prep. The more complex its interaction is with other code or the more dependent it is on timing (i.e., step debugging introduces bugs that otherwise wouldn't occur if the program were allowed to run at normal speed).
You may have to mock classes or basically apply test-writing techniques to it. You may have to write an application just to exercise the code and output what you want to observe.
I'm a relatively new engineer that graduated from a good school and got into a big game company thanks to that experience and I've been using a combination of your videos, several books (such as game engine architecture and modern c++) to "catch up" and learn how to work on a large software project.
YES! so much this. I worked on a debugger in an IDE back in the day, and I can't tell you how many customers we watched struggling to find issues even in their _own_ code while completely ignoring the debugger that was available to them. And to this day you can see very experienced and talented developers on youtube wasting so much time adding a few lines of printf code here, build, run, nope, need to add some more over here, churn churn. And now the debuggers are even more powerful.
You’re incredible! Thank you!
And this is simple enough for anyone with code with breakpoints or something with a profiler, whether C++, Python, C#, even GDScript in Godot has ways of putting in breakpoints like this.
I’m sure it varies based on the language how deep the call stack will give you, but it’s an excellent start.
No wonder you have learned so much lol. You’re a treasure when it comes to C++, engine creating, and just programming in general! Thank you for all the time you put into all your stuff!
I truly am gonna look into trying out Hazel but may wait until the next stable build to truly enjoy your new planned features 😊
Imagine starting out coding by trying to read through Unreal's codebase, sure fire way to put off any beginner. Great video though, this kind of stuff is so overlooked in most youtube videos.
15:05
> UE
> technical documentation
> ever existing, in any useable or useful state
LMAO, said Scorpion, LOL even.
I'm an absolute beginner programmer, but I want to be able to read code easier. I find with my own code, it can be difficult for me to get a sense for what's going on on both the macro and micro scale.
A huge issue is probably that I'm not very experienced at breaking down the problem from the beginning in order to be able to create the right blocks of code or determine how it should run logically.
I hope it gets a lot easier to visualize code on the fly with time and practice, cause when I have those moments of clarity while coding it's a fantastic feeling!
Do you guys have any recommendations for the best way to practice?
Yan, listen. I owe you a bugfix at work now :D I was doing what I had always been doing for one particular quirk of the app where it just crashes when it can't find a certain 3rdparty lib, and you would usually just put the .dll files and a .jar file (don't ask me how an enterprise C++ app depends on a .jar, it's a long story) into a specific folder and it would work. And I was doing it the way I always do it, and it still crashed. Then I watched your video, thought "Well, why don't I try this out?". Ran the scenario in the VS debugger and it spits out "cannot find jvm.dll". Guess what, I put the path to the jvm dll into the PATH variable and it suddenly works now. I'm really annoyed at myself for not trying this out sooner :D
Thanks man, you really saved me a few days of suffering just now :D
I subscribed for c++ series. These are the videos I stayed.
People like to call things by all kinds of different names. I tend to refer to () as either parentheses or individually as parens. ( left paren, ) right paren. For some reason a lot of people refer to {} as curly brackets, but the name I've always known them by is braces. { left brace, } right brace. It seems somewhat universal that people refer to [] as brackets, but I've seen some backwards people refer to them as braces. [ left bracket, ] right bracket. Anyone have any others?
What about doing an overview video on Visual Studio? (cause I think it has so many useful tools but not a lot of beginner friendly documentation/tutorials)
Dude you look like Pedro Pascal and Elon Musk mixed up
14:50 absolutely perfect timing, I'm here waiting for UE5 to compile to try fixing the physics bugs present in their physics engine myself (at least for some temporary fixes/workarounds because it is REALLY broken) and I always struggled with fully grasping how the engine worked and somehow never really considered using the debugger this extensively for this
Damn And im here absoluely shitting the bed when it comes to diving into Hazel code
can confirm, there are some ps2 games that work better than ue's physics... :(, trying to fix it by teleporting them or nudging other NPCs around you by the forward vector of your character is not a solution, it needs a more lower level solution.
oh and I REALLY hate it when actors get stuck in each other and thus can't move because the game thinks it's always colliding with something... it makes ue feel unfinished
Coming from a corporate Java project, I"m quite amazed how hard to read I find C++. The different ethos of small to no indentation, lack of curly braces and empty lines makes these already abstract and hard to grasp functions harder still to read through. I used to love C++ in college, but now I'm glad I went with Java.
Loved the multi threaded debug stuff!
the C++ code presented here is.... very utilitarian - it makes me sad to see and read it as well. Coding style goes a long way to enhance readability - proper usage of indentation, braces for scoping (one-liner if statements are disgusting!), proper variable names ("L" is not acceptable.. "), are all very important in writing maintainable code in a team-effort development.
its just formatting style its possible to write java like code.
Im confused. with the third one. I can't find anything that says debug at the top of my vs code. Is there something that i need to have clicked on? or i need to have the program Pre compiled?
You need to use Visual Studio, not Visual Studio Code. They’re different
"mmm, slow down there, cowboy.. I'm gonna tell you when you can do the next thing.. and i'm going to watch you do it.. oh yeah, that's my good little program.. you listen to daddy"
"No more access violations. You behave, or else I'll take another stick of your RAM away!"
it's coffee got me rolling on the floor
Hey Cherno Thank you very much for the video it helped a lot, can you please tell whether you are planning to make complete course on Debugging or Design Patterns?
Debug mode is my friend.
Basically: use the debugger.
This advice doesn’t work everywhere. For example if you’re an ETL developer using SQL server and your dev and test environments are available to everyone so if you run something you don’t understand to see what happens you could potentially ruin the environment for everyone else on that day / week or however long your refresh times are
however there is no msvs in linux or mac, so sad. I only have a m1 mac, when I study object model, I used lldb, I was nervous to open the disassembly, i Found that was arm asm, which is different from the x86 asm. so sad
This may sound basic to some but this may be the most precious piece of advice to grow. It took me too many years to fully grasp. Read, debug, and validate with small experiment that you execute.
Actually just reading the code is not that bad. Especially away from a PC. You can then focus on on the algo and structure and not get tripped up on the PC user mistakes when you compulsive lying type. But you should try at some point. But separate concerns is a good thing
At 7:27 there is an equal sign with a slash through it instead of != (i is not equal to object.end()). I've never seen that in code before. How would you even type that?
And immediately the first advice unusable, when you are dealing with complicated embedded system operating real machinery.
The frustration as a developer comes when the security team lock down environments so tight you can't even attach a debugger to see what's going on.
Yeah Hi there Hi have a friend who is funny bad with dyslexia
He always wants to be making making games games he is very Imagine if and creative
Is there any gaming programmes where can put an honorary track Thank you
People skipping the Brilliant ad misses the actual secret. And even if they read this comment they will still not believe it, nor comprehend its importance. Unless they are already in the know.
I am always wondering on how programmer can make money to survive since I cannot see fair with what developer does and the companies salary.. I don't think also that any of world wide engineer is satisfied with his fucking salary
The best way to read and understand code is to just code alot and recognize the patterns
Learn assembly
Did The Cherno just had unreal engine's code? How does it work? I mean... it's not open source, is it?
Omg i thought you just had to read it all... I could never get anywhere, this was a revelation.
i'm very confusing for method transform between different class.
What’s this operator in C++ =/= (can’t even do it with my keyboard)
I'm impressed that this video is not about chatgpt
Этому должны обучать на 1м курсе или даже в школе, и я не помню, чтобы такое было. Учат только тому как писать собственный код, к сожалению.
Coffee is the answer!
I completely agree😂
8:33 debug => Window => parallel stack
How did you become a developer? Please post a video and tell us about your journey.
tl;dr:
You don't. Just use debugger and look at the call stack.
Rule1 of debugging: Know your IDE
will tools like source insight, understand help
?
Debugging with breakpoints is a great way of really understanding what your code is doing. 👍🏻
In my experience it also helps having good Documentation (Classes, Functions Comments), which I tend to read when the debugger passes over the related lines of Code. That, + and the Values of the variables help me make the 'Click' in my head and understand all that's happening there.
Great videos & channel 👍🏻
Trying to transition to c setting up all the tools is a pain this is Micosoft visual studio right?
Now lets do that and call it dynamic malware analysis :D my head spun out
One of my biggest issue with a lot of code i find on github is: where tf is the main??
I just got my first job as a junior software engineer. This is really helpful, thanks as always for your great videos!
Your solution of code reading is out of your duranged mind.
I don't understand 95% of the things you are saying
Cherno has the best way of explaining things in such a way that I feel like i understand, imo
"its a Sunday kill me", is actually Friday :)
'i wanna watch the thing u doing it' sounds kinda wrong UwU
Your videos are enlightening and filled with innovative ideas, particularly those related to open-source projects for complex systems like Operating Systems or Software Defined Networks (SDN), such as ONOS and RYU. In the VoIP realm, this includes platforms like FreeSWITCH and Kamailio.
My question centers around the best way to comprehend the underlying code in these sophisticated projects. Unlike simple C or Python code, these require installation and intricate configuration. How does one begin to understand and engage with such complexity?
I'm specifically interested in this topic because I need to grasp some aspects of the freeSWITCH code in order to modify and customize it. As a junior programmer, I find the insights in your videos incredibly valuable and would appreciate any guidance you can offer on this subject.
Nice, BUT, comb your hair man!
14:54 insert Supa hot fire hype crowd
Debugging is really fun! This is a really great recommendation for a code review strategy. Also TIL parallel stacks view. Awesome. -jduck
What about java programs where every behaviour is in a @annotation ?
For example
@Getters
@Setters
@Service
...
public class X {}
wait, you can use step into to start the program?
I liked this video the moment I saw Debug->Window->Parallel Stacks! That blew my mind!
😅 i printed out my code and others' code as well. It can help if you can pencil and paper in it, especially if it won't run unless you implemented it correctly in a main program.
It`s also funny how you learn certain coding guidelines and how to write comments etc. at university. But nobody really reads code with you, because everything is trivial to them so it has to be trivial for you as well.
As a beginner in a job with all the fancy things you know, do yourself a favor, and take an older colleague by side and read some code with him. He will show you what tools are used for what and why. Once you get the hang of coding, start messing around with everything when you can. If you have an architectural idea, refactor the code as you like, and make and break as many builds as you need. That really teaches you what works and what doesn`t.
Really awesome video man! Just so you know, you're one of the reasons I write C++ and use Visual Studio!
Thanks again and if you're ever in the UK, I'd be happy to meet up!
Cheers.
lol that last part I can relate to. We had a yearly camp when I was a kid, and I took a thick book to read with me called "How to learn C++ in 21 days." Ya, that was a fruitless endeavor.
Cherno, I've seen a few empty destructors in your classes. I haven't seen that they have defined move constructor and move assignment operators, meaning that they are disabled. Implicit moves happen way to often in the STL, which in your case will be pesimized to copies. Unless you know for sure your objects won't be copied or moved around, I think you should either:
A) Define the move constructor and move assignment operator for every class you defined a destructor for.
B) Do not define those empty destructors until you really need them (which will also reduce binary size).
My bad, this isn't your code.
Empty destructors also hinder some more ideal ABI situations, assuming it could be trivially destructible
great video ...keep up the good work
the cherno can you do a day vlog in your life
Next video idea: how to read Rust code
It might sound weird but it made me interested in how to set up a debugger without VSC now. I don't mean basic debugging, I have that in VIM, but that visual representation of threads - man, I want that.
Does anybody knows the tool Cherno is using to draw on screen so seamlessly? Like on 8:28
Windows built-in stuff takes screenshots first and doesn't look like that precisely
thanks in advance
step 1. rewrite it in c
step 2. read
More debugging video please 🙏
Not quite only other peoples code but mainly knowing the language and being able to implement and design the software using design pattern and software paradigms...so studying the field really is the only way to know what you're doing and beeing able to optimize..things like red black tree structures..search algorithm..understanding big O notation and such are essential to write 'good code'.
🎉 Run the code in a debugger-on env
11:20 don’t drink and code. Especially if you’re working on a pick and place gantry robot.
Amazing btw what lens did you use at the beginning of the video and did you do anything special to achieve that “come in focus range and track focus” effect?
This video was very helpful to me!!! wow.. Thank you very much.!!
i finally learned how to use a debugger and my god it’s helped. very good video and i def learned from this ! thank you!!
I literally started reading through UE5's code a few days ago and couldnt get breakpoints to work tysm
No indenting - horrific
This is amazing quality content mate. I love the unreal engine example a lot.
Chat gpt is replacing all of us
It is coffee tho, not a hypothesis
imagine reading code in the 90
Amazing! How would you do the same debug using linux?
Yeah, I use the same technique, the problem is when you have a code that doesn't compile on you platform XD.
I really wish your videos existed back in my undergrad days (99-03). It would have saved me from going to law school and staying with comp sci.