Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Beginner programmer looking for c++ book

  1. Dec 2, 2011 #1
    Hello I am a senior in high school and I am required to do a senior project with a research paper related. My project adviser says I need some sort of book that has lessons or something that can be shown as work that I did during my project. I have next to no experience with computer programming and am looking for a beginners book that will teach c++ programming. Does anyone have any suggestions on a book that I would be able to get that will help me learn c++? Also does anyone have any suggestions on a possible research topic? Currently I am thinking of doing my paper on Steve Jobs and Apple but might be interested in another topic.
  2. jcsd
  3. Dec 2, 2011 #2
  4. Dec 2, 2011 #3
    Last edited by a moderator: May 5, 2017
  5. Dec 2, 2011 #4


    User Avatar
    Science Advisor

    Hey Thadis and welcome to the forums.

    In terms of ideas, you might be interested to know that Apple got a lot of ideas from the Xerox PARC in Palo Alto. One of the technologies developed there was Smalltalk which was the precursor for the Apple OS and it contained a lot of things including frameworks for AI, object oriented programming among other things.

    In terms of C++, I think you will need a few different resources to learn programming effectively not just one, but here is a free book I read years ago that I found comprehensive: again you should use it in conjunction with other materials.


    Its the 2nd edition of thinking in C++: it is a free download so it won't hurt your pocket.
  6. Dec 2, 2011 #5
    It might be difficult to connect C++ to Steve Jobs and Apple. (Mac OS doesn't use much C++. It uses Objective C for most of the OOP stuff.) Maybe you could do your research paper on the history of Unix and all the OSes that stem from it (which would include Mac OS). You could tie C++ in by implementing one of the core Unix utilities in C++. Although, that too would be a really loose connection. The only way I can think of that you could relate that to your paper would be to explain that the core Unix utilities are common to all OSes that stem from it and then to explain that you implemented one of them in C++ and then to explain the benefits of C++ over C and how you used them to implement the utility in a better way than the original, which was written in C.
  7. Dec 2, 2011 #6
    Thank you guys for all your suggestions. I am not able to look through them right now but will do probably tonight after school. Also for my research topic I does not have to be that strong of connection it just has to be somewhat related so it would be like write about Jobs because he created a computer company and learn c++ because its just a computer programming language so they can be very loosely connected.
  8. Dec 2, 2011 #7
    Hey I was looking on amazon and saw that there was a new edition out and I was wondering is there really a difference between them or is there any new things that were added to the newest edition? More of just wondering this saying I will probably just be getting the newest since it is the same price and it might include some new features that the older one didnt have that might help
    Last edited by a moderator: May 5, 2017
  9. Dec 2, 2011 #8


    User Avatar
    Gold Member

    I believe the 6th edition includes C++11. I have the 5th edition which is C++03.
  10. Dec 2, 2011 #9
    Oh and I am assuming this is just a newer version that has been updated allow for new things to be done or to make things easier to do? And also I have been looking online a some other forums and sites and have found there is a book called "C++ Primer" and also one called "C++ Primer Plus" and I was wondering is there one that is suggested to start with?
    Last edited: Dec 2, 2011
  11. Dec 2, 2011 #10


    User Avatar

    Staff: Mentor

    The new C++ standard has many new features, including some that are useful for beginning programmers (easier to use than older ones). We discussed some of them earlier this year:


    In that thread we call it C++0x, not C++11, but I assume they're the same thing, just renamed to match the current date.

    I especially like "ranged for-loops" which are simpler to write for many operations involving arrays, vectors, etc. For example, instead of writing something like this:

    Code (Text):

    for (int k = 0; k < n; ++k)
        cout << a[k] << endl;
    to print out all the items in an array, you can do this, assuming "a" is an array of doubles:

    Code (Text):

        for (double x : a)
            cout << x << endl;
    If I were learning C++ now, I would definitely want to pick a book that's been updated to cover C++11, preferably not simply by tacking a chapter on at the end, but instead integrating the new features and discussing them where appropriate.
  12. Dec 2, 2011 #11


    User Avatar
    Gold Member

    C++0x became C++11 when ISO approved the standard. There are a lot of awesome new features added, but it will probably be several years before C++11 fully displaces C++03.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook