Why I Dont Recommend Starting with C++


First let me say, C++ is a great language. It is still the preeminent language for game development among AAA studios and there are many reasons for this. What it is not, in my opinion, is a good language for beginners to start with.

This video tries to explain why. In fact, it shows why. In the following video we will actually implement the same simple starter project in three different languages, C#, C++ and Lua/Love. The example is completely contrived and is typical of the kind of project a day 0 programmer might want to accomplish.

I think I accidently swore once or twice, so mild NSFW warning.

Once again let me make this first clear… I am not saying NOT to learn C++, it’s an invaluable skill if you want to learn game programming. I am just strongly recommending against starting with C++, for reasons this video hopefully makes obvious.



  1. What this guy says is true. I started with Java. Learning C++ after that was easier to learn. Start with a simple language. Maybe C# or Python since nowadays a lot of game engines use those. Then switch to C++

  2. I started with c++ because I wanted to do games. After working as an engine dev at a few studios, I still recommend learning c++ as your first language.

  3. my problem is I am used to C from working on embedded systems

    and C# seems unfathomable to me
    the class system is confusing

    I tried to learn C# to do a game on Unity for fun but I need to get used to the class system
    but there are lots of tutorials on C# and people seems to believe that C# should be easier so I well try again

  4. Thank you that was extremely helpful, I've been thinking of using C# because C++ is fucking my in ue4 and you explained why my games keep breaking. I'll try LUA or C# Thank you so much

  5. You have a point, I see, even though I do not agree, you have a point. Yeah, it's a valid point, but I would suggest people learning to not be superficial before being productive. Like, learn the basic before trying to build any graphical application. If you cannot understand what 10 lines of code are doing to draw a circle on your screen, you should probably not be drawing it.
    Anyway, you have a point and I respect it.

  6. I’m currently learning c#(close enough to c++), and a lot of people are saying to not do it. I’m still kind of young so I don’t really know yet. Can anyone give me advice?(I JUST started learning the language.)

  7. dont use any third party lib when you are new.l think you can make consol games at first not huge graphics things it will help you for anderstanding to coding and memory management.

  8. I really like c++ … but recently I've started doing some home projects in Python.
    The work flows so nice. It's great to be able to download/install new modules in two seconds just by writing "pip install ____" into cmd and for them to just work.

  9. C is my first language.
    C++ is the second.
    Actually my first language is HTML, but, HTML is not a programming language, thus, C is my first language.

  10. The real problem I find isn't learning how to program, it's memorizing the API/Functions, learning where to find them, learning how to read them, and learning how to use them after learning how to use C/C++ itself.

    You know, the stuff everyone leaves out.

  11. thats an advice for the WEAK, this is a real men advice, start with c++ or even assembler and you might be the next john carmack

  12. Honestly, C++ is the most transferrable language out there once you have learned C++. I disagree C++ is bad for beginners. It's also really not that hard in terms of the basics. Just like how C isn't difficult, despite being obsolete now (from a total beginners perspective it is not difficult to see many very basic programming concepts are not obsolete by the way. Plenty of stuff there is universal to any programming language, think loops, if statements, variable decelerations etc. etc. What I mean is that even old outdated C has its value in terms of learning programming. It just wouldn't really be beneficial in terms of making programs.). I would also kind of disagree that C++ is 'build on C'. C++ having language specific quirks is as much part of a learning curve as really any other language. Yes, there's no automatic memory management in C++, contrary to say Java or C#. However it's not the end of the world understanding those fairly basic things and implement them yourself. Yes, one can mess up code in those areas, whereas automatic memory management presumably won't. However do realise your argument against C++ is largely 'it has a steep learning curve in setting things up, so best not bother', not much more against the language itself or its capabilities. Despite the fact that C++ is the industry standard for most things. The sooner someone learns C++, sticks through the learning, the better a programmer someone becomes. People also aren't wrong saying someone isn't a programmer yet until they have mastered a language like C++, which should be telling.
    Obsolete stuff in tutorials really is a way way different issue altogether. Has literally nothing to do with C++ itself. I'm sure there are good books on C++, just as there are (many) bad ones.

  13. Good advice. I just wish I had someone telling me this and showing me examples of how easy it is to do these things in other languages before I had started game programming…

  14. @Gamesfromscratch do you have any recommendations on what the best C++ books that are good to start out with? Last time I tried to learn C++ was 10 years ago and so Im sure the best books to use have totally changed.

  15. i'm new to programming. and i've never had the difficulty that this guy is showing. i personal like all 3 of the c's and visual studio for its intuitive help and debugging. i'm not an experienced programmer, but i like the idea that you can trace step bye step of whats going on. i fined it easy that you can switch between the c's. there are language differences but the general idea is the same. so i can learn something on one and apply it to another with out a lot of difficulty. if i end up with an error, its 90% my fault form a typo .
    as a new programmer learning. would would say its not scary to learn c++ and its was my beginner language of choice.

  16. I started out using BASIC as my first programming language. BlitzBASIC to be exact. Then moved to Java/JavaScript. But, when I started being able to make the games that I wanted to make with just BASIC, Java/JavaScript, I never had a reason to use C++. I've been able to do everything that I needed with the above 3 languages. However, I'm a hobby game developer.


Please enter your comment!
Please enter your name here