C/C++ Beginner programmer looking for c++ book

AI Thread Summary
A high school senior is seeking recommendations for beginner-friendly books to learn C++ programming as part of a senior project, which requires a research paper. Suggested resources include "C++ Primer Plus" and "Thinking in C++," with an emphasis on using multiple resources for effective learning. The discussion highlights the importance of understanding the differences between editions of C++ books, particularly the inclusion of features from the C++11 standard, which offers new programming capabilities beneficial for beginners. Additionally, potential research topics were explored, including the connection between Steve Jobs, Apple, and the history of Unix systems, with suggestions for loosely tying C++ programming into the paper. The conversation underscores the need for a solid understanding of C++ fundamentals while also considering how to relate the programming language to broader technological themes.
Thadis
Messages
43
Reaction score
0
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.
 
Technology news on Phys.org
This is my first C++ book. I really like it! It is simple to read and straight to the point.
https://www.amazon.com/dp/0672329417/?tag=pfamazon01-20

Of course you won't learn C++ in 1 hour a day. It will take time but worth it!
 
Last edited by a moderator:
Thadis said:
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.

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.

http://www.ibiblio.org/pub/docs/books/eckel/

Its the 2nd edition of thinking in C++: it is a free download so it won't hurt your pocket.
 
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.
 
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.
 
Greg Bernhardt said:

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:
I believe the 6th edition includes C++11. I have the 5th edition which is C++03.
 
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:
  • #10
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:

https://www.physicsforums.com/showthread.php?t=485024

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:
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:
    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.
 
  • #11
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.
 
Back
Top