This man is remarkable. He woke up one day, realized its been 15 years, and reflected on his time. He was so passionate about the conclusion he drew, he decided to get on camera for the first time on this channel and tell people his truth that the rest of the internet seemingly disagrees with. That's brave. Thanks for sharing SyncMain.
The amazing thing for me is that C++ is still in demand. I also programmed C and Visual C++ for about 15 years. I thought the language was dead? Maybe I should pick up where I left off. Of course, I enjoyed it. If you're careful, the programs run very reliably.
The little embedded stuff is really cool to work with. An ESP32 device the size of a quarter has the same power and memory of a 1990s vintage PC. Arduino has nice libraries too. The cost is $10 to get started.
Bjarne Stroustrup once said that the only programming languages that no one complains about are the ones they never use. Once people spend thousands of hours with a programming language, they notice even the smallest things that could be considered "bad". Once people get over that fact and just try to get stuff done, those small details don't really matter.
I used C++, and hated the direction it was going and just continue to be more complex than it needs to be. I switch to web development and went straight to TypeScript and I can tell you I am a lot more productive, I can build a lot of thing quickly. Not so in C++.
Of course you are not going to use C++ in Web Developement? Everything is in GoLang these days anyway except select firms keeping their backend in cpp@@RajinderYadav
@@RajinderYadavthat’s like comparing apples to oranges. All my 30+ years in programming the best language is the one that best fits the task in hand, all languages are good at different areas and what ever language you’re currently using today I can guarantee C/C++ plays a big part in that when you look under the hood.
"hitting you head up against the wall, finding errors, learning..." this is the heart of programming. To be a great programmer you have to do this often, until you dont have to do it so often
I feel like if you ever stop hitting your head against the wall that means you've stopped learning, innovating and pushing yourself. And that's true in any discipline. I can only wish to keep hitting my head against the whole forever, whatever I do.
Nowadays you're just referring to the mountains of technical debt that grow and grow and grow and no great programmers in site. Just people who had the time and opportunities to start their own codebases and the people who wasted time cleaning up after their dads.
Until you injure your head, you mean? 😂 Kidding.. I know but I feel that emotional self-care is very underrated, particularly for programmers! We tend to be perfectionistic nerds who don't love themselves very much!
Problem is not with the programming language, problem is with mindset of people and hype created in the social media space. Oh look at how many lines of code C++ or java has vs Python, python is simple, great blah blah blah. Instead people should think about what are you going to do with that prog lang and how well it is helping your project rather than how hard/easy a programming language is.
I started out and spent around 5 years doing C++, but eventually ended up working exclusively in JavaScript and TypeScript. A major thing I've found during JS/TS peer reviews and training is that other programmers greatly struggle with things I simply find intuitive. Then I think about and it and realise those things MUST be understood to write even basic C++. I may not use the language anymore, but learning it was one of the best decisions I've made for my career.
@@-taz- Any western language, anyway. Japanese kicks my ass hard. Aside from some Dutch loan words, it has zero similarities to anything I've ever known, and I'm already fluent in two languages + have basic conversational abilities in a few others.
would you recommend me to start directly with javascript instead of python? i have been learning python for the past 2 months and, to my understanding, Python is the "simplest" of them all, but still doubting.
@@andresconstantinidi4648 Doesn't matter. JavaScript and Python are pretty similar anyway. So unless you want to do web development (in which case you'll have to learn JavaScript), I'd say stick with Python. What's important at this stage is that you get a good grasp of fundamental programming concepts (variables, loops, functions, classes, debugging, etc), and those are language-agnostic.
@@andresconstantinidi4648 Python and JS are complete opposites. Whichever one you get used to, you'll hate the other. I suggest you pick one and stick with it. I personally chose JS in the end because it runs on literally anything, from server to web to desktop to mobile. Python on the other hand is server only. And once you get used to Python, you'll hate JS. Save yourself the pain and just go with JS.
As a student, trying to always do it the best way caused me more worst than good. What you said about getting it to work without worrying about the best way then improving when it comes to it really enlightened me. Great advice.
Works for fine art too! I'm not sure I really have a method for creating software but to the extent I do, it's go ahead and write spaghetti code, whatever comes to mind that makes sense to me at the moment, get it all hooked up and tested. Once it's working, cool, and next week refactor it to look nicer and make sense to others. I find I get a lot more done that way than trying to follow any methodology or system or anything promoted by the gurus.
You won’t be able to do it the best way initially. You should focus on getting it to work. Eventually, whether you’re brand new to programming or brand new to a language, you should strive to write code that follows the idioms of the language.
Im not a professional C++ dev, but I have been programming in C++ for a long time, and I can say that C++ is not nearly as hard as some people say it is. For instance writing a parser in javascript is just as hard as in C++, and a lot easier than in classic C. One advice I have is if your going to learn C++ don't learn it at the same time as your learning a framework. Master the basics of the language first, then you can learn the frameworks like Qt, OpenGL, SDL ect.
Thanks for this insight. Studying computer engineering currently and chose this as my OOP language and FIRST language and have been learning it for the past 3 months. I used to be a pretty big gamer and saw many people say learning in Unreal would be a good way to but was told elsewhere that if embedded systems was in my future that it's better to learn the basics of the language. This just further confirmed it for me!
@@killacam2971 My pleasure! Also I recommend not trying too much to force yourself to learn pointers and manual memory management like I did. I bought 4 books on pointers because I couldn't understand it, I did one day of learning beginners assembly and I understood it completely. As a beginner one does not need to concern oneself with these things, when your project demands it that is the time to learn it. Then you will have motivation to go more deeply into it. Also IMHO C++ in itself is not the difficult part, solving complex problems is the difficult part. I am in the process of making a game in Unreal, and the tool is incredibly user friendly and nice. It is so easy to use, that I really don't think it is possible to make it more user friendly than it already is. Happy C++ programming!!! 😀
Google’s “Carbon” project aims to start again with a clean slate, based on just those features of C++ that make sense, and leaving all the old legacy baggage behind.
@@lawrencedoliveiro9104 I think that is a really good idea. The Mojo programming language is also sort of the same treatment that typescript has done to javascript just this time its python. It's also in the early experimental stage, but it has the guys behind clang,LLVM, and Swift working on it. It brings system programming into python.
I started programming professionally in1981. I now choose to program in c++. My advice is to not rely too heavily on one compilers messages and warnings. Build object classes that reduce the abstraction level of your highest level code. Namespaces are your friend.
Funny how this is the total opposite error story as in Rust (a shiny hot lang that i do love as a hobbyist) Every single newcomer comes into Rust and asks a beginner question about an error, and the best first response is almost always, "Have you read the error message?" followed by "Did you do what it told you to do?" It's a godsend having a compiler that knows when to complain and how to fix its complaint. Free linter. But the main appeal is the package manager.
Starting with C/C++ over 20 years ago was what made me who I am today from a professional perspective. Understanding the fundamentals of how compilers, libraries, CPUs, etc, work is something every developer should become familiar with sooner or later. Otherwise, they'll hit a wall. More abstractions like C# or Java are great productivity tools that build upon the foundation of C/C++ for me. Also, welcome to TH-cam! 👋
C or C++? There's no such thing as a C/C++ language. C has nothing to do with C++, they are completely different languages. People gotta stop amalgamating these two as if they're the same, it just sounds like you don't know what you're talking about. It makes you sound like a C#/Java programmer 😜
I could not agree more. As someone who started programming in 1993, my first languages were C and a bit of Assembly. Over the course of my career I have developed significant commercial projects in C/C++, Objective-C, Java, Javascript and Python. Platforms spanned win16 / win32 API development on Windows, Objective-C w/WebObjects / EOF on NeXT / OpenStep followed by full stack web and iOS Developer development. Early in my career I agonized over every line of code trying to make it "perfect". There is a better way. Avoid perfection and just code as much as possible, ideally on projects that interest you. Once a project is complete, then look back and figure out what you could have done better. Share what you have done with people you respect and get their feedback. Take those lessons and move on to the next project.
I've been coding in Java for a decade, and I can wholeheartedly affirm that what you said in this video is absolutely accurate. For anyone looking for a magic trick to become a professional, I must tell you, there simply isn't one... Just practice practice and practice
The magic trick is called AI. Studies show that newcomers are nearly as effective programmers as professionals with AI support but they only cost a fraction.
They can you like give me a roadmap what are the topics I should be learning in Java to land a job, I've just started out.. I've learned fundamentals, OOP's, exception handling, collection framework. I've no idea what should I do next ! Thanks.
I started my C++ journey almost a year ago and I am now writing the applications I want and need for what I do. I get hit with the "use Rust" and or insert language here, but they all have ups and downs. The best part of the journey has been simply learning how to think differently and that can be applied to other languages without any problem. I just find the freedom within C++ to be worth it.
I agree, we all heard the saying dont reinvent ths wheel, but the language devs do it all the time. Python has no for loop or arrays everything is a list. Kotlin has you define function parameter backwards to convention ect. I believe learing C++ and Regular C makes you a better developer, more so C. You have no built in data structers with C and since white board interviews want you to know Data Structers, no languange going to force you to know them like C. C++ will give you classes. In the end, they want you to know the main langauge you are interviewing for so what you choose to know forces you dowm a career path. As a C++ dev, we got embedded, video games and Operating Systems.
Writing and debugging your own 'bad code' is the beginning to a wonderful career. Then you move on to debugging other peoples bad code and see how many ways there are to incorrectly do the same thing. Learning the 'old' languages (I have been coding for 40+ years) is a great way to appreciate HOW things work, not just that they work. I agree that making it work is the goal when starting out. As long as you are willing to, as you move forward, recognize the better and less good things you do, and improve with each new attempt. My motto has always been "I screw up more before 9 AM than most people do in a day." You learn by getting it wrong. That forms the memories of what does, and does not, work in a given situation. Subscribed.
Totally. I started my career working with C++ (for embedded stuff) as well as fpga's (verilog). Was too ignorant to know at the time that there were probably smoother ways to learn programming. However, after making countless mistakes, figuring out their nature and solving them I developed a solid understanding of the fundamentals of computing (how memory elements work, how logical semantics emerge from logical gates controlling streams of electricity and how that might be shaped into a processor or other ASICs; how C++ breaks down into assembly and how assembly actually drives the carefully designed digital circuit that is a processor). That foundation has been the biggest asset over the course of my career. There's simply no way to develop that understanding through merely working with the more modern languages because they're too distantly abstracted from the circuitry itself
Just after some fairy basic C I learnt NES architecture and NMOS6502 assembly for fun. It wasn't fun at all Khahaha It was however useful, things that are good for you seldom are easy or enjoyable :P But I still enjoyed it somehow. I would totally do that again without a second thought! Most of the time I spent debugging a few dumb lines or seeing how I fucked up the code just because the principle was wrong. So for example choosing to organize data a certain way, and after 2 hours realizing it's not reusable and is gonna take exponentially more cycles, so I already am doomed until I come up with something different and rewrite everything lmfao Really makes you care about the sense of the code you're writing. I have no professional experience in programming yet though, so idk how helpful it'd be. As for self-growth it did a lot though( taking the time to understand low level stuff )
This was very inspiring, as I sit in front of a simple trig prompt/output program attempting to be perfect, rather than focusing on how this exercise shows me what areas I need to pinpoint for growth and further learning… ONWARD! Thank you
As someone who started programming fairly recently, my experience has been quite the opposite. Starting out with python, everywhere I go influencers actually RECOMMEND you learn either C or C++ to actually understand the nuts and bolts of what you're doing minus all the abstraction that a language like python has. It's to the point where I'm starting to get impatient about learning python and want to dive into C++ already! But I know the best thing I can do is finish what I've started, learn python first and then pick up C++. And I can't wait to do it!
I have noticed more of an uptick in those kinds of recommendations recently, or maybe I just wasn't seeing them based on what was in front of me at the time, but I think it's a good thing to learn for anyone interested! If you'll be doing most of your work in Python, then absolutely no rush, you can learn the underlying stuff in time :) Thanks for watching!
learn c first not c++. its best to start there so you actually get a better understanding without all the fat of c++. also python will squander your potential as a programmer it teaches the absolute worst way to code as its very declarative and object oriented. everything is an object there arent even any primitives.
Thanks a lot for making this video. After 10 years of biotechnology/microbiology and 6 years of working in the chemical industry, I just found my passion for coding. I literally just started learning to code (~1-2 month ago) and can already see myself falling into these mental traps. Your advice is very much appreciated, especially this early in my learning journey.
C# is much more modern and also easier due to less clunkiness. Java's good too (C# copied it) but Visual Studio just embarasses all other IDEs... so C#.
Seeing your first video, I am in love with it. I love the fact that you are telling us realities rather than telling us the best languages. I will recommend that you start your channel as a c++ tutorial channel. If you can get all the curriculum of c++ from scratch to advanced concepts, also showing us how to use c++ in game development, I can assure that your channel will be a high rated channel. I wish to learn to you.
Great, I wish I could see some cool C++ basics videos from you, but also love how you might show us some old code snippets of yours and explain what they do and what you might have thought back then and what you might have do today instead. Sounds really worth it. I'm starting October 4th this year at a programming university with C and a year later with C++.
You make me feel old. A regret I have is not learning C++ or programming languages when the opportunity came to me long ago. In 2004 a programmer at my work sat next to me for nearly a year, I could've asked him if I could give him some peer mentored assistance on a project. But I didn't want to bother. Then in 2006-08, I went to a creative writing group. The head of the group was a retired computer programmer, there were some instances where it seemed he wanted to introduce me to programming languages. I should've been open and just said sure, but didn't, and rather appreciated his feedback on my literary works. Now, a year in my study of C#, I find I could've had that headstart long ago, and learning is a struggle, but if I had started much earlier, by now I could be a professional rather than a senior learner.
I was really confused and feeling pressured with learning things right way and as fast as possible. Your video helped me realise just doing it, making mistakes will eventually teach you more than doing things right way.
Started learning C++ fairly recently, after originally studying Web Development for a year and spending some time learning C# within a Unity context for a couple years. But I realized that learning C++ would get me closer to my goals, so I've been learning that now. It really isn't as scary as a lot of people try to make it out to be, and I've been really enjoying it a lot. I've been doing exactly what you're saying, after learning all the basic syntax and stuff I've been trying to make some small projects and learn by doing - you seriously learn SO much better from just doing instead of trying to read multiple 400+ page books before deciding you're ready.
Facts, couldn't agree more. I am so glad that when I started coding I was 7 years old. Because at that time I was so young that I didn't know that I could even worry about things being bad. It worked out perfectly since I matured with my coding and the events played out well!
Thank you so much for this video!!!🙏❤ I haven't given up. It's so frustrating at times but I usually take breaks and then keep on going. Listening to you makes me realize I'm making this more difficult than it has to be. Thank you!❤
I've been at C++ for about 3 years now. I reckon, if I could look at all of the projects I worked on over that time, I'd probably have a series of "oh that's the time I learned about x". It's nice to have such a versatile toolbox for problem solving.
This is one of the best pieces of programming advice I've heard in nearly 20 years as a software engineer. My experience was very similar. I got caught up on "finding the best, most efficient, cross-platform" way of doing a task, every time I wanted something fundamental as part of a program to do something else. Many of those programs never got written...
I'm about 3 years deep into programming now, mostly from the perspective of data analytics and applied math with a bit of control theory thrown in. I've been in a slump for probably the last 8 months, way too concerned about everything you brought up. You alleviated a lot of that for me, just knowing this is a normal thing for people to go through. Especially since I'm not really a traditional programmer. Thank you. I'm going to go write some code today.
The beauty of learning C++ is that it reveals the boundaries of what programming can do. It has so many features that other languages lack and you don't have to use them if you don't want to.
C++ seems to be getting easier as time goes by. The syntax is becoming cleaner and neater while lots of useful things are now baked into the standard libraries by default. Previously, you'd have to roll your own or rely on third-party offerings such as boost.
I think this only makes it more complicated and overwhelming for newcomers instead of being easier. The tutorials that use old "outdated" constructs still exists and the new ones are only applicable in some cases. This means that nowadays you will have to gain more knowledge in order to understand existing C++ code than you had back when C++98 was the current standard.
I’ve started learning c++ just this week and honestly, having something as simple as a weight converter through a couple of steps from how much you weigh to, having a simple number choice for a planet, and then having it convert that weight to what you’d weigh on that planet, and then debugging the whole thing myself was just super rewarding! I think I’m hooked although now I’m dealing with And, or, not and bool which is a bit harder but I’ll crack it eventually. What I’m saying is the wins are rewarding, I’ve already had my head in my hands this evening but still it’s gonna get better! It’s the only way to learn. YT watching programmers in all fields is helping loads too so I appreciate the upload!
My goal for the summer is to read the entire textbook of c++ programming written by D.S Malik. I want to become an expert at the basic usage of c++ before learning the advanced topics. C++ is my first language being a college student in CS.
I strongly recommend to just jump straight into programming and get your hands dirty. Write basic programs, look for implementation examples, try to understand them, rewrite, make mistakes and repeat
That’s impressive! Your extensive experience with C++ over the years shows dedication and a deep understanding of programming. It’s great that you’ve been able to reflect on your journey and reminisce about your early goals. It must be rewarding to see how far you’ve come as a developer!
Thanks for sharing! I just started going to college a year ago for computer science and I am coding in C++. I originally started in java but switched to c++ because my java teacher said it would be more rewarding. I am super excited and I am glad I got to see this video.
I started programming C++ in the university, I believe mid-90s. At first it was hard and took a couple of years to pick the concepts of the OOP and the templates, then many years it took to learn not to abuse them and start writing clean code. As with everything, practice and keep in mind that people, including yourself, will need to read what you have written, and develop a clean style. Unfortunately, too many programmers try to show off and produce unreadable unmaintainable source code with deep class hierarchies, multiple virtual classes, huge templated code, etc.
clean code is bad. you had it correct at the beginning. the secret is to focus at a larger scope not single element thinking. having pointer nests that you must crawl through to delete objects is inefficient. look at arena allocators. this proves that
Thanks for that! In the early 70's I got an intern position and was being trained on Assembly Language. The original excitement I had when I was originally introduced to COBOL fizzled away so I took the next decade off to do just about anything else. I became excited again with the coming of personal computers, dBase and Foxpro programs and managed to hold a few gigs with those new skills. Today I am very happy working with microcontrollers in the Arduino ecosystem. Combine that with some CAD skills, PCB design and 3D printing I now can make a custom instrument product that some folks want to purchase.
Im a physics student and i feel comfortable working with a computer but i never really had the interest to learn coding until i need it it for some courses in my career. I had to learn python, matlab, a bit of C++ since then I've got a massive respect to the professionals of coding because the first thing i noticed was that you need such a patience for almost everything, even when you feel like hitting the damn screen when something is wrong with the code 😂.
hey, im also a physics student (1st year in college) and i passed the python exams like 2 weeks ago, any advice for studying math or solving physics problems?? i do really struggle studying sometimes
@@chelo5062 Hi, i finished all my courses already and I'm currently working on my dissertation, sometimes i struggle to sit and study too lol, I hate to put it this way but I do it with the best wishes towards you. Depending on the background you have on math, physics etc. The journey will be more or less hard but not impossible, in my case it was hard due to having a bad background. But the things that helped me were to know that I really wanted to surpass my limits becoming better and of course being conscious of what are the implications of that. Willing to sacrifice your hobbies, and other stuff so you can study. Not forever of course. Knowing that to become a better student you need a lot of patience and work. Knowing that you should enjoy the process, because it's slow. (Here is where you must ask to yourself if you really want to follow this path) Once I accepted those things I felt kinda free to study without doing it for the reward or because I have to. Of course I'm not telling you that I've mastered of all that already, sometimes I feel like no wanting to study and play videogames and that is ok but shouldn't be done often. Basically my tip is that you should wonder about why it's hard for you to study, identify the problem or problems and think how could you solve those and ofc do it.
@@Epilogue_04 oh, so the struggle is normal then, i think my worst weakness is that i come from high school where i never had to study half as hard as i have to in college, it's just about getting used to it ig. Btw where are you from? I saw your yt channel and you have some spanish playlists, im from Argentina. Thanks for answering and good luck on your dissertation, hope i can reach that point someday too.
i majored in Electrical Engineering and had zero interest in coding in the beginning.. i even hated Comp Sci I (which actually taught C++).. but then around junior and senior years i started having to code a lot for my regular classes.. was some MATLAB and some C programming too.. that's where i started really getting into coding.. i graduated college in 2008, and fast forward 15 yrs, i'm a senior software engineer now
As a physics student you may appreciate CERN ROOT and how C++ is used for scripting it. I am still puzzled why ROOT is unknown outside of particle physics, it is a great tool useful for nearly everyone.
Love love love your message and the tone of the video! Looking forward to move vids about C++ and lowlevel, but more fundamentals like going DSA with C++ or embedded Raspberry Pi. Things that can teach CS fundamentals but also strenghths of C++ :) Cheers!
I am on 2 years of programming. Firstly started with C++ and then switched to C# because of my job purposes. However, I never learned programming for the syntax or even for how complex it is. I wanted to create real products and software for anything that I need without thinking which language is best. Programming languages is a tool that I love using everyday. Thank for the insight SyncMain and please dont stop doing what you love most.
Hey! Thanks for the advice. As a gamedev struggling to get out of the Unity/C# space and into the UE5/C++ space, this was something I needed to hear. As I look for a new job, I've realized I need some serious practice with both C++ AND my CS fundamentals. I've been struggling to find the "most efficient" route, because my time is so limited since I'm writing tools in python 40 hours a week for work. But, the best way is A Way, Any Way!
I have recently begun learning C++ for approximately two weeks now in preparation for some math-related topics and graphical programming, particularly for OpenGL. Initially, I started with C# and have been coding in it for over a year. Transitioning to C++ turned out to be easier than I anticipated. While the syntax is different, and there are no garbage collectors, there are pointers, references, and a more manual approach. Surprisingly, I find that I enjoy it :). Although it is slower to write compared to most other languages, I am not bothered by it, fortunately. I've heard that C++ is often considered a language for masochistic people(laugh). Maybe I'm the exception?. I don't know.
I think part of it is some C++ programmers who have been doing it for a while like to be a bit gate keepy about their secret special-held knowledge, or from people who haven't written in C++ but have only heard all of the horrible things that can happen when you use it improperly from other languages' evangelists. I'm glad you're enjoying it though! With enough time in the language you'll be writing code just as fast as you were in C#, just without all the nice .NET features :)
I'm just starting my journey. Will be studying CS from Feb 2024 where they teach C#. I just came across your video randomly and it was cool to hear your thoughts on your beginnings. Will focus on the fundamentals and learn to debug - but as you mentioned, I will try to do more actual writing and fix my errors instead of getting stuck in tutorial videos.
I don't know why the algorithm recommended this video but I'm glad it did. I can see a lot of similarities in what you said about just getting started (imposter syndrome) and would love to know more about how you started as a lot of people gloss over it as easy as "develop something you'd enjoy using" - 15 years ago the technology was very different to today. Happy to be subscribed for video #1 and hope you make a lot more. You must be blown away by the views/subscribers already.
There are concepts like RAII, smart pointers and nowadays things like coroutines that come from other languages, that are worth learning in C++ as well. So yeah learning C++ is worth it in the long run.
Some people would be on the opposite end of the spectrum, saying it's absolutely not worth learning these concepts in C++ - a waste of time. There are differing opinions, so people should be critical. It's never as simple as "this is worth learning" and "this is not worth learning" because there are *always* differing opinions. My favorite way of dealing with this is to spend a long time in one extreme, then spend a long time in the other extreme, and then judge what worked better.
raii is bad though. its just patching over a flaw in your architecture. the better thing to do is untangle lifetimes with memory arenas and use scratch space. treating the heap similar to the stack where you just free everything in one shot by using pools to allocate.
Thank you for this, I needed the motivation. recently I've started coding things I like vs coding what I think I need to code to learn "optimally". I'm going into my Junior year of college, the path up to now has been so hard with how the pandemic affected everything and the fact that besides some HTML and CSS, i knew nothing about programming. sometimes I feel like I'm not good enough to be where I am but then I remember about all the self-studying I've done and all of the hours I've put into this craft. That makes me feel more worthy. Thank you for your video once again.
Hey Chris, Thanks for your video. Sometimes you just need to hear from someone with more experience that you're actually not doing a bad job. There is always something new to learn so don't sweat the small stuff. I actually got stuck in the loop of worrying about doing things the wrong way and I would stop what I was doing and ask for advice. Instead of writing the code and then getting a review on it later. That way I can improve upon what I have already written. I am shifting this now where I stop worrying about the right way of coding and focus on getting my code to do what I want it to, then I focus on optimization and cleanup before finally getting a review from the community on Git. I do this with PR checks :) I write in C++ and Python :)
I've been in this field for as long as you have, and I couldn't agree more. Even though I'm not a C++ developer like you, I'm an ABAP developer. I've experienced similar feelings and fears, like wondering, "What if I write poorly structured code and someone notices?" However, with time, I've come to understand that these concerns are all part of the journey. In every profession, individuals are bound to face judgment from others, and that's perfectly alright. Moreover, I've evolved over the past decade, just as any professional does. This growth applies to me both as a software developer and as an individual.
Thank you for this. Currently in my third semester of computer engineering. I learned C and now everything is in C++. It’s kind of weird but I can go through this. Hope you’re well.
Loved this video. I don't know why this is the most relaxing, comfortable video about programming, (that too C++, lol) I have ever seen. You deserve much more subscribers. Absolutely Loved it
Thanks for your honesty and advice. I'm currently in the same situation but with JavaScript. I was trying to learn Typescript and Angular and everything at the same and just hitting a wall and getting frustrated but before quitting I saw some video with similar advice to yours. Then I started from scratch just getting small things done learning the basics HTML, CSS and vanilla JavaScript and not only Im learning way more than a year ago, I'm enjoying it while being productive.
@@dervaken3902 What experience do you have in the SWE industry? Most everyone I've heard talk about how to learn JS says to start with the base language and after you've built up your foundations to go learn a framework or two. I'd love to hear more about why you think going the other way works well for you.
Hi there Sir, well said. I have been told many times not to start with C++ because of the difficulty of the language but instead to learn C# which is much easier. However, the engine I enjoy using is Unreal Engine which is based on C++, and even though I enjoy using visual scripting. I feel like learning the language behind it will be helpful when you want to customize your stuff beyond the norm. So to me, coding on something you enjoy will help the learning process quicker. I am entering this at a late age but if I have to focus on a single language on a game engine/framework I enjoy then why not? ;)
I think C# is best for learning. It made me aware of things that are more hidden in languages like Python. Once you know one language properly it's fairly easy to transition. For data structures and algorithms (or general problem solving) practice leetcode is quite useful and offers a bunch of languages to do their tasks in.
Amazing video! My first ever langauge was C++, and I can say that it was hard but totally expected when your new to programming. I was told not to start with C++, but with Python. But I feel like if I had started with Python, C++ would have been alot more frustrating. I developed a skill to debug in C++ that I never would have done with Python per say. So personally I think C++ is an amazing langauge to start with as a complete beginner to programming. Get traight into the sauce. My first ever project was a game eninge, I know, an extreme way to start your C++ journey. But It was fun, and that was the important part.
I've been programming in different languages for almost 20 years. You can always learn something new, and I completely agree with your advice. Thanks for sharing.
I think my experience with C++ is roughly 12 years. I guess major problem of language is that is does not define any standard for project files and it's very hard to write multiplatform code and use third party libraries at the same time. And then basically incompatible object oriented approach and templates. And then standard template library which is good in many ways, but it can hurt performance. Basically everything has alternatives with some pros and cons and it's important to know what to choose (except the cases when it does not matter at all). It's generally bad to stick to some dogmas. But core C++ is basically C and starting with language is not that hard. Quite important is to know when C++ is a proper tool and when it's not. You can do some kind of log analyzer in Python with statistics in graphs using regex, pandas and seaborn in 50 lines of code. Doing the same in C++ can take weeks (just choosing the right library for drawing graphs and linking it to your project - using Qt and QCustomPlot would be easiest, but there's a learning curve)
As someone who went directly from block programming to learning C++, I'm very happy I did. Although it can be frustrating at times, it gives such a good understanding of programming as a whole, and it becomes ridiculously easy to learn new langauges.
Yeeeep true. I don't even remember most of the stuff I covered when learning it but I'm able to pick up other languages very easily now. Hoping to get back into it but its daunting because it's so expansive
Good advice! I've been programming in C++ since the early 1990s, back when I was a child. I've seen the language change dramatically over the years. I've written a lot of bad code during those years. With time, one gets better at it and starts to notice good and bad patterns. It is very beneficial to study the theory: mathematics, software design patterns, data structures and algorithms... However, if you want to become a good programmer, nothing can replace the practice: you have to write a lot of code. It's infinitely better to write bad code than no code at all. Just don't trust your code to perform critically important tasks without thoroughly testing it (I think this is just as true for experienced programmers as it is for beginners, nobody is exempt from making mistakes). C++ is not perfect, it has some terrible design choices. C++ code tends to be ugly. But it is still the most versatile programming language in my experience, and I think a tool that every programmer should know how to use.
The new comers believe they're smarter than elders because they can do what we do in a much easier way. But, C programmers are the ones who gave life to computing, not Python-GPT coders or new JS frameworks fans. You are so humble but your words are strong!
This made my day more than you think. I've been really working hard trying to automate my company and learn software engineering and I'm studying code and I'm learning all this stuff and not sure if I'm doing it right but I keep getting smarter so I know it's working and I kind of had a little tear in my eye so I appreciate your video thank you very much.
Good evening! I'm someone who has worked in development for over 10 years, but not as a coder. Obviously still, being part of the development team I had to learn concepts how things work, but I never learned to code myself.. so I started to learn on my own. From my own experience I would suggest people to learn Python or similar first, but only the fundamentals like variables, loops, functions, classes etc. and then move to more "in-depth-language". I learned Python only for few months before switching to C++ and I found it to be much more interesting, because it helped (forced!!) me to understand why things are done in a certain way when coding and how things really work under the hood with memory allocation for example. What I learned and what kind of programs I could code increased exponentially after I had switched to C++ and had the "fundamentals" already in control. I'm still learning and coding C++ everyday
C++ (going low level) is not the only way to add depth. if you have time to spare, i recommend looking at a Functional Programming Language. these require way less code even than Python, but that does not mean it's easy. and Functional Programming really changes the way you think in other languages. Relational Database design (ER Diagrams) and the SQL language is another thing i recommend looking at. what you are doing now seems like more of the same (Imperative Programming) only with more details. just throwing that out there
@@xybersurfer Hey dude.. this reply is late, but it doesnt matter. You had a good point there.. I was familiar with functional programming, but hadnt really deep dived into the paradigm yet. I started and learned using Haskell which is completely functional and it did work wonders. It forced me to think differently (as you said) and even tho in work life its unlikely that I get to code Haskell (unfortunately), but most of the things that I learned can be transferred to imperative languages easily. I think the process of learning it and actually coding some programs with it made me a much more competent programmer than I was before. Also your second suggestion was good, but Im already familiar with SQL and ER-diagrams. Thank you man! And have a nice autumn (or whatever season you happen to read this).
@@MikkoPartanen-y8r hey, that's awesome to hear! :). you picked a nice language. Python, C++, SQL & ER-diagrams, Haskell yeah you sound pretty competent :D. glad you liked my suggestion. i similarly also don't get to use Functional languages at work, but use some of the style. it's nice of you to follow up with some feedback. thanks. you also have a nice autumn and have fun!
We started programming at the same time! I was writing C++ back in 2008 as well. I switched to other languages, but it was really cool to hear the perspective of someone who stuck to it for 15 years.
I've been in C++ game development for about 5 years now and I've had this weird thing where I feel like my mastery of the language syntax/more obscure featureset is actually going down over time. 99.99% of the time I am writing pretty basic stuff. Usually using overly fancy patterns and over-engineered early abstractions is a serious code smell. Code is read way, way, WAY more than it is written. Simplicity is the fucking king. Keep shit straight forward. And keep shit CONSISTENT. After you finish touching a file nobody should be able to tell that you bolted on new functionality. It should blend in as if it was always there. Knowledge of weird C++ tricks doesn't really help you in the industry. What really matters in a professional setting is quick code navigation/comprehension and good communication skills. That's it.
I just started to code 3 Months ago in C# and honestly have been, without realizing, very fixated on how my progress or how my learning speed compares to the ones I look up to.Seeing someone with a lot of experience talking about stuff like this really helped me to return to coding with a more positive mindset. Also kind of reminded me of Bob Ross's mentality :-)
I've been learning to code since high school and currently in college. This describes my situation too well! I learn extremely well in classes because I'm forced to do everything in a certain way, using old and "bad" languages. But when teaching myself or building side projects, I never accomplish anything. I get stuck on choosing languages and frameworks and start thinking about deployment before writing a single line of code. If I start writing code, I sink into endless refactoring before anything is even working. I'm just too worried about doing it "the wrong way." Even as I clicked on this video, I wanted to see some advice about writing clean code or managing complexity or organizing code. I used to think "don't be afraid to make mistakes" is such a dumb advice, but here I am, learning to not fear mistakes. Thank you for saying exactly what I needed!
I was teaching myself C++ a few months ago and, honestly, it came so naturally to me it was kind of a shock. I liked the problem-solving, I liked everything about it, I just "got it" in a way I never really have with anything else. I kind of felt bad about dropping it, but there's not a snowball's chance in Hell of me actually getting a job in the field and I don't need another hobby, so I didn't see the point in continuing.
15 years........That's a loooooooooooong time. I been on this earth for only 18 now.......This man has been coding for more than 80% of my life. That's insane to me
As a retired C/C++ programmer who has not looked at any code for 3 years, it is interesting to hear and read about what today's software geeks like and dislike about languages. We all have preferences, depending on your needs and work habits. There is so much information out there to digest. It helps to keep an open mind.
My first programming language was C++, and it's still the reason I love programming. Thanks for sharing your experience! I wasn't sure if what I was planning on doing now in my career was okay, but this video just gave me more confidence in my plan. Thanks again!
God like dude) Im started to learn c++ because its must have in programming graphics(opengl). And want to make indie games or write own tiny game engine. But now im coding at c language(sry for english:)) with raylib. Its very simple and fun. Thanks for video
I hadn't heard of raylib before, it looks cool! If you're into indie games you probably already know about itch.io, but if not you should check out the developer community there. Lots of people learning and sharing there, I'm sure you'll find something relevant to your interests.
SyncMain's conclusion is spot on. I'd use the word practice. Practice writing, designing, debugging, diagnosing, re-writing, re-thinking. I started in C back in the 80's, moved to C++ in the very early 90's, and I'm currently making software in C++ 20. SyncMain's other message, opposing the C++ warnings from the public, is also spot on. If your targets require other languages then there's no reason to use C++ instead, but if your targets require C++ you shouldn't avoid it. It does require expertise, and that is one of the flaws of the language. Not everyone is suited to it. However, I can say from decades of experience, I have zero...zero...of the issues you read about "warning" about C++. I did have them, long, long ago, especially when I worked in C. My experience and training puts me in the position of automatically choosing better methods to write software, no matter what language I use. By far, C++ is my favorite and where I am most productive, but I have practiced long and hard. Consider, too, if you would really want to use software (if it is important software to you) that was built by someone without experience, expertise and serious knowledge. With that, the languages are less important than how they are used and what options those languages provide for solid, fast, efficient and reliable final products.
So, you confirm that what people say about the C++ safety problem and that should be replaced by Rust is basically nonsense? I think C++ has been wrongly targeted by many who just get obsessed with another language or are inherently scared by the steep learning curve. A language doesn't stay on the market for so long for no good reason.
Well said. I also agree that it is much more important to achieve your goal, than to struggle or even give up midway because you can't do it the way some group of people want. In time, you'll definitely learn what is good practice, what is a bad approach, and you'll begin to understand why are other people recommending the other ways and design patterns, why do these languages and frameworks solve the problems the way they do etc. You can always refactor later, so don't be afraid if it doesn't turn out the best for the first few tries. Languages are just tools. To me, there's no good or bad language in general. It always depends on the task you need to do. You have to pick the language and even framework that helps you the most to accomplish your goal for the right needs (system, performance, timeframe). Your choice is right if you don't feel that you're fighting against every tool constantly. And that's why you can't skip learning the language and practice coding in it. Without practice, you are never going to "level up". If I also looked back the code I wrote as a novice in around 2007, I would also change several things to make the code more safe, testable, readable, and reusable.
This is not only good advice for programming, but for many, many things! Maybe even life itself? Do not be afraid to make mistakes, just learn from them, if not the first time then the second or third or many attempts more. ENJOY LEARNING ❤
I started learning C++ since it's the first programming course you can take at my college this semester. After hearing everyone talk about how it is "the worst language" you can start with because it's incredibly difficult for years, I felt a mix of emotions when I started learning a few months ago. It honestly boosted my ego for a bit. While I definitely have much more to learn and struggle with understanding the basics (like strings and loops), I still have a ton of fun! It's frustrating, but it feels so good when your code runs!!
If you think C handles strings and loops oddly, you should check out some of the Esolangs that are out there. The Iteration code in them will melt your brain!
I just started with C++ learning from an Android device I don't have enough money to buy a computer. Now I'm going to learn pointers but it's really hard to get how memory, bit streams. I wanna understand it deeply in order to developer my own OS in the future.
Well hopefully even if you can't buy a computer you live in an area where you can use one for free, either at local schools or libraries. It's very helpful to be able to step through code that you write and see how the values change. For now I think it's great that you can read and practice from your phone
Thanks for making this video! I'm brand new to programming - well, technically, I learned to code in Minecraft Bedrock, but now I'm focusing on learning C++. I'm still a total noob. But I'm sticking with it. I have no pride in the game, so I have no issue writing terrible code so that I can learn from my mistakes. I'm very excited to eventually be able to write the programs that I have in my head!
The only thing I think c++ lacks a decent package manager like pip or npm. for c++ packages you need to look forward to your os package managers like apt and others which are not very much intuitionistic. I hope c++20 modules are the stepping stone.
This man is remarkable.
He woke up one day, realized its been 15 years, and reflected on his time. He was so passionate about the conclusion he drew, he decided to get on camera for the first time on this channel and tell people his truth that the rest of the internet seemingly disagrees with.
That's brave. Thanks for sharing SyncMain.
agree. really like this guy. i hope he will post more content
It seems like someone has a similar sense of humour. 😂
The rest of the internet are, by definition, morons.
The amazing thing for me is that C++ is still in demand.
I also programmed C and Visual C++ for about 15 years.
I thought the language was dead?
Maybe I should pick up where I left off.
Of course, I enjoyed it. If you're careful, the programs run very reliably.
@@remains2246 As in C++ to get into quantitative finance? Thanks in advance :)
Turned 50 this year. Never coded before. Learning C now as a hobby to keep the brain working.
how is your progress with C going? 😁
Amazing story, I think that's solid.
C is awesome.
The little embedded stuff is really cool to work with. An ESP32 device the size of a quarter has the same power and memory of a 1990s vintage PC. Arduino has nice libraries too. The cost is $10 to get started.
Im 38 and doing the same thing and thinking getting into win32api lol
Totally meant to upload this on 6/23/2023 and jumped the gun. I'll try again at the 30 year mark.
I would like to see c++ videos on your channel like tutorials and your creations
I pick up c++ among all just because it have 2 positive signs..... And guess what .... I never regret 😀
lmao
I am going to see your video 15 years from now and it's going to be awesome to remember writing this comment.
@@Anarchy_OWsame bro
Bjarne Stroustrup once said that the only programming languages that no one complains about are the ones they never use. Once people spend thousands of hours with a programming language, they notice even the smallest things that could be considered "bad". Once people get over that fact and just try to get stuff done, those small details don't really matter.
I used C++, and hated the direction it was going and just continue to be more complex than it needs to be. I switch to web development and went straight to TypeScript and I can tell you I am a lot more productive, I can build a lot of thing quickly. Not so in C++.
Of course you are not going to use C++ in Web Developement? Everything is in GoLang these days anyway except select firms keeping their backend in cpp@@RajinderYadav
@@RajinderYadav webdevelopment is a whole other direction... doesnt really make sense to be using c++ there so your argument doesnt hold
@@RajinderYadavthat’s like comparing apples to oranges.
All my 30+ years in programming the best language is the one that best fits the task in hand, all languages are good at different areas and what ever language you’re currently using today I can guarantee C/C++ plays a big part in that when you look under the hood.
@@hu-ry both web "development" and C++ programming are the same kind of object-oriented programming garbage.
man, you're giving me hopes to get back to programming after dropping it for 7 years
"hitting you head up against the wall, finding errors, learning..." this is the heart of programming. To be a great programmer you have to do this often, until you dont have to do it so often
I hope to that point, i am still banging my head off the walls..throwing PC's out of windows..
I feel like if you ever stop hitting your head against the wall that means you've stopped learning, innovating and pushing yourself. And that's true in any discipline. I can only wish to keep hitting my head against the whole forever, whatever I do.
Nowadays you're just referring to the mountains of technical debt that grow and grow and grow and no great programmers in site. Just people who had the time and opportunities to start their own codebases and the people who wasted time cleaning up after their dads.
Until you injure your head, you mean? 😂 Kidding.. I know but I feel that emotional self-care is very underrated, particularly for programmers! We tend to be perfectionistic nerds who don't love themselves very much!
@@gezenews what do u mean exactly? That programmers don't usually clean up their code, and newbies are assigned those tasks?
Problem is not with the programming language, problem is with mindset of people and hype created in the social media space. Oh look at how many lines of code C++ or java has vs Python, python is simple, great blah blah blah. Instead people should think about what are you going to do with that prog lang and how well it is helping your project rather than how hard/easy a programming language is.
facts
python is only good if you don't mind performance/resource usage and you need a way to write scripts quickly
On a few occasions, I've replaced python projects with C++.
@@nicolausteslaus😂😂😂
I hate it when some random tiktoker sorts programming languages based on how many lines do you need to type to output hello world
I started out and spent around 5 years doing C++, but eventually ended up working exclusively in JavaScript and TypeScript. A major thing I've found during JS/TS peer reviews and training is that other programmers greatly struggle with things I simply find intuitive. Then I think about and it and realise those things MUST be understood to write even basic C++. I may not use the language anymore, but learning it was one of the best decisions I've made for my career.
Yeah it's like learning Latin. If you can do that, you can do any language.
@@-taz- Any western language, anyway. Japanese kicks my ass hard. Aside from some Dutch loan words, it has zero similarities to anything I've ever known, and I'm already fluent in two languages + have basic conversational abilities in a few others.
would you recommend me to start directly with javascript instead of python? i have been learning python for the past 2 months and, to my understanding, Python is the "simplest" of them all, but still doubting.
@@andresconstantinidi4648 Doesn't matter. JavaScript and Python are pretty similar anyway. So unless you want to do web development (in which case you'll have to learn JavaScript), I'd say stick with Python. What's important at this stage is that you get a good grasp of fundamental programming concepts (variables, loops, functions, classes, debugging, etc), and those are language-agnostic.
@@andresconstantinidi4648 Python and JS are complete opposites. Whichever one you get used to, you'll hate the other. I suggest you pick one and stick with it. I personally chose JS in the end because it runs on literally anything, from server to web to desktop to mobile. Python on the other hand is server only. And once you get used to Python, you'll hate JS. Save yourself the pain and just go with JS.
As a student, trying to always do it the best way caused me more worst than good. What you said about getting it to work without worrying about the best way then improving when it comes to it really enlightened me. Great advice.
Works for fine art too! I'm not sure I really have a method for creating software but to the extent I do, it's go ahead and write spaghetti code, whatever comes to mind that makes sense to me at the moment, get it all hooked up and tested. Once it's working, cool, and next week refactor it to look nicer and make sense to others. I find I get a lot more done that way than trying to follow any methodology or system or anything promoted by the gurus.
You won’t be able to do it the best way initially. You should focus on getting it to work.
Eventually, whether you’re brand new to programming or brand new to a language, you should strive to write code that follows the idioms of the language.
This man woke up one day after writing c++ for 15 years and suddenly started to speak facts.
Im not a professional C++ dev, but I have been programming in C++ for a long time, and I can say that C++ is not nearly as hard as some people say it is. For instance writing a parser in javascript is just as hard as in C++, and a lot easier than in classic C. One advice I have is if your going to learn C++ don't learn it at the same time as your learning a framework. Master the basics of the language first, then you can learn the frameworks like Qt, OpenGL, SDL ect.
Thanks for this insight. Studying computer engineering currently and chose this as my OOP language and FIRST language and have been learning it for the past 3 months. I used to be a pretty big gamer and saw many people say learning in Unreal would be a good way to but was told elsewhere that if embedded systems was in my future that it's better to learn the basics of the language. This just further confirmed it for me!
@@killacam2971 My pleasure! Also I recommend not trying too much to force yourself to learn pointers and manual memory management like I did. I bought 4 books on pointers because I couldn't understand it, I did one day of learning beginners assembly and I understood it completely. As a beginner one does not need to concern oneself with these things, when your project demands it that is the time to learn it. Then you will have motivation to go more deeply into it. Also IMHO C++ in itself is not the difficult part, solving complex problems is the difficult part. I am in the process of making a game in Unreal, and the tool is incredibly user friendly and nice. It is so easy to use, that I really don't think it is possible to make it more user friendly than it already is. Happy C++ programming!!! 😀
Google’s “Carbon” project aims to start again with a clean slate, based on just those features of C++ that make sense, and leaving all the old legacy baggage behind.
@@lawrencedoliveiro9104 I think that is a really good idea. The Mojo programming language is also sort of the same treatment that typescript has done to javascript just this time its python. It's also in the early experimental stage, but it has the guys behind clang,LLVM, and Swift working on it. It brings system programming into python.
What are (in your opinion) the basics of the C++ language ?
I started programming professionally in1981. I now choose to program in c++. My advice is to not rely too heavily on one compilers messages and warnings. Build object classes that reduce the abstraction level of your highest level code. Namespaces are your friend.
Wow thats a crazy long time. I write in java, not c++ but I think your message mostly translates over, especially the second part.
Funny how this is the total opposite error story as in Rust (a shiny hot lang that i do love as a hobbyist)
Every single newcomer comes into Rust and asks a beginner question about an error, and the best first response is almost always, "Have you read the error message?" followed by "Did you do what it told you to do?"
It's a godsend having a compiler that knows when to complain and how to fix its complaint. Free linter. But the main appeal is the package manager.
i need some link to learn c++ class object for some visulaisation in ureal enginer ? where can i find it ?
@@JSD999code with harry
@@raffimolero64 have you tried go? is Rust better in your opinion?
Starting with C/C++ over 20 years ago was what made me who I am today from a professional perspective. Understanding the fundamentals of how compilers, libraries, CPUs, etc, work is something every developer should become familiar with sooner or later. Otherwise, they'll hit a wall. More abstractions like C# or Java are great productivity tools that build upon the foundation of C/C++ for me. Also, welcome to TH-cam! 👋
C or C++? There's no such thing as a C/C++ language. C has nothing to do with C++, they are completely different languages. People gotta stop amalgamating these two as if they're the same, it just sounds like you don't know what you're talking about. It makes you sound like a C#/Java programmer 😜
@@michaelzomsuv3631stfu
@@michaelzomsuv3631C++ is a superset of C
@@michaelzomsuv3631 you don't know what you are talking about lol
@@michaelzomsuv3631😂j
I could not agree more. As someone who started programming in 1993, my first languages were C and a bit of Assembly. Over the course of my career I have developed significant commercial projects in C/C++, Objective-C, Java, Javascript and Python. Platforms spanned win16 / win32 API development on Windows, Objective-C w/WebObjects / EOF on NeXT / OpenStep followed by full stack web and iOS Developer development. Early in my career I agonized over every line of code trying to make it "perfect". There is a better way. Avoid perfection and just code as much as possible, ideally on projects that interest you. Once a project is complete, then look back and figure out what you could have done better. Share what you have done with people you respect and get their feedback. Take those lessons and move on to the next project.
0:04 nam flashbacks
😅It definitely looks like that, but if you're curious it's "alright, I'm recording, what the hell did I want to talk about?" lol
😂😂😂
Lol😂😂
I've been coding in Java for a decade, and I can wholeheartedly affirm that what you said in this video is absolutely accurate. For anyone looking for a magic trick to become a professional, I must tell you, there simply isn't one... Just practice practice and practice
The magic trick is called AI.
Studies show that newcomers are nearly as effective programmers as professionals with AI support but they only cost a fraction.
@@bobbobson6290 source of the study?
java is the McDonald's of languages. Don't bother unless you want to serve fries the rest of your life.
@@eyesopen6110 That's interesting care to explain why learning Java would make you work in fast food all your life ?
They can you like give me a roadmap what are the topics I should be learning in Java to land a job, I've just started out..
I've learned fundamentals, OOP's, exception handling, collection framework. I've no idea what should I do next !
Thanks.
I started my C++ journey almost a year ago and I am now writing the applications I want and need for what I do. I get hit with the "use Rust" and or insert language here, but they all have ups and downs. The best part of the journey has been simply learning how to think differently and that can be applied to other languages without any problem. I just find the freedom within C++ to be worth it.
I agree, we all heard the saying dont reinvent ths wheel, but the language devs do it all the time. Python has no for loop or arrays everything is a list. Kotlin has you define function parameter backwards to convention ect. I believe learing C++ and Regular C makes you a better developer, more so C. You have no built in data structers with C and since white board interviews want you to know Data Structers, no languange going to force you to know them like C. C++ will give you classes. In the end, they want you to know the main langauge you are interviewing for so what you choose to know forces you dowm a career path. As a C++ dev, we got embedded, video games and Operating Systems.
Writing and debugging your own 'bad code' is the beginning to a wonderful career. Then you move on to debugging other peoples bad code and see how many ways there are to incorrectly do the same thing. Learning the 'old' languages (I have been coding for 40+ years) is a great way to appreciate HOW things work, not just that they work. I agree that making it work is the goal when starting out. As long as you are willing to, as you move forward, recognize the better and less good things you do, and improve with each new attempt. My motto has always been "I screw up more before 9 AM than most people do in a day." You learn by getting it wrong. That forms the memories of what does, and does not, work in a given situation. Subscribed.
That's a dope motto as many people are still wiping their butt after a morning flush
Totally. I started my career working with C++ (for embedded stuff) as well as fpga's (verilog). Was too ignorant to know at the time that there were probably smoother ways to learn programming. However, after making countless mistakes, figuring out their nature and solving them I developed a solid understanding of the fundamentals of computing (how memory elements work, how logical semantics emerge from logical gates controlling streams of electricity and how that might be shaped into a processor or other ASICs; how C++ breaks down into assembly and how assembly actually drives the carefully designed digital circuit that is a processor). That foundation has been the biggest asset over the course of my career. There's simply no way to develop that understanding through merely working with the more modern languages because they're too distantly abstracted from the circuitry itself
Trust me, having to debug other people's code is not a job you want to do.
Avoid it if you can.
@@Numinus1 C++ and embedded in the same sentence? Sounds like you were doing something wrong.
Just after some fairy basic C I learnt NES architecture and NMOS6502 assembly for fun. It wasn't fun at all Khahaha
It was however useful, things that are good for you seldom are easy or enjoyable :P
But I still enjoyed it somehow. I would totally do that again without a second thought!
Most of the time I spent debugging a few dumb lines or seeing how I fucked up the code just because the principle was wrong. So for example choosing to organize data a certain way, and after 2 hours realizing it's not reusable and is gonna take exponentially more cycles, so I already am doomed until I come up with something different and rewrite everything lmfao
Really makes you care about the sense of the code you're writing.
I have no professional experience in programming yet though, so idk how helpful it'd be. As for self-growth it did a lot though( taking the time to understand low level stuff )
This was very inspiring, as I sit in front of a simple trig prompt/output program attempting to be perfect, rather than focusing on how this exercise shows me what areas I need to pinpoint for growth and further learning… ONWARD!
Thank you
As someone who started programming fairly recently, my experience has been quite the opposite. Starting out with python, everywhere I go influencers actually RECOMMEND you learn either C or C++ to actually understand the nuts and bolts of what you're doing minus all the abstraction that a language like python has.
It's to the point where I'm starting to get impatient about learning python and want to dive into C++ already! But I know the best thing I can do is finish what I've started, learn python first and then pick up C++. And I can't wait to do it!
I have noticed more of an uptick in those kinds of recommendations recently, or maybe I just wasn't seeing them based on what was in front of me at the time, but I think it's a good thing to learn for anyone interested! If you'll be doing most of your work in Python, then absolutely no rush, you can learn the underlying stuff in time :)
Thanks for watching!
learn c first not c++. its best to start there so you actually get a better understanding without all the fat of c++. also python will squander your potential as a programmer it teaches the absolute worst way to code as its very declarative and object oriented. everything is an object there arent even any primitives.
Thanks a lot for making this video. After 10 years of biotechnology/microbiology and 6 years of working in the chemical industry, I just found my passion for coding. I literally just started learning to code (~1-2 month ago) and can already see myself falling into these mental traps. Your advice is very much appreciated, especially this early in my learning journey.
I'd love to get some advice from you, I'm currently going into my second year as a biotech student.
C# is much more modern and also easier due to less clunkiness. Java's good too (C# copied it) but Visual Studio just embarasses all other IDEs... so C#.
Coding also is beneficial for Biotech if I'm not mistaken. But I'm only studying IT so I wouldn't really know..
what do you use it for in your field?
Visual Studio is nothing against JetBrains IDEs@@GregMoress
Seeing your first video, I am in love with it. I love the fact that you are telling us realities rather than telling us the best languages. I will recommend that you start your channel as a c++ tutorial channel. If you can get all the curriculum of c++ from scratch to advanced concepts, also showing us how to use c++ in game development, I can assure that your channel will be a high rated channel. I wish to learn to you.
up
Up!
He may not have the time or energy
Great, I wish I could see some cool C++ basics videos from you, but also love how you might show us some old code snippets of yours and explain what they do and what you might have thought back then and what you might have do today instead. Sounds really worth it. I'm starting October 4th this year at a programming university with C and a year later with C++.
You make me feel old. A regret I have is not learning C++ or programming languages when the opportunity came to me long ago. In 2004 a programmer at my work sat next to me for nearly a year, I could've asked him if I could give him some peer mentored assistance on a project. But I didn't want to bother. Then in 2006-08, I went to a creative writing group. The head of the group was a retired computer programmer, there were some instances where it seemed he wanted to introduce me to programming languages. I should've been open and just said sure, but didn't, and rather appreciated his feedback on my literary works. Now, a year in my study of C#, I find I could've had that headstart long ago, and learning is a struggle, but if I had started much earlier, by now I could be a professional rather than a senior learner.
I was really confused and feeling pressured with learning things right way and as fast as possible. Your video helped me realise just doing it, making mistakes will eventually teach you more than doing things right way.
Started learning C++ fairly recently, after originally studying Web Development for a year and spending some time learning C# within a Unity context for a couple years. But I realized that learning C++ would get me closer to my goals, so I've been learning that now. It really isn't as scary as a lot of people try to make it out to be, and I've been really enjoying it a lot.
I've been doing exactly what you're saying, after learning all the basic syntax and stuff I've been trying to make some small projects and learn by doing - you seriously learn SO much better from just doing instead of trying to read multiple 400+ page books before deciding you're ready.
Where can I get practiceprojects for C++? I was reading some 2000 pages book and I see it is much more theoretical than real life practice.
Is C# bad? I have not use unity and C#.
Following
@@monamodikgwete3423 just make some games, even if they just use the debug window.
Facts, couldn't agree more. I am so glad that when I started coding I was 7 years old. Because at that time I was so young that I didn't know that I could even worry about things being bad. It worked out perfectly since I matured with my coding and the events played out well!
Thank you so much for this video!!!🙏❤ I haven't given up. It's so frustrating at times but I usually take breaks and then keep on going. Listening to you makes me realize I'm making this more difficult than it has to be. Thank you!❤
I've been at C++ for about 3 years now. I reckon, if I could look at all of the projects I worked on over that time, I'd probably have a series of "oh that's the time I learned about x". It's nice to have such a versatile toolbox for problem solving.
Hello , I'm learning C++ now, and I really feel lost because I don't know from where should i start . PLEASE GIVE AN ADVICE HOW TO START LEARNING C++
Hey I have a video on learning resources that you might be interested in.
th-cam.com/video/uyvgYPkX_gM/w-d-xo.html
Thanks for watching!
This is one of the best pieces of programming advice I've heard in nearly 20 years as a software engineer. My experience was very similar. I got caught up on "finding the best, most efficient, cross-platform" way of doing a task, every time I wanted something fundamental as part of a program to do something else. Many of those programs never got written...
I'm about 3 years deep into programming now, mostly from the perspective of data analytics and applied math with a bit of control theory thrown in. I've been in a slump for probably the last 8 months, way too concerned about everything you brought up. You alleviated a lot of that for me, just knowing this is a normal thing for people to go through. Especially since I'm not really a traditional programmer. Thank you. I'm going to go write some code today.
no one's traditional... Hack that sh!t !!!!
The beauty of learning C++ is that it reveals the boundaries of what programming can do. It has so many features that other languages lack and you don't have to use them if you don't want to.
C++ seems to be getting easier as time goes by. The syntax is becoming cleaner and neater while lots of useful things are now baked into the standard libraries by default. Previously, you'd have to roll your own or rely on third-party offerings such as boost.
Oh christ, boost libs, good times haahha
I think this only makes it more complicated and overwhelming for newcomers instead of being easier.
The tutorials that use old "outdated" constructs still exists and the new ones are only applicable in some cases. This means that nowadays you will have to gain more knowledge in order to understand existing C++ code than you had back when C++98 was the current standard.
I’ve started learning c++ just this week and honestly, having something as simple as a weight converter through a couple of steps from how much you weigh to, having a simple number choice for a planet, and then having it convert that weight to what you’d weigh on that planet, and then debugging the whole thing myself was just super rewarding! I think I’m hooked although now I’m dealing with And, or, not and bool which is a bit harder but I’ll crack it eventually.
What I’m saying is the wins are rewarding, I’ve already had my head in my hands this evening but still it’s gonna get better! It’s the only way to learn. YT watching programmers in all fields is helping loads too so I appreciate the upload!
Learning JS but I think your advice is useful for anyone who's starting to code. Thank you for the encouragement!
My goal for the summer is to read the entire textbook of c++ programming written by D.S Malik. I want to become an expert at the basic usage of c++ before learning the advanced topics. C++ is my first language being a college student in CS.
I strongly recommend to just jump straight into programming and get your hands dirty. Write basic programs, look for implementation examples, try to understand them, rewrite, make mistakes and repeat
become an expert at the basic usage of c++. Just keep it there
That’s impressive! Your extensive experience with C++ over the years shows dedication and a deep understanding of programming. It’s great that you’ve been able to reflect on your journey and reminisce about your early goals. It must be rewarding to see how far you’ve come as a developer!
Thanks for sharing! I just started going to college a year ago for computer science and I am coding in C++. I originally started in java but switched to c++ because my java teacher said it would be more rewarding. I am super excited and I am glad I got to see this video.
I started programming C++ in the university, I believe mid-90s. At first it was hard and took a couple of years to pick the concepts of the OOP and the templates, then many years it took to learn not to abuse them and start writing clean code. As with everything, practice and keep in mind that people, including yourself, will need to read what you have written, and develop a clean style. Unfortunately, too many programmers try to show off and produce unreadable unmaintainable source code with deep class hierarchies, multiple virtual classes, huge templated code, etc.
clean code is bad. you had it correct at the beginning. the secret is to focus at a larger scope not single element thinking. having pointer nests that you must crawl through to delete objects is inefficient. look at arena allocators. this proves that
Thanks for that! In the early 70's I got an intern position and was being trained on Assembly Language. The original excitement I had when I was originally introduced to COBOL fizzled away so I took the next decade off to do just about anything else. I became excited again with the coming of personal computers, dBase and Foxpro programs and managed to hold a few gigs with those new skills. Today I am very happy working with microcontrollers in the Arduino ecosystem. Combine that with some CAD skills, PCB design and 3D printing I now can make a custom instrument product that some folks want to purchase.
great . what do you think about AI nowadays . and how far can effect on human carriers like software
Im a physics student and i feel comfortable working with a computer but i never really had the interest to learn coding until i need it it for some courses in my career. I had to learn python, matlab, a bit of C++ since then I've got a massive respect to the professionals of coding because the first thing i noticed was that you need such a patience for almost everything, even when you feel like hitting the damn screen when something is wrong with the code 😂.
hey, im also a physics student (1st year in college) and i passed the python exams like 2 weeks ago, any advice for studying math or solving physics problems?? i do really struggle studying sometimes
@@chelo5062 Hi, i finished all my courses already and I'm currently working on my dissertation, sometimes i struggle to sit and study too lol, I hate to put it this way but I do it with the best wishes towards you.
Depending on the background you have on math, physics etc. The journey will be more or less hard but not impossible, in my case it was hard due to having a bad background. But the things that helped me were to know that I really wanted to surpass my limits becoming better and of course being conscious of what are the implications of that.
Willing to sacrifice your hobbies, and other stuff so you can study. Not forever of course.
Knowing that to become a better student you need a lot of patience and work.
Knowing that you should enjoy the process, because it's slow. (Here is where you must ask to yourself if you really want to follow this path)
Once I accepted those things I felt kinda free to study without doing it for the reward or because I have to. Of course I'm not telling you that I've mastered of all that already, sometimes I feel like no wanting to study and play videogames and that is ok but shouldn't be done often.
Basically my tip is that you should wonder about why it's hard for you to study, identify the problem or problems and think how could you solve those and ofc do it.
@@Epilogue_04 oh, so the struggle is normal then, i think my worst weakness is that i come from high school where i never had to study half as hard as i have to in college, it's just about getting used to it ig. Btw where are you from? I saw your yt channel and you have some spanish playlists, im from Argentina. Thanks for answering and good luck on your dissertation, hope i can reach that point someday too.
i majored in Electrical Engineering and had zero interest in coding in the beginning.. i even hated Comp Sci I (which actually taught C++).. but then around junior and senior years i started having to code a lot for my regular classes.. was some MATLAB and some C programming too.. that's where i started really getting into coding..
i graduated college in 2008, and fast forward 15 yrs, i'm a senior software engineer now
As a physics student you may appreciate CERN ROOT and how C++ is used for scripting it. I am still puzzled why ROOT is unknown outside of particle physics, it is a great tool useful for nearly everyone.
Thank You for sharing Your thoughts and advice!
Your advice means alot to me! I totally agree. Thanks a lot!
Love love love your message and the tone of the video!
Looking forward to move vids about C++ and lowlevel, but more fundamentals like going DSA with C++ or embedded Raspberry Pi. Things that can teach CS fundamentals but also strenghths of C++ :)
Cheers!
I am on 2 years of programming. Firstly started with C++ and then switched to C# because of my job purposes. However, I never learned programming for the syntax or even for how complex it is. I wanted to create real products and software for anything that I need without thinking which language is best. Programming languages is a tool that I love using everyday.
Thank for the insight SyncMain and please dont stop doing what you love most.
2 years and already got a job?? wow
C# can certainly be helpful. At work, you can impress everyone by showcasing your skills in solving multiple problems.
Can you please suggest some really good projects in c++?!
Hey! Thanks for the advice. As a gamedev struggling to get out of the Unity/C# space and into the UE5/C++ space, this was something I needed to hear. As I look for a new job, I've realized I need some serious practice with both C++ AND my CS fundamentals. I've been struggling to find the "most efficient" route, because my time is so limited since I'm writing tools in python 40 hours a week for work.
But, the best way is A Way, Any Way!
hey what is your job actually, i want to know more about a work that is all writing tools with python
i'm curious about the reason to get out of Unity/C# space while you are already proficient in it?
@@eneskilicarslan currently i'm a pipeline engineer for an animation studio
@@HiepDuong-q8f i want to follow the game industry, and the industry at large looks to want C++ and UE5, not C#
man i needed to hear this
especially the part about starting the right way
thank you
Thank you for this. It’s so refreshing and rare to find a video where someone shares their genuine experience and that’s it.
I have recently begun learning C++ for approximately two weeks now in preparation for some math-related topics and graphical programming, particularly for OpenGL. Initially, I started with C# and have been coding in it for over a year. Transitioning to C++ turned out to be easier than I anticipated. While the syntax is different, and there are no garbage collectors, there are pointers, references, and a more manual approach. Surprisingly, I find that I enjoy it :). Although it is slower to write compared to most other languages, I am not bothered by it, fortunately. I've heard that C++ is often considered a language for masochistic people(laugh). Maybe I'm the exception?.
I don't know.
I think part of it is some C++ programmers who have been doing it for a while like to be a bit gate keepy about their secret special-held knowledge, or from people who haven't written in C++ but have only heard all of the horrible things that can happen when you use it improperly from other languages' evangelists. I'm glad you're enjoying it though! With enough time in the language you'll be writing code just as fast as you were in C#, just without all the nice .NET features :)
I'm just starting my C++ journey this was a great video. Thank you
I'm just starting my journey. Will be studying CS from Feb 2024 where they teach C#.
I just came across your video randomly and it was cool to hear your thoughts on your beginnings.
Will focus on the fundamentals and learn to debug - but as you mentioned, I will try to do more actual writing and fix my errors instead of getting stuck in tutorial videos.
Non-judgemental, non-biased, and all-around supportive advice that so many need to hear. Thank you for this!
Thanks for the advice. I've been programming for a year or so, and every piece of advice is useful and appreciated
I don't know why the algorithm recommended this video but I'm glad it did. I can see a lot of similarities in what you said about just getting started (imposter syndrome) and would love to know more about how you started as a lot of people gloss over it as easy as "develop something you'd enjoy using" - 15 years ago the technology was very different to today.
Happy to be subscribed for video #1 and hope you make a lot more. You must be blown away by the views/subscribers already.
There are concepts like RAII, smart pointers and nowadays things like coroutines that come from other languages, that are worth learning in C++ as well. So yeah learning C++ is worth it in the long run.
Some people would be on the opposite end of the spectrum, saying it's absolutely not worth learning these concepts in C++ - a waste of time.
There are differing opinions, so people should be critical. It's never as simple as "this is worth learning" and "this is not worth learning" because there are *always* differing opinions.
My favorite way of dealing with this is to spend a long time in one extreme, then spend a long time in the other extreme, and then judge what worked better.
raii is bad though. its just patching over a flaw in your architecture. the better thing to do is untangle lifetimes with memory arenas and use scratch space. treating the heap similar to the stack where you just free everything in one shot by using pools to allocate.
Thank you for this, I needed the motivation. recently I've started coding things I like vs coding what I think I need to code to learn "optimally". I'm going into my Junior year of college, the path up to now has been so hard with how the pandemic affected everything and the fact that besides some HTML and CSS, i knew nothing about programming. sometimes I feel like I'm not good enough to be where I am but then I remember about all the self-studying I've done and all of the hours I've put into this craft. That makes me feel more worthy. Thank you for your video once again.
Thanks for making this video brother! All the best 💪
Hey Chris, Thanks for your video.
Sometimes you just need to hear from someone with more experience that you're actually not doing a bad job. There is always something new to learn so don't sweat the small stuff.
I actually got stuck in the loop of worrying about doing things the wrong way and I would stop what I was doing and ask for advice. Instead of writing the code and then getting a review on it later. That way I can improve upon what I have already written.
I am shifting this now where I stop worrying about the right way of coding and focus on getting my code to do what I want it to, then I focus on optimization and cleanup before finally getting a review from the community on Git. I do this with PR checks :)
I write in C++ and Python :)
I've been in this field for as long as you have, and I couldn't agree more. Even though I'm not a C++ developer like you, I'm an ABAP developer. I've experienced similar feelings and fears, like wondering, "What if I write poorly structured code and someone notices?"
However, with time, I've come to understand that these concerns are all part of the journey. In every profession, individuals are bound to face judgment from others, and that's perfectly alright. Moreover, I've evolved over the past decade, just as any professional does. This growth applies to me both as a software developer and as an individual.
Wait!! 2008 was 15 years ago?!
We are getting old....
Thank you for this. Currently in my third semester of computer engineering. I learned C and now everything is in C++. It’s kind of weird but I can go through this. Hope you’re well.
Loved this video. I don't know why this is the most relaxing, comfortable video about programming, (that too C++, lol) I have ever seen. You deserve much more subscribers. Absolutely Loved it
Thanks for your honesty and advice. I'm currently in the same situation but with JavaScript. I was trying to learn Typescript and Angular and everything at the same and just hitting a wall and getting frustrated but before quitting I saw some video with similar advice to yours. Then I started from scratch just getting small things done learning the basics HTML, CSS and vanilla JavaScript and not only Im learning way more than a year ago, I'm enjoying it while being productive.
The Odin Project is a great way to learn web dev if you are interested in doing that!
for me, it was way more productive to start from react and come back to js whenever I need
@@dervaken3902 What experience do you have in the SWE industry? Most everyone I've heard talk about how to learn JS says to start with the base language and after you've built up your foundations to go learn a framework or two. I'd love to hear more about why you think going the other way works well for you.
Hi there Sir, well said. I have been told many times not to start with C++ because of the difficulty of the language but instead to learn C# which is
much easier. However, the engine I enjoy using is Unreal Engine which is based on C++, and even though I enjoy using visual scripting. I feel like learning the language behind it will be helpful when you want to customize your stuff beyond the norm. So to me, coding on something you enjoy will help the learning process quicker. I am entering this at a late age but if I have to focus on a single language on a game engine/framework I enjoy then why not? ;)
Learn your Data Structures and Algorithms, then maybe Design Patterns, per language, before you learn your frameworks and engines ;)
@@raffimolero64Thank you, I will keep that in mind.
I think C# is best for learning. It made me aware of things that are more hidden in languages like Python. Once you know one language properly it's fairly easy to transition. For data structures and algorithms (or general problem solving) practice leetcode is quite useful and offers a bunch of languages to do their tasks in.
Do you use C++ to develop Unreal? Or, how do you use C++ with Unreal?
@@peramoredellanalisi4341 You're using "Unreal C++" xD I can write code for my game now but pure C++ hell no
Amazing video! My first ever langauge was C++, and I can say that it was hard but totally expected when your new to programming. I was told not to start with C++, but with Python. But I feel like if I had started with Python, C++ would have been alot more frustrating. I developed a skill to debug in C++ that I never would have done with Python per say. So personally I think C++ is an amazing langauge to start with as a complete beginner to programming. Get traight into the sauce. My first ever project was a game eninge, I know, an extreme way to start your C++ journey. But It was fun, and that was the important part.
you should have started with c. unfortunately the industry is failing when it comes to education.
I've been programming in different languages for almost 20 years. You can always learn something new, and I completely agree with your advice. Thanks for sharing.
Thank you man. Thank you for the encouragement.
I think my experience with C++ is roughly 12 years. I guess major problem of language is that is does not define any standard for project files and it's very hard to write multiplatform code and use third party libraries at the same time. And then basically incompatible object oriented approach and templates. And then standard template library which is good in many ways, but it can hurt performance. Basically everything has alternatives with some pros and cons and it's important to know what to choose (except the cases when it does not matter at all). It's generally bad to stick to some dogmas. But core C++ is basically C and starting with language is not that hard. Quite important is to know when C++ is a proper tool and when it's not. You can do some kind of log analyzer in Python with statistics in graphs using regex, pandas and seaborn in 50 lines of code. Doing the same in C++ can take weeks (just choosing the right library for drawing graphs and linking it to your project - using Qt and QCustomPlot would be easiest, but there's a learning curve)
Can you please suggest some really very good projects in c++?!
As someone who went directly from block programming to learning C++, I'm very happy I did. Although it can be frustrating at times, it gives such a good understanding of programming as a whole, and it becomes ridiculously easy to learn new langauges.
Yeeeep true. I don't even remember most of the stuff I covered when learning it but I'm able to pick up other languages very easily now. Hoping to get back into it but its daunting because it's so expansive
Except of Rust :-)
Good advice! I've been programming in C++ since the early 1990s, back when I was a child. I've seen the language change dramatically over the years. I've written a lot of bad code during those years. With time, one gets better at it and starts to notice good and bad patterns.
It is very beneficial to study the theory: mathematics, software design patterns, data structures and algorithms... However, if you want to become a good programmer, nothing can replace the practice: you have to write a lot of code. It's infinitely better to write bad code than no code at all. Just don't trust your code to perform critically important tasks without thoroughly testing it (I think this is just as true for experienced programmers as it is for beginners, nobody is exempt from making mistakes).
C++ is not perfect, it has some terrible design choices. C++ code tends to be ugly. But it is still the most versatile programming language in my experience, and I think a tool that every programmer should know how to use.
The new comers believe they're smarter than elders because they can do what we do in a much easier way. But, C programmers are the ones who gave life to computing, not Python-GPT coders or new JS frameworks fans.
You are so humble but your words are strong!
Thank you for your words of encouragement, may God Bless you
This made my day more than you think. I've been really working hard trying to automate my company and learn software engineering and I'm studying code and I'm learning all this stuff and not sure if I'm doing it right but I keep getting smarter so I know it's working and I kind of had a little tear in my eye so I appreciate your video thank you very much.
Good evening! I'm someone who has worked in development for over 10 years, but not as a coder. Obviously still, being part of the development team I had to learn concepts how things work, but I never learned to code myself.. so I started to learn on my own. From my own experience I would suggest people to learn Python or similar first, but only the fundamentals like variables, loops, functions, classes etc. and then move to more "in-depth-language".
I learned Python only for few months before switching to C++ and I found it to be much more interesting, because it helped (forced!!) me to understand why things are done in a certain way when coding and how things really work under the hood with memory allocation for example. What I learned and what kind of programs I could code increased exponentially after I had switched to C++ and had the "fundamentals" already in control. I'm still learning and coding C++ everyday
C++ (going low level) is not the only way to add depth. if you have time to spare, i recommend looking at a Functional Programming Language. these require way less code even than Python, but that does not mean it's easy. and Functional Programming really changes the way you think in other languages. Relational Database design (ER Diagrams) and the SQL language is another thing i recommend looking at. what you are doing now seems like more of the same (Imperative Programming) only with more details. just throwing that out there
@@xybersurfer Hey dude.. this reply is late, but it doesnt matter. You had a good point there.. I was familiar with functional programming, but hadnt really deep dived into the paradigm yet. I started and learned using Haskell which is completely functional and it did work wonders. It forced me to think differently (as you said) and even tho in work life its unlikely that I get to code Haskell (unfortunately), but most of the things that I learned can be transferred to imperative languages easily. I think the process of learning it and actually coding some programs with it made me a much more competent programmer than I was before. Also your second suggestion was good, but Im already familiar with SQL and ER-diagrams. Thank you man! And have a nice autumn (or whatever season you happen to read this).
@@MikkoPartanen-y8r hey, that's awesome to hear! :). you picked a nice language. Python, C++, SQL & ER-diagrams, Haskell yeah you sound pretty competent :D. glad you liked my suggestion. i similarly also don't get to use Functional languages at work, but use some of the style. it's nice of you to follow up with some feedback. thanks. you also have a nice autumn and have fun!
We started programming at the same time! I was writing C++ back in 2008 as well. I switched to other languages, but it was really cool to hear the perspective of someone who stuck to it for 15 years.
I've been in C++ game development for about 5 years now and I've had this weird thing where I feel like my mastery of the language syntax/more obscure featureset is actually going down over time. 99.99% of the time I am writing pretty basic stuff. Usually using overly fancy patterns and over-engineered early abstractions is a serious code smell. Code is read way, way, WAY more than it is written. Simplicity is the fucking king. Keep shit straight forward. And keep shit CONSISTENT. After you finish touching a file nobody should be able to tell that you bolted on new functionality. It should blend in as if it was always there. Knowledge of weird C++ tricks doesn't really help you in the industry. What really matters in a professional setting is quick code navigation/comprehension and good communication skills. That's it.
I’m literally in c++ rn questioning everything and this gem a video to get at this point in my life. Thank you!
I just started to code 3 Months ago in C# and honestly have been, without realizing, very fixated on how my progress or how my learning speed compares to the ones I look up to.Seeing someone with a lot of experience talking about stuff like this really helped me to return to coding with a more positive mindset. Also kind of reminded me of Bob Ross's mentality :-)
0:15 me too bro , I keep everything!
I've been learning to code since high school and currently in college. This describes my situation too well! I learn extremely well in classes because I'm forced to do everything in a certain way, using old and "bad" languages. But when teaching myself or building side projects, I never accomplish anything. I get stuck on choosing languages and frameworks and start thinking about deployment before writing a single line of code. If I start writing code, I sink into endless refactoring before anything is even working. I'm just too worried about doing it "the wrong way." Even as I clicked on this video, I wanted to see some advice about writing clean code or managing complexity or organizing code.
I used to think "don't be afraid to make mistakes" is such a dumb advice, but here I am, learning to not fear mistakes. Thank you for saying exactly what I needed!
i wrote 3 or 4 different chess bases for my chess project since 2019. never finished one of them.... i feel this comment so hard lol
Wow im in same situation!! 🙃
I was teaching myself C++ a few months ago and, honestly, it came so naturally to me it was kind of a shock. I liked the problem-solving, I liked everything about it, I just "got it" in a way I never really have with anything else. I kind of felt bad about dropping it, but there's not a snowball's chance in Hell of me actually getting a job in the field and I don't need another hobby, so I didn't see the point in continuing.
because you should learn c first before c++. really understand pointers and how memory works. its a prerequisite
Thank you very much. I am now almost 1 year into programming and what you said really resonates with me. I will improve by writing bad code!
And then writing better code ofcourse
Thank you for the advice. I will employ it over the next few months and see how it does for me.
Something is satisfying about IT videos being 4:04 long
15 years........That's a loooooooooooong time. I been on this earth for only 18 now.......This man has been coding for more than 80% of my life. That's insane to me
I've been a C programmer for 35 years and I'm smiling smugly after watching this clearly broken man :-)
As a retired C/C++ programmer who has not looked at any code for 3 years, it is interesting to hear and read about what today's software geeks like and dislike about languages. We all have preferences, depending on your needs and work habits. There is so much information out there to digest. It helps to keep an open mind.
My first programming language was C++, and it's still the reason I love programming. Thanks for sharing your experience! I wasn't sure if what I was planning on doing now in my career was okay, but this video just gave me more confidence in my plan. Thanks again!
God like dude)
Im started to learn c++ because its must have in programming graphics(opengl). And want to make indie games or write own tiny game engine. But now im coding at c language(sry for english:)) with raylib. Its very simple and fun. Thanks for video
Nice, I too may start learning opengl the later half of this year
I hadn't heard of raylib before, it looks cool! If you're into indie games you probably already know about itch.io, but if not you should check out the developer community there. Lots of people learning and sharing there, I'm sure you'll find something relevant to your interests.
SyncMain's conclusion is spot on. I'd use the word practice. Practice writing, designing, debugging, diagnosing, re-writing, re-thinking. I started in C back in the 80's, moved to C++ in the very early 90's, and I'm currently making software in C++ 20. SyncMain's other message, opposing the C++ warnings from the public, is also spot on. If your targets require other languages then there's no reason to use C++ instead, but if your targets require C++ you shouldn't avoid it. It does require expertise, and that is one of the flaws of the language. Not everyone is suited to it. However, I can say from decades of experience, I have zero...zero...of the issues you read about "warning" about C++. I did have them, long, long ago, especially when I worked in C. My experience and training puts me in the position of automatically choosing better methods to write software, no matter what language I use. By far, C++ is my favorite and where I am most productive, but I have practiced long and hard. Consider, too, if you would really want to use software (if it is important software to you) that was built by someone without experience, expertise and serious knowledge. With that, the languages are less important than how they are used and what options those languages provide for solid, fast, efficient and reliable final products.
So, you confirm that what people say about the C++ safety problem and that should be replaced by Rust is basically nonsense?
I think C++ has been wrongly targeted by many who just get obsessed with another language or are inherently scared by the steep learning curve. A language doesn't stay on the market for so long for no good reason.
Well said. I also agree that it is much more important to achieve your goal, than to struggle or even give up midway because you can't do it the way some group of people want. In time, you'll definitely learn what is good practice, what is a bad approach, and you'll begin to understand why are other people recommending the other ways and design patterns, why do these languages and frameworks solve the problems the way they do etc. You can always refactor later, so don't be afraid if it doesn't turn out the best for the first few tries.
Languages are just tools. To me, there's no good or bad language in general. It always depends on the task you need to do. You have to pick the language and even framework that helps you the most to accomplish your goal for the right needs (system, performance, timeframe). Your choice is right if you don't feel that you're fighting against every tool constantly. And that's why you can't skip learning the language and practice coding in it. Without practice, you are never going to "level up".
If I also looked back the code I wrote as a novice in around 2007, I would also change several things to make the code more safe, testable, readable, and reusable.
Thank you for this! I think a lot of programmers (both old and new) need to hear this.
First video on the channel and TH-cam already favors you. Looking forward to your upcoming videos as an experienced programmer
This is not only good advice for programming, but for many, many things! Maybe even life itself? Do not be afraid to make mistakes, just learn from them, if not the first time then the second or third or many attempts more. ENJOY LEARNING ❤
I started learning C++ since it's the first programming course you can take at my college this semester. After hearing everyone talk about how it is "the worst language" you can start with because it's incredibly difficult for years, I felt a mix of emotions when I started learning a few months ago. It honestly boosted my ego for a bit. While I definitely have much more to learn and struggle with understanding the basics (like strings and loops), I still have a ton of fun! It's frustrating, but it feels so good when your code runs!!
That makes two of us, as I started to learn C++ this semester too. Good luck! It's been a challenging but fun journey so far.
If you think C handles strings and loops oddly, you should check out some of the Esolangs that are out there. The Iteration code in them will melt your brain!
I just started with C++ learning from an Android device I don't have enough money to buy a computer. Now I'm going to learn pointers but it's really hard to get how memory, bit streams. I wanna understand it deeply in order to developer my own OS in the future.
Well hopefully even if you can't buy a computer you live in an area where you can use one for free, either at local schools or libraries. It's very helpful to be able to step through code that you write and see how the values change. For now I think it's great that you can read and practice from your phone
This is one of the rare videos I wanted to thumbs up continually as I watched it. Thank you for your encouraging thoughts.
How come you're verified and just have 4 subscribers?
Thanks for making this video! I'm brand new to programming - well, technically, I learned to code in Minecraft Bedrock, but now I'm focusing on learning C++. I'm still a total noob. But I'm sticking with it. I have no pride in the game, so I have no issue writing terrible code so that I can learn from my mistakes. I'm very excited to eventually be able to write the programs that I have in my head!
Someone told me 10 years ago to never learn C++. I went with Java instead. Biggest mistake.
The only thing I think c++ lacks a decent package manager like pip or npm. for c++ packages you need to look forward to your os package managers like apt and others which are not very much intuitionistic. I hope c++20 modules are the stepping stone.
vcpkg is pretty good. It's not quite on the level of cargo, pip, or npm, but it's decent.
conan