Answers.Body: <p>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.</p>
  <h1>My experience</h1>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-06T12:13:19.337Z
Answers.LastActivityDate: 2019-02-06T12:13:19.337Z
Answers.LastEditDate: 2020-06-18T08:36:57.023Z
Answers.UserDisplayName: ctrl-alt-delor
Answers.Body: <p>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!</p>
  
  <p>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.</p>
  
  <p>C++ does appear to be the most heavily used language in the gaming industry.  However, there are a few caveats:</p>
  
  <ol>
  <li>What sort of games would you like to be involved with making?  Browser games rarely use C++.</li>
  <li>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.</li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-06T04:24:14.740Z
Answers.Text: In my experience, people only begin to really understand programming once they have three very different languages under their belt.
Answers.UserDisplayName: pojo-guy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-06T13:04:13.130Z
Answers.Text: @pojo-guy Agreed.  :)
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-07T09:43:52.060Z
Answers.Text: 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.
Answers.UserDisplayName: Michel Billaud
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-07T21:49:10.280Z
Answers.Text: @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.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-09T09:32:09.993Z
Answers.Text: @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.
Answers.UserDisplayName: Michel Billaud
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-09T14:07:31.900Z
Answers.Text: @MichelBillaud Interesting!! Do you have a source for that? I'd like to read further.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-09T17:00:27.557Z
Answers.Text: « Failure Rates in Introductory Programming Revisited », by Watson and Li; http://dro.dur.ac.uk/19223/
Answers.UserDisplayName: Michel Billaud
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-09T23:27:25.017Z
Answers.Text: @MichelBillaud It doesn't appear to be a statistically significant result: "The percentage of passing students appears to be
  lower for C (61.1%) and C++ (56.2%) however the differ-
  ences are not significantly different to the other languages
  whose pass rates are in the range 65% to 75%. This result is
  consistent with the work of [2] who also found no significant
  differences in pass rates based upon the language taught."
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-10T21:25:57.420Z
Answers.Text: I'm a bit puzzled by these remarks in the paper considering fig 5. where C++ has say 39 % non pass rate and Python has 26. 
  With such figures, I'm a bit reluctant to agree with  "In Figure 5 it can be seen that the mean percentage of non-passing students does not vary considerably by programming language."  Are they referring to their category of "others" at 33 ?
Answers.UserDisplayName: Michel Billaud
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-01T19:03:54.973Z
Answers.LastActivityDate: 2019-02-01T19:03:54.973Z
Answers.UserDisplayName: Ben I.
Answers.Body: <p>welcome to our community ;)</p>
  
  <blockquote>
    <p>Is learning C++ recommended for beginners?</p>
  </blockquote>
  
  <p>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.</p>
  
  <p>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 <strong>Go For It!</strong></p>
  
  <p>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!</p>
  
  <p>In summary- in general, no- Python (imho).  In your case- Yes!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-02T02:17:17.363Z
Answers.Text: 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](https://chat.stackexchange.com/rooms/59174/the-classroom) where you can do that. Just wanted to make you aware of it, in case you hadn't seen :)
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-02T21:03:44.517Z
Answers.Text: @thesecretmaster thanks.  I'm in a different time zone so no-one there atm.  Will check in earlier next time :)
Answers.UserDisplayName: srattigan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-07T16:24:19.410Z
Answers.Text: for each programming language L, there is at least one person P who recommends it as a first language for some reason R.
Answers.UserDisplayName: Michel Billaud
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-01T21:00:00.673Z
Answers.LastActivityDate: 2019-02-01T21:00:00.673Z
Answers.UserDisplayName: srattigan
Body: <p>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#?</p>
  
Tags: <self-learning><c++>
Title: Is learning C++ recommended for beginners?
ThreadText: # Is learning C++ recommended for beginners?
  
  (Asked by: username_0 on 2019-02-01)
  
  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#?
  
  **Tags:** self-learning, c++
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_2 on 2019-02-01. Score: 6 | Accepted answer
  
  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.
  
  > **Comments:**
  > **username_3**: In my experience, people only begin to really understand programming once they have three very different languages under their belt.  
  > **username_2**: @username_3 Agreed.  :)  
  > **username_4**: 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.  
  > **username_2**: @username_4 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.  
  > **username_4**: @username_2 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.  
  > **username_2**: @username_4 Interesting!! Do you have a source for that? I'd like to read further.  
  > **username_4**: « Failure Rates in Introductory Programming Revisited », by Watson and Li; http://dro.dur.ac.uk/19223/  
  > **username_2**: @username_4 It doesn't appear to be a statistically significant result: "The percentage of passing students appears to be
   lower for C (61.1%) and C++ (56.2%) however the differ-
   ences are not significantly different to the other languages
   whose pass rates are in the range 65% to 75%. This result is
   consistent with the work of [2] who also found no significant
   differences in pass rates based upon the language taught."  
  > **username_4**: I'm a bit puzzled by these remarks in the paper considering fig 5. where C++ has say 39 % non pass rate and Python has 26.  With such figures, I'm a bit reluctant to agree with  "In Figure 5 it can be seen that the mean percentage of non-passing students does not vary considerably by programming language."  Are they referring to their category of "others" at 33 ?  
  
  ---
  
  ### Answer by username_5 on 2019-02-01. Score: 3
  
  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!
  
  > **Comments:**
  > **username_6**: 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](https://chat.stackexchange.com/rooms/59174/the-classroom) where you can do that. Just wanted to make you aware of it, in case you hadn't seen :)  
  > **username_5**: @username_6 thanks.  I'm in a different time zone so no-one there atm.  Will check in earlier next time :)  
  > **username_4**: for each programming language L, there is at least one person P who recommends it as a first language for some reason R.  
  
  ---
  
  ### Answer by username_1 on 2019-02-06. Score: 1
  
  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.
  
  
  ---
  
  