3
$\begingroup$

I have heard a lot of people saying C++ is a hard language to learn and is not a good language to start. I myself am a beginner in programming and have jumped straight into C++ as soon as I heard that being a programmer is way more useful for creating games compared to someone who just knows how a game engine works(Its what I heard). So far, I enjoy learning it and have not found it difficult to understand. But I have also heard that it gets harder as you progress. The reason why I decided to learn C++ in the first place is so that in the future when I turn 18, I'll be one of the top choices for big companies and be able to be more experienced than my fellow programmers in the future since C++ is the main language used by big industries. Should I stop now and learn a different language like C or C#?

$\endgroup$
5
$\begingroup$

I wouldn't fuss too much over whether a language is "hard" or "easy". There are plenty of reasons to learn a language. Learning for a career is a great reason!

Languages are usually organized around certain central ideas. Haskell is a pure functional language, Eiffel is a pure Object Oriented language, and C is designed to reflect very closely what a processor does. C++ is designed to be a cross between C and object oriented programming, so there are several different paradigms at work at the same time. That can make it a little more difficult to learn because there are simply more concepts at play. However, the early basics should be fairly easy in any language.

C++ does appear to be the most heavily used language in the gaming industry. However, there are a few caveats:

  1. What sort of games would you like to be involved with making? Browser games rarely use C++.
  2. Languages change, but concepts are long-lasting. While learning, keep pushing yourself to learn new ideas, not just new procedures. That way, you'll be better positioned to switch over to a different language if it turns out that the wonderful gaming job you land is actually in HTML5, or Python, or in some language that hasn't even been invented yet.
$\endgroup$
  • 2
    $\begingroup$ In my experience, people only begin to really understand programming once they have three very different languages under their belt. $\endgroup$ – pojo-guy Feb 6 at 4:24
  • $\begingroup$ @pojo-guy Agreed. :) $\endgroup$ – Ben I. Feb 6 at 13:04
  • $\begingroup$ If you want good C++ programmers, first teach them how to program correctly. It is a general competence, and C++ is definitely not the best way to learn it, because it is very complex language. They'll learn C++ later, if they need it. $\endgroup$ – Michel Billaud Feb 7 at 9:43
  • $\begingroup$ @MichelBillaud It wouldn't normally be my favorite choice for a first language, but in the spirit of "The best workout is the one you'll actually commit to and do", I'd say if OP finds it motivating, then it's where they should start. $\endgroup$ – Ben I. Feb 7 at 21:49
  • $\begingroup$ @Ben I Actually, a big difference between "recommending to someone who insists on learning C++", and "recommending as a first language to indifferent learners". Studies show that C++ as 1st language leads to the highest failure and quitting rates. $\endgroup$ – Michel Billaud Feb 9 at 9:32
2
$\begingroup$

welcome to our community ;)

Is learning C++ recommended for beginners?

In general, I would suggest that it is not the optimal choice for a beginner, since there are other languages out there that are powerful, widely supported, used in a range of industries and (perhaps most importantly for a beginner) have a simple syntax with powerful features. I am thinking specifically of Python in this regard. You can even learn many of the "classic" game concepts and code games using PyGame or arcade- two libraries that provide a lot of support for game development.

Reading further into the details below the initial question posed- in your particular case, given that you are grasping it at the moment and not experiencing any difficulty as yet- I would say Go For It!

Keep going and when you have difficulties, do some research, watch YouTube videos, take some of the brilliant MOOCs that are out there, code for fun and pleasure, to achieve a goal, and keep going. It sounds like you are highly motivated, and that is one of the MOST important things!

In summary- in general, no- Python (imho). In your case- Yes!

$\endgroup$
  • $\begingroup$ Hey, I just wanted to let you know that if you'd like to chat with some of the other folks in our community, there's a chat room where you can do that. Just wanted to make you aware of it, in case you hadn't seen :) $\endgroup$ – thesecretmaster Feb 2 at 2:17
  • $\begingroup$ @thesecretmaster thanks. I'm in a different time zone so no-one there atm. Will check in earlier next time :) $\endgroup$ – srattigan Feb 2 at 21:03
  • $\begingroup$ for each programming language L, there is at least one person P who recommends it as a first language for some reason R. $\endgroup$ – Michel Billaud Feb 7 at 16:24
1
$\begingroup$

Yes some people recommend it. These are the “What is use in industry?” people. However this is the wrong question, it may be easier and quicker to learn several languages first.

My experience

I have tried to hire C++ programmers. It is very hard, there is a lot of variance between claims and reality. Most people claiming many years of C++ can not write good program (bug-free, easy to maintain …), and graduates have no clue. I could never again try to hire C++ programmers. It is better to hire good programmers, that know another OO language, and cross train. Eiffel is a good OO language to learn OO well. Java, C#, javascript are other popular languages, that while not as bad as C++, are far from ideal teaching/learning languages.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.