Thread: Most effective way to learn C++?

  1. #1
    Banned
    Join Date
    Jul 2011
    Posts
    12

    Most effective way to learn C++?

    Hey Guys,

    I'm trying to relearn C++. I made some very basic programs with it a few years ago but I don't remember much so i'd prefer something that is geared towards beginners.

    My question is what do you guys think the most effective way to learn it is? Book? Web resource? Video tutorials?

    The second part of the question is what do you recommend? So if you say book please list a title (or titles).


    I looked on Amazon for C++ Beginner books and I saw a fair amount (~$10-$30). Are there certain publication dates I should stay away from? For instance, some came out in the early 2000's (2002, 2004, ect). My concern is I don't want to learn something that is already outdated. Now I know they don't do drastic changes and chances are even if there are subtle changes it will be very easy to learn them but I figure if i'm going to put out the time/effort to learn it then I might as well be up to date.


    Are there any good web resources (aka tutorials) for C++?

  2. #2
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    1.Read through some standard tutorials in the internet.````````````````````````````````````````` `2. Write some small programs (GET A GOOD COMPILER) with what you've learned``````````````````````````3.Buy a nice book and read it thoroughly.`````````````````````````4.Write some *big* programs.`````````````````````5. Repeat(&learn through previous experience) steps 3 and 4 until you know when to quit.
    Last edited by manasij7479; 07-30-2011 at 12:39 PM.

  3. #3
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by manasij7479 View Post
    4.Write some *big* programs.
    Just out of curiosity, manasij, what would you characterise as a big program?
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  4. #4
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by grumpy View Post
    Just out of curiosity, manasij, what would you characterise as a big program?
    An Os :P ...(containing a graphical shell, a mature development environment, some games...etc etc etc...)
    Last edited by manasij7479; 07-30-2011 at 05:20 AM.

  5. #5
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Sorry, not quite I meant. What would you consider to be the characteristics that make a program big rather than (say) small. And where do you consider is the dividing line between big and something that is "less than big"?
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  6. #6
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    I myself make the demarcation .....with whether I need version control or not.

  7. #7
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by manasij7479 View Post
    I myself make the demarcation .....with whether I need version control or not.
    I see. By that logic, a programmer who managed development of a "hello world" program with the help of some source code control system would then be an expert in C++.

    I suggest there might be more effective ways to become proficient in C++ than that.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  8. #8
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by Sjvlsdsd View Post
    Hey Guys,

    I'm trying to relearn C++. I made some very basic programs with it a few years ago but I don't remember much so i'd prefer something that is geared towards beginners.

    My question is what do you guys think the most effective way to learn it is? Book? Web resource? Video tutorials?
    Get any book/tutorial you feel comfortable with, work through it page by page, compile the examples and exercises, mess with the code until you understand what does and does not work, redo as needed, move on to the next section...

    You won't learn C++ by watching some dude (who probably is just as much a beginner as you!) tapping out some code on a YouTube video. When watching one tends to wander off. Passive learning does not fully engage the viewer and loss of concentration means missing parts of the lesson.

    In terms of retention... video is the worst, classroom lectures (where you can at least ask a question) are better, textbook/tutorial study is slightly better, but actually sitting down and writing code is the best way...

  9. #9
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by grumpy View Post
    I see. By that logic, a programmer who managed development of a "hello world" program with the help of some source code control system would then be an expert in C++.I suggest there might be more effective ways to become proficient in C++ than that.
    I said that was how I distinguish between writing(also myself) a small program and a big one.Your interpretation of that logic is quite ridiculous. Also, you missed the word 'need' .

  10. #10
    Registered User
    Join Date
    Apr 2010
    Posts
    88
    To the OP, see the sticky at the top of the C++ forum page.

  11. #11
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Jump in and crash the computer a few times. Well I guess on modern OS's it won't exactly crash the computer but you can still cause BSODs while learning graphics programming. I think the best way to learn is get a few good books (not just one) and go through them. But you must write code. You cannot learn by reading alone. You must write lots of code. Then once you learn the syntactical sugar you get to learn how to apply the language to solve specific problems. As for how to become an expert in design well I will let you know when I become one b/c I'm still travelling that road.

  12. #12
    Registered User
    Join Date
    Aug 2010
    Location
    Poland
    Posts
    733
    Quote Originally Posted by CommonTater View Post
    You won't learn C++ by watching some dude (who probably is just as much a beginner as you!) tapping out some code on a YouTube video. When watching one tends to wander off. Passive learning does not fully engage the viewer and loss of concentration means missing parts of the lesson.
    I always laugh when I see such videos, especially when I can hear a high-pitched voice.

    TBH I have read only one book about C++, written by a polish guy (so it is not listed on this forums anywhere) and haven't even completed it. But I have read tons of manuals, documentations, and specifcations (not only about C++ through) and I feel very comfortable reading them.

    Exercies? Lol, I have never touched one. Well, maybe a couple for a programming contest, but these had nothing to do with the language itself.

  13. #13
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by manasij7479 View Post
    I said that was how I distinguish between writing(also myself) a small program and a big one.
    And my point is defining a program as large or significant or whatever based on a subjective need for version control is somewhat ridiculous.

    Anyway, as to the original question, the most effective way to learn C++ depends on your mindset.

    Some people learn best through study and pondering over the nuances of theory. Some people learn best through a systematic approach of attempting to solve problems. Some people jump between the two (tackle a problem, learn theory, apply it to the problem, tackle another problem).

    Two of the best developers I ever encountered were at the opposite ends of that spectrum. One spent about several months buying a range of good and bad materials about C++, and simply reading. He then installed a compiler (which he had carefully selected based on his readings) and started tackling a few problems he had identified as "interesting". The other installed a development environment, bought a single introductory text, and spent a few months just hacking. After a year or two, both these guys were pretty fair developers, despite the fact they have obviously learned in different ways. When put together on complex problems, they were actually quite an effective team.

    A lot of people attempt to learn by a shotgun approach, in which they try things at random and then either claim they know everything if their attempt works or beg other people for help whenever they get in trouble. It is debatable whether such methods are effective.

    In the end, it comes down to what works for the individual. The art of learning is finding what learning methods work for you.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  14. #14
    Registered User
    Join Date
    Jul 2011
    Posts
    5
    the book of "c++ primer" ,by Lippman but a little expensive

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Are Exceptions effective?
    By Petike in forum C++ Programming
    Replies: 5
    Last Post: 09-13-2008, 12:23 AM
  2. Effective Learning
    By TehClutchKiller in forum C++ Programming
    Replies: 4
    Last Post: 05-28-2008, 10:27 AM
  3. How effective is this.
    By Raeliean in forum C Programming
    Replies: 4
    Last Post: 07-07-2005, 03:03 AM
  4. C# Effective?
    By Arkasizer in forum C# Programming
    Replies: 5
    Last Post: 10-24-2003, 11:15 AM
  5. Most effective way to annoy someone
    By mithrandir in forum A Brief History of Cprogramming.com
    Replies: 61
    Last Post: 03-17-2002, 10:05 AM