Answers.Body: <p>I want to tack on to Buffy's answer by focusing on one line from your question: "<em>I want</em> him to learn C++,Java,Html" (emphasis added).</p>
  
  <p>The bigger question should be "What does <em>he</em> want to learn?" </p>
  
  <p>Part of the beautiful challenge that is teaching is getting students to want to learn what we want to teach them. What has your brother shown interest in? What has he told you that he wants to learn? What are his hobbies? How could something about those hobbies be expressed/constructed in a program? Above all else, <strong>where do his interests align with what you can teach him?</strong></p>
  
  <p>I'd encourage you to read <a href="https://cseducators.stackexchange.com/questions/1408/how-do-i-approach-teaching-python-to-12-year-olds-as-a-first-time-teacher">this thread</a> about starting students in Python, <a href="https://cseducators.stackexchange.com/questions/3957/engagement-advice-on-creative-computing">this thread</a> on engagement with computing, <a href="https://cseducators.stackexchange.com/questions/4183/programming-language-for-teenagers">this thread</a> about programming languages for teenagers (shout out to Processing!), and <a href="https://cseducators.stackexchange.com/questions/5204/what-is-good-age-to-start-learning-programming">our recent HNQ</a> about the age at which students should begin learning programming.</p>
  
  <p>Make it fun and engaging for him. Have him build a game, one that he himself would want to play. The language skills will come with time (and intellectual maturity). What you can do now is two-fold: pique his interest for the future and teach him the essential concepts of computational thinking that underpin programming in any language.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-11-12T08:22:32.610Z
Answers.LastActivityDate: 2018-11-12T08:22:32.610Z
Answers.UserDisplayName: Peter
Answers.Body: <p>I have tried to learn and teach <code>C++</code>, I have seen others try to learn or teach it. I have seen people come out of university, having “Learnt it”. I have seen no success. None of these people have learnt it well, few have learnt it at all.</p>
  
  <p>The only exception are those that first learn another OO language. </p>
  
  <p>The best OO language to learn first is Eiffel. However I would not start with OO (For anyone). For a 7 year old, I would start with Scratch.</p>
  
  <p>Consider also, not using a computer at all until age 11. That is no computer at all: no desktop, no laptop, no tablet. There is much computer science that can be learnt without a computer. See CS-unplugged. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-11-12T10:36:57.427Z
Answers.LastActivityDate: 2018-11-12T10:36:57.427Z
Answers.UserDisplayName: ctrl-alt-delor
Answers.Body: <p>C++ seems like an awfully steep climb for someone that age with no experience. I'm not sure what educational resources are available directed at that age. </p>
  
  <p>I'd suggest that you start out with something more forgiving. Python has been a pretty good choice and has an OO core without quite so many "guns, knives, and clubs" which was an original description of the difference between Java and C++. </p>
  
  <p>Most important, however, is that there are materials available for both Python and Java that are directed at younger learners. </p>
  
  <p>In Java, for instance, the <a href="https://www.greenfoot.org" rel="nofollow noreferrer">Greenfoot system</a> provides a graphical system that provides both a visual environment and a fairly strong programming support environment that is amenable to younger learners. </p>
  
  <p>I don't know of anything quite comparable in Python, but there may be some things. </p>
  
  <p>One of the things that you might want to think about is that a new learner doesn't need to start with a bare screen and no support, building everything as they go. Virtual worlds can be constructed, by teachers or authors, that enable a beginner to do interesting things much earlier than they can if they just start by learning int variables and <code>if</code> statements. If you spend all of your time learning syntax and low level ideas you may not get to do anything interesting and so get bored easily. Better in many ways to work in and modify an existing system (in well considered ways) than to have to build up from nothing. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-11-11T15:33:11.290Z
Answers.LastActivityDate: 2018-11-11T15:33:11.290Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>It's okay, but I think it's a bad idea. </p>
  
  <p>I've taught my kids C++ when they were age of 9 using a beginner book on building a game using C++ after they had a brief education on Scratch and Python. They liked it, but I thought it was a waste of time because the language, toolsets and many of study materials are not kids friendly. Almost everything about C++ slows them down compared to higher-level languages such as Python and JavaScript. </p>
  
  <p>The better order for kids to learn programming is Scratch -> Python -> JavaScript. Once they build a solid foundation how to program and solve problems with Python and/or JavaScript (this will take at least a year or two), you may consider teaching more advanced languages such as Java and/or C++.</p>
  
  <p>Unlike olden days when there were good reasons to learn Java or C++ as a language of choice, the benefit of learning Java or C++ is shrinking fast for beginners these days because there are so many materials and opportunities available for easier languages and growing support for those languages. For example, many programming competition websites and event the UASCO training site support Python. In the past, many of sites only supported Java and C++.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-11-19T23:30:28.707Z
Answers.LastActivityDate: 2018-11-19T23:30:28.707Z
Answers.UserDisplayName: Jason Huh
Body: <p>I was thinking this for quite long, should i teach my little brother about programming in the age of 7-8? Because it will help him in the future in 12th standard and in university life. I want him to learn C++, Java, Html.</p>
  
  <p>What do you think should i start teaching him or let him grow more till 10 or 12?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-11-11T13:54:20.560Z
Comments.Text: Does he seem interested?  Can you give some more context about why your question is substantively different than [this one](https://cseducators.stackexchange.com/questions/5204/what-is-good-age-to-start-learning-programming)?
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-11-11T15:55:13.893Z
Comments.Text: The tags on this seem wrong.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-11-12T10:39:18.927Z
Comments.Text: I have removed tag-highschool (7 year olds don't go to high-school).
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-11-12T18:29:39.577Z
Comments.Text: C++ is the language of the (language) lawyers. I believe nobody should program in it, unless one is forced to (e.g. by clock cycle requirements). C++ programs 'done right' tend to be overly complex and large (there are some nice presentations by John Lakos if you are interested)
Comments.UserDisplayName: lalala
Tags: <java><language-choice><programming><c++>
Title: Is it okay to teach C++ to my 7 year old brother?
ThreadText: # Is it okay to teach C++ to my 7 year old brother?
  
  (Asked by: username_0 on 2018-11-11)
  
  I was thinking this for quite long, should i teach my little brother about programming in the age of 7-8? Because it will help him in the future in 12th standard and in university life. I want him to learn C++, Java, Html.
  
  What do you think should i start teaching him or let him grow more till 10 or 12?
  
  **Tags:** java, language-choice, programming, c++
  
  > **Comments:**
  > **username_1**: Does he seem interested?  Can you give some more context about why your question is substantively different than [this one](https://cseducators.stackexchange.com/questions/5204/what-is-good-age-to-start-learning-programming)?  
  > **username_2**: The tags on this seem wrong.  
  > **username_3**: I have removed tag-highschool (7 year olds don't go to high-school).  
  > **username_4**: C++ is the language of the (language) lawyers. I believe nobody should program in it, unless one is forced to (e.g. by clock cycle requirements). C++ programs 'done right' tend to be overly complex and large (there are some nice presentations by John Lakos if you are interested)  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_5 on 2018-11-12. Score: 4
  
  I want to tack on to username_2's answer by focusing on one line from your question: "*I want* him to learn C++,Java,Html" (emphasis added).
  
  The bigger question should be "What does *he* want to learn?"
  
  Part of the beautiful challenge that is teaching is getting students to want to learn what we want to teach them. What has your brother shown interest in? What has he told you that he wants to learn? What are his hobbies? How could something about those hobbies be expressed/constructed in a program? Above all else, **where do his interests align with what you can teach him?**
  
  I'd encourage you to read [this thread](https://cseducators.stackexchange.com/questions/1408/how-do-i-approach-teaching-python-to-12-year-olds-as-a-first-time-teacher) about starting students in Python, [this thread](https://cseducators.stackexchange.com/questions/3957/engagement-advice-on-creative-computing) on engagement with computing, [this thread](https://cseducators.stackexchange.com/questions/4183/programming-language-for-teenagers) about programming languages for teenagers (shout out to Processing!), and [our recent HNQ](https://cseducators.stackexchange.com/questions/5204/what-is-good-age-to-start-learning-programming) about the age at which students should begin learning programming.
  
  Make it fun and engaging for him. Have him build a game, one that he himself would want to play. The language skills will come with time (and intellectual maturity). What you can do now is two-fold: pique his interest for the future and teach him the essential concepts of computational thinking that underpin programming in any language.
  
  
  ---
  
  ### Answer by username_3 on 2018-11-12. Score: 2
  
  I have tried to learn and teach `C++`, I have seen others try to learn or teach it. I have seen people come out of university, having “Learnt it”. I have seen no success. None of these people have learnt it well, few have learnt it at all.
  
  The only exception are those that first learn another OO language.
  
  The best OO language to learn first is Eiffel. However I would not start with OO (For anyone). For a 7 year old, I would start with Scratch.
  
  Consider also, not using a computer at all until age 11. That is no computer at all: no desktop, no laptop, no tablet. There is much computer science that can be learnt without a computer. See CS-unplugged.
  
  
  ---
  
  ### Answer by username_2 on 2018-11-11. Score: 2
  
  C++ seems like an awfully steep climb for someone that age with no experience. I'm not sure what educational resources are available directed at that age.
  
  I'd suggest that you start out with something more forgiving. Python has been a pretty good choice and has an OO core without quite so many "guns, knives, and clubs" which was an original description of the difference between Java and C++.
  
  Most important, however, is that there are materials available for both Python and Java that are directed at younger learners.
  
  In Java, for instance, the [Greenfoot system](https://www.greenfoot.org) provides a graphical system that provides both a visual environment and a fairly strong programming support environment that is amenable to younger learners.
  
  I don't know of anything quite comparable in Python, but there may be some things.
  
  One of the things that you might want to think about is that a new learner doesn't need to start with a bare screen and no support, building everything as they go. Virtual worlds can be constructed, by teachers or authors, that enable a beginner to do interesting things much earlier than they can if they just start by learning int variables and `if` statements. If you spend all of your time learning syntax and low level ideas you may not get to do anything interesting and so get bored easily. Better in many ways to work in and modify an existing system (in well considered ways) than to have to build up from nothing.
  
  
  ---
  
  ### Answer by username_6 on 2018-11-19. Score: 1
  
  It's okay, but I think it's a bad idea.
  
  I've taught my kids C++ when they were age of 9 using a beginner book on building a game using C++ after they had a brief education on Scratch and Python. They liked it, but I thought it was a waste of time because the language, toolsets and many of study materials are not kids friendly. Almost everything about C++ slows them down compared to higher-level languages such as Python and JavaScript.
  
  The better order for kids to learn programming is Scratch -> Python -> JavaScript. Once they build a solid foundation how to program and solve problems with Python and/or JavaScript (this will take at least a year or two), you may consider teaching more advanced languages such as Java and/or C++.
  
  Unlike olden days when there were good reasons to learn Java or C++ as a language of choice, the benefit of learning Java or C++ is shrinking fast for beginners these days because there are so many materials and opportunities available for easier languages and growing support for those languages. For example, many programming competition websites and event the UASCO training site support Python. In the past, many of sites only supported Java and C++.
  
  
  ---
  
  