#35 in Computers & technology books
Use arrows to jump to the previous/next product
Reddit mentions of The C++ Programming Language, 4th Edition
Sentiment score: 34
Reddit mentions: 58
We found 58 Reddit mentions of The C++ Programming Language, 4th Edition. Here are the top ones.
Buying options
View on Amazon.comor
- 100% Satisfaction Guarantee. Tracking provided on most orders. Buy with Confidence!
- A brand-new, unused, unopened item in its original packaging, with all original packaging materials included.
- Lowest price on amazon!
Features:
Specs:
Height | 9.1 Inches |
Length | 7.4 Inches |
Number of items | 1 |
Weight | 2.73152742618 Pounds |
Width | 1.7 Inches |
Here's my list of the classics:
General Computing
Computer Science
Software Development
Case Studies
Employment
Language-Specific
C
Python
C#
C++
Java
Linux Shell Scripts
Web Development
Ruby and Rails
Assembly
Well, this is usually because C++ is not really a beginner friendly language. You need to understand the architecture/fundamentals of a computer system at times to understand certain concepts and are often difficult to understand ex: pointers, dynamic memory allocation etc. and with C++ you never finish learning!
Yes, you are very correct about understanding basics before doing actual game-based programming, C++ Primer is pretty old but it's definitely a golden book alongside it though for someone like you I will suggest some of the books I read a couple years back and some that I believe are better for beginners:
Accelerated C++: Practical Programming by Example
Programming: Principles and Practice Using C++
The C++ Programming Language, 4th Edition- Very big book, read this after you've read the rest.
And a book that I've heard is pretty good for game development with c++: https://www.amazon.com/Mastering-Game-Development-professional-realistic/dp/1788629221
Modern C++ (C++11 or later) books are not nearly as plentiful as those for Classic C++, but there are a few notables.
Bjarne's college text may be what you are looking for:
Programming: Principles and Practice Using C++ https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_sim_14_2/144-7765085-0122037
It is aimed at engineers, which makes it less general, but might be good for you.
Of course his general intro is also updated to C++11.
The C++ Programming Language https://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=pd_sim_14_2/144-7765085-0122037
This is aimed at experienced systems programmers, so it may be a bit heavy for students, which makes the Primer (that you mentioned attractive).
C++ Primer https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=pd_bxgy_14_img_2/144-7765085-0122037
Be certain to get the 5th edition.
Of Scott's books only the latest is Modern.
Effective Modern C++ https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=pd_sim_14_2/144-7765085-0122037?_encoding=UTF8
This is less an introduction for students than for Journeymen (Journeypeople?) programmers.
For just plain good programming style consider Ivan's book.
Functional Programming in C++ https://www.amazon.com/gp/product/1617293814
Don't be put off by "Functional." This style of programming will make your students excellent programmers.
There are some modern books of high quality that are niche.
The ultimate guide to templates:
C++ Templates https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=pd_sim_14_1/144-7765085-0122037
The ultimate guide to concurrency:
C++ Concurrency in Action https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=pd_sim_14_1/144-7765085-0122037
Some library options:
Despite its name, this is mostly reference. A very good reference.
The C++ Standard Library: A Tutorial and Reference (2nd Edition) https://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=pd_sim_14_2/144-7765085-0122037
Arthur's book covers C++17, which makes it one of the most modern on this list:
Mastering the C++17 STL: Make full use of the standard library components in C++17 https://www.amazon.com/Mastering-17-STL-standard-components-ebook/dp/B076CQ1RFF/ref=sr_1_fkmrnull_1
To what extent are you teaching C++ and to what extent are you teaching programing?
Good luck and have fun!
Honestly, your best bet would probably be to read a textbook/reference on the language.
Stroustrup's "The C++ Programming Language" is quite good. If you want something more condensed, you could also check out his "A Tour of C++", which is much of the same material in a much smaller package.
I would supplement your class with one of the many great C++ books out there, because there are many ways to learn C++ but few of them are good (or even "right") ways.
You should be careful to distinguish between best practices from C++ and the new ones in C++11, and I've found that many courses tend to teach C++ as if it's just C with some extra features.
Of note, some really good books are:
At least as good starting points on the "new" C++, and I'm sure others have some really great suggestions too.
Your missing one:
http://www.amazon.com/The-Programming-Language-4th-Edition/dp/0321563840
C++11 = new edition!
> I'm taking a Unix class in c/c++.
Those are two very different things. Please clarify.
> We are using the book by Sobell. I want to ask if I should read the book?
Uh.. if it's required for your class, yes you should obviously read it. If you are looking for supplemental material, I'd suggest:
The best way I know how is by solving problems yourself and looking at good solutions of others.
You could consider going back to "fundamentals".
Most programming courses, IMO, don't have nearly as many exercises I think they should have. Some books are particularly good on their exercises list, for example K&R2, SICP, and TC++PL. Deitel's has long exercises lists, but I don't think they're particularly challenging.
There are some algorithms/DS books which focus on the sort of problem solving which is about finding solutions to problems in context (not always a "realistic" one). Like the "Programming Challenges" book. In a book like that, a problem won't be presented in a simple abstract form, like "write an algorithm to sort numbers". It'll be inside some context, like a word problem. And to solve that "word problem", you'll have to find out which traditional CS problems you could solve/combine to get the solution. Sometimes, you'll just have to roll something on your own. Like a new algorithm for the problem at hand. In general, this helps you work out your reduction skills, for once. It also helps you spotting applications to those classical CS problems, like graph traversal, finding shortest plath, and so forth.
Most algorithms/DS books though will present problems in a pretty abstract context. Like Cormen's.
I think, however, people don't give enough credit to the potential of doing the exercises on the books I've mentioned in the beginning.
Some books I think are worth reading which also have good exercises:
I imagine the other Stroustrupp programming book also has good exercises, but I've never read it. Brian Kernighan is not only the author of K&R2, but of many other books. You could look at his stuff.
Depending on what you mean by good code, though, you could look at other books.
There are also the math books. I'd not discard those. And also, there are other programming books as well. Some I've never read, but want to, like Programming Pearls:
Not only those, but, anyway... The point is that you can look at those books to find examples of good code, good exercises, challenges and so forth.
Here are some books I've mentioned previously:
By the way, there are websites with programming challenges for you to look at too. Like https://projecteuler.net/ and others. Just start looking this up and you'll find plenty. They all tend to start dumb easy and move up the difficulty to pretty damn difficult stuff from what I've heard.
Edit: SICP is available for free (http://mitpress.mit.edu/sicp/) together with videos from the course taught at MIT in 85 (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/).
If you don't have this for C++ you should. It really is a good introduction and a good reference.
Along with the advice from /u/perpetualwalnut the book "The C++ Programming Language" by Bjarne Stroustrup (the language creator). It's limited in being C++11 (we've had 14 as a minor update and now we're approaching the major update of 17) but it's a pretty solid reference for a large portion of the language (>1,000 pages). (Edit:)It's not a book that will teach you C++ directly, but it's a good reference and is pretty extensive while providing motivation and examples of the language features.
For free sources I suggest cppreference.com as a great online reference.
For videos this should give you a good idea of some language semantics that you may or may not be aware of (again by Bjarne).
This video by Sean Parent (former senior programmer/architect, I'm not sure which, of Adobe and worked directly on Photoshop) is a neat intro to how neat using STL can be.
And finally it may also be worth checking out r/cpp for C++ related stuff, they post good articles/videos relevant to the language from time to time.
Sorry for the info dump, this is just all stuff I would have loved to have when I started. C++ is a monolithic language, but you can do some pretty neat/fast things with it.
Not sure about EE-related topics, but for CE you're almost guaranteed to use these textbooks:
And of course, the most important and useful textbook of them all for almost anything coding-related.
The correct answer to:
Q. Should I learn C or C++ first?
Is:
A. Yes.
WARNING: Highly Opinionated Analysis of C vs C++
I see a lot of people recommending one way but no one offering an analysis of BOTH the Pro's & Con's.
I've been using C++ since ~1990. I've briefly worked on a PS3 C++ compiler when I worked for Sony. I've seen 2 major problems over the years with C++ programmers:
1. People don't exercise discipline and restraint in K.I.S.S.
They use (and abuse) every language feature because they can. There is this tendency to over-engineer even the simplest things. Take a look at this complete clusterfuck of CRC in the Boost library.
1109 lines of over-engineered C++ crap for a simple CRC32 function instead of a mere 25 lines of code!?!?! The C version would:
The trade-off would be is that it is less flexible, but WHEN was the last time you needed to use a custom CRC polynomial!?!? One would instead use a different algorithm such as MD5, SHA, etc. that:
This excellent SO on hashing is but one example of focusing on the big picture.
2. People lack a basic understanding of the cost let alone the implementation of C++ expressions.
I've seen people stick a virtual function inside an inner loop and wonder why their performance is crap. I've seen people fail to grasp a basic understanding of pointers. I've seen people not understand memory management and how to guarantee zero memory leaks. I've seen people spend more time on writing an "über" template and waste hours debugging that instead of just writing something in 1/10 of the time and move on.
IMO, due to the bloated, over-excessive verbose nature of C++ it is for these reason that I strongly recommend a beginner learn C first and then learn C++. You'll have a better understanding of why C++ is designed the way it is, what the design trade-offs are/were, what C++ hacks are, and how to best use the languages to their potential.
However, this is ignoring the benefits and disadvantages of the Pro's/Con's of why one would learn C++ or C first.
Learn C++ first
Learn C first
{
{
With that said there are numerous C++ books I would recommend to ALL C++ programmers. They are sorted from beginner to expert:
If you can get only one book, get the The C++ Programming Language.
Even though Bruce's book is ancient he keeps it simple and is a fun easy read. Remember this is before C++98 where the language is much simpler.
You can find it online for free
Lastly, just because you can, doesn't imply you should. Use balanced C++ and you'll be fine.
If you're very far already (using the language for over a year, for instance) you could try to fix the gaps by watching Going Native talks and reading A Tour of C++. If you're just starting out, I suggest either getting C++ Primer or The C++ Programming Language and working through that.
If you're already an experienced programmer, then I recommend The C++ Programming Language by Bjarne Stroustrup. Stroustrup is the guy who created the language, so this book is the most comprehensive and most authoritative you'll find short of reading the language standard itself.
Or, if C++ feels just a bit too foreign, you could also read Programming: Principles and Practice Using C++, which is also by Stroustrup, but was written to be a college text. It takes its time a little more, and it includes drills and exercises... essentially self-study homework problems to help you get familiar with using the language well.
Look at using the Eigen library for linear algebra in C++. Its used extensively in CV and AI settings, so there is a lot of info floating about it and lots of examples. It does take some getting used to coming from MATLAB though.
Here are some C++ books that have proven useful to me:
The Bible,
Very Useful,
My favorite data structures book,
[Maybe of interest] (https://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/ref=sr_1_25?ie=UTF8&qid=1484332390&sr=8-25&keywords=data+structures+in+C%2B%2B)
Also, keep in mind that the C++17 standard should be released this year, and there will be a new deluge of books.
Probably want to learn something about numerical analysis:
Numerical analysis
For vehicle dynamics and propulsion, are you thinking more FEA and CFD? If so, learning about GPU programming is probably more interesting since there is so much parallelization...
I recently picked this up but havent really worked through it yet...
but keep your expectations low, it is definitely non-trivial to try to spin your own packages, and it might be more worth your while to look at integrating with something like OpenFOAM for CFD, or to look into some of these packages for FEA. There are a lot of people who have spent a long time making these sorts of tools.
> It seems like the real core of programming is to know how to ask the right questions to find the answers and apply them.
You are correct. The C++ Programming Language book is 1368 pages. Look how big the Java 8 API is. The Python Standard Library has 35 topics, breaking down to about 10 subtopics each, that can then have pages and pages of information each.
You are always going to need a reference to do something there is simply too much to memorize. Even if you know exactly what you want to do chances are you are going to have to look something up.
If this is your first programming language its a tad unfortunate that it has to be C++ but by no means does it mean it is bad or anything. In fact its the language most aspiring computer scientists started out with in college prior to the 2000s.
You can start off with
Programming: Principles and Practice Using C++ and then going onto The C++ Programming Language, 4th Edition after completing the first one. There is also C++ Primer that is also highly recommended as another book for starting out.
A book along with web searches when you have questions will get you pretty far. Having someone to ask questions if you get stuck on something conceptually is also useful. The best advice I can give you is to really play around with the language as you are learning and do most of the practice exercises too. Stroustrup also has solutions to the exercises from the first book I mentioned online. Hopefully you have some months available to learn the language. On top of that you might need to learn some computer science topics like data structures as well. You just can't rush these things but you can accelerate it a little.
As for me, my C++ knowledge is 'rusting away' by the day. I learned the STL with C++ when it was made official only a couple years after (like over 10 years ago). Nowadays you have Boost and the language itself has changed. I have not presently needed to update my C++ knowledge to what is latest and greatest but I shall.
Also worth pointing out is that In my experience, when you work with different companies you might find that you never use official C++ libraries and most current language features, but you are supporting legacy stuff that was first written maybe 20 years ago when not even built-in STL was available. This means either you are going to use some now-arcane implementation of someone's version of base libraries or the company rolled their own from the ground up many years ago, and because its so well entrenched in the code-base it continues to be used many years later. Not a big deal, but you might want to find that out for yourself, that if you are learning the latest and greatest of library and language features - you might or might not be using it in practice with your company.
You can PM me if you have questions but I'm not sure I can commit the amount of time you might need in a tutor role.
The C++ Programming Language is one of my most prized books. It assumes you know some C/C++, so it's not the best starting point, but it has the depth and wisdom that only the creator of a language has. Which is why he wrote this book.
I'm in a similar position. I haven't used C++ since I was in school, and at the time I was just learning, so I never obtained a real deep knowledge of the language. Not to mention that there are whole new ways of solving some problems with the additions from C++11. What I'm doing right now is reading through The C++ Programming Language. I am hoping it will do the job of reintroducing me to the entire language while explaining all of the new stuff.
It seems to be going well thus far, but I have only just gotten started.
Posting this as a top level comment so people can see this without digging. Here are some of the resources I have used plus additional ones I've found that may be useful:
http://www.learncpp.com/
https://www.sololearn.com/Course/CPlusPlus/
https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113
https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996 (this one is a little more advanced, should be read when you are comfortable with c++)
https://www.amazon.com/C-Programming-Language-4th/dp/0321563840
I personally prefer his The C++ Programming Language over this book as a reference for C++ and The C++ Standard Library: A Tutorial and Reference as a reference to STL. This one feels to me a bit more of a beginner book, still a very good read though!
Sorry to hear that, friend.
I would definitely try to get your hands on a copy of The C++ Programming Language, it's got enough content to last you a while and it'll definitely show you all the ins-and-outs of C++.
> I will say that C++ is a very difficult language to pick up.
C++ is massive, being a three-decade accretion of features. Stroustrup's indispensable book, over 1300 dense pages, is only a succession of introductions to various aspects of the language. You often go to the web to get details.
Nobody can teach you modern c++ better than Stroustrup's book: The C++ Programming Language, 4th Edition
Yes, it's possible, especially with something like Amazon where the syntax is relatively simple. If you view the HTML source for a page like this, and press CTRL + F (find/search page) and search for the price of the item ($59.87 in this case), you'll see that the price is in the HTML tag:
<span class="a-size-medium a-color-price offer-price a-text-normal">$59.87</span>
With a simple script in Python you could just pull the HTML from the web page, and parse the text for that sub-string and return the value after the substring. This script will read the HTML from the site:
!/usr/bin/env python
page = urllib.request.urlopen("http://www.amazon.com/item")
text = page.read().decode("utf8")
print(text)
You just need to add in a few lines to make it get the value for the item. You can use string indexing and slicing to pull the value out of the HTML tag, by doing something like:
priceStartOffset = text.find('"a-size-medium a-color-price offer-price a-text-normal">$' # Find string index where price starts
priceStart = priceStartOffset + 1 # Index where price begins (numbers)
priceEnd = priceStart + 4 # Index where price ends (other ways to implement, this is simple way)
price = text[priceStart:priceEnd] # Pull price substring out of HTML by using slicing
print(price) # Display the price
Once you have the price value you can do whatever you want with it, print it to the screen, save it in a file for later use/computation, etc. Note that this is just a basic example of pulling some data from an HTML page, the logic that you implement on that data is up to you.
If you want the program to collect the price every X amount of seconds, you could put the code that gets the price in a loop (a while loop would be good in this case), with something like the 'time.sleep(seconds)' at the bottom of the loop block, so you aren't collecting thousands of the same price value every minute.
Since you have little to no experience coding (and might not really understand any of what I just said unless you're already coding), I'd recommend you read a book like Head First Programming, which goes over the basics of programming using Python 3 (but the concepts can be applied to any language, Python was simply chosen for the examples).
You (the programmer) will be partially responsible for any memory that crosses from python to C/C++. Python does this by reference counting: https://docs.python.org/3.5/c-api/refcounting.html . It is your responsibility to increase/decrease the reference count of an object as it moves between python and C.
If learning C++ is your goal and you'd like to use Python while doing it, I'd recommend Boost.Python: http://www.boost.org/doc/libs/1_57_0/libs/python/doc/ . The tutorial is good, although it does assume that you have a basic understanding of C++: http://www.boost.org/doc/libs/1_57_0/libs/python/doc/tutorial/doc/html/index.html . I'd recommend reading a book if you want to dive into C++, such as http://www.amazon.com/gp/product/0321563840/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687602&amp;pf_rd_s=lpo-top-stripe-1&amp;pf_rd_t=201&amp;pf_rd_i=0201889544&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=1C9XVC14E3BDBBF8VKP5 .
( quand je dis HTML+javascript, c'est javascript le langage de prog.)
Si tu veux apprendre le C++, sous windows tu peux télécharger VisualStudio Community (je crois que c'est comme ça que ça s'appelle la version gratuite maintenant) de Microsoft et essayer.
Sur le net ya des tonnes de cours sur google, en français en anglais pour commencer. Il faut déjà pratiquer et mettre les mains dans le cambouis.
A savoir après des années de stagnation le C++ évolue (presque) vite, certains livres parlent de C++11 alors qu'on est au standard C++17 et bientôt C++20
Après, si tu veux vraiment apprendre des trucs pour :
https://www.amazon.fr/Programming-Principles-Practice-Using-C/dp/0321992784
https://www.amazon.fr/Tour-C-Bjarne-Stroustrup/dp/0134997832/
https://www.amazon.fr/C-Programming-Language-Bjarne-Stroustrup/dp/0321563840/
https://www.amazon.fr/Effective-Modern-C-Scott-Meyers/dp/1491903996/
Sans oublier sur le net les bonnes pratiques, à jour:
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
Et sur youtube il y a plein de vidéos aussi, et des conférences.
Et je conseille d'apprendre le C en même temps, parce qu'en C++ on utilise beaucoup de librairies en C.
https://www.amazon.fr/langage-2e-éd-Norme-ANSI/dp/2100715771
I think a lot of it is subjective; one book is not going to destroy you as a programmer unless you rely on only one book. Most of the developers I deal with have a library of books. For C++ they have at least Stroustrup's C++ and the STL Library. They are both pending for new editions for C++11 so you might want to wait a bit.
Depending on what you want to learn, books are a very good resource.
The downside of many internet resources is they are sparse, and lack introduction to simple subjects.
Some of the most effective books I have found for really teaching you how to think like a programmer in various languages are:
It just will take patience, thought, and persistence.
Really what you want to do is just come up with a fun personal project, and then bumble through it. It doesn't matter which language you pick, just read about some and choose the one you identify with the most.
The C++ Programming Language, 4th Edition - Bjarne Stroustrup
Effective Modern C++ - Scott Meyers
21st Century C - Ben Klemens
Learn You A Haskell For Great Good - Miran Lipovača
The Book & Rustinomicon - Rust Contributors
A Byte of Python - Swaroop Chitlur
Java The Complete Reference 9th Edition - Herbert Schildt
These are the books I got the most out of. None of them are good for beginners to programming, except maybe A Byte of Python.
But they have given me deeper essential knowledge over the tools that I'm working with than any sort of "zen of patterns" or "corporate feng shui" style book has offered.
Of course I have also come across other computer science books that are fantastic, namely AI and machine learning stuff. I know a handful of solid game engine and graphics books have also come out in the past few years.
I've been writing C++ for about three years now, so I'm mostly familiar with C++11 (one of the newer updates that added quite a bit of functionality and sort of "updated" the language to make it more modern), though there are definitely people with way more experience in it than me on here.
C++ is a language with a very steep initial learning curve that drops drastically once you understand the basic concepts and write a few programs to practice the concepts involved. If you feel like it's too difficult at some point, take a break, then come at it from a different approach (and of course write a few tests to make sure you're getting it). This applies to other languages almost equally, of course.
You should try to learn C++11 (and C++14, a minor update) more than older variations of the language because it added quite a bit to make it easier to read and write with.
Online guides for C++ tend to be outdated or just plain wrong, it's actually one of the few languages with that quality (although that's changing slowly). It's best to get a book like The C++ Programming Language or Programming Principles and Practice Using C++ (which I would recommend for you over the former, which is actually more of a reference book). By the way, they're both authored by the initial creator of the language, so they also explain some of the design choices and details of the language which may or may not help you better understand it.
Beyond that, just do what's suggested for any other programming language (look at references, read actual programs written in it, etc.)/
First off I messed with a lot of languages before I think I really grasped the basics. I'll note that I used some Qbasic and Lua before starting my CS degree but I don't think they taught me good fundamentals because they are a little more "simple" and left me confused looking at lower level languages which is pretty much anything else.
I just started my CS degree recently and finished the first class which was in C#. I felt like this language really gave me a better grasp on the fundamentals.
More importantly than the language though I'd say get yourself a good book. For my C# class we used this book which is really good but kind of expensive. If you are interested in C++ many people recommend C++ Primer or The C++ Programming Language.
In taking my C# class I realized I thought I knew a lot about the basics of programming but actually didn't fully understand some very basic stuff, even things I had used a lot before.
Please buy a book, I recommend The C++ Programming Language by Bjarne Stroustrup. I know it's kind of expensive, I never was able or willing to go through a real book a when I was first starting. But this site is quite bad at explaining anything and you won't get a good education from it. If you actually work through a textbook though you'll be much better at C++ than what you would get out of online tutorials.
Getting a formal education in programming has made a huge difference in my ability; what I learned online has helped in going through school but it's really no comparison in actual skill learned.
I plan on doing this, but for the fourth edition.
Make that app in a language that you know. Or learn C++ while doing bug fixes for that app. You should be able to learn C++ if you know your fundamentals and using a resource like The C++ Programming Language
Let me add that this post on SO (which is linked to in our very own Recommended Resources - Programming Books) lists The C++ Programming Language, Stroustrup (link goes to 4/E that will now cover C++11) as a reference style book for all levels. Just something to note to you or anyone who follows this tree.
There are plenty of good books, but the obvious one to mention is The C++ Programming Language 4th Edition. I'm still a relative novice at C++ but the book has been recommended by a lot of people much more versed in C++ myself and it is written by Creator and maintainer of C++.
Also, the book is up to date. Writing good idiomatic C++ has changed significantly over the years and so a lot of older resources will not accurately teach modern best practices.
I also really like his intro chapter. He does a really good job of explaining the best "mindset" to use when learning C++, the reasons he initially wrote the language and how it has grown from where it started to where it is now.
I don't understand why people are suggesting codecademy for C#/CPP. Microsoft Virtual Academy is excellent for learning C#. I suggest this and/or this for learning CPP.
You are probably the target audience for this book about learning to program using C++. I have not personally read it, but the same author, the creator of C++, wrote one of the best books in programming I have ever read
That said, be warned, C++ is a very large and complex language. If this is your first programming, I'd probably recommend you try out a simpler language first such as Java.
If you want to be a programmer, most people are going to tell you to learn C++. But you're going to need to invest plenty of time in it and don't expect to build anything awesome shortly after until you have gained more experience. If you don't have anyone knowledgeable and experienced to teach you, you must learn it from reading some good C++ books like this.
AFAIK most people are gonna tell you to not learn C++ online because online tutorials always lack information or are outdated, and the wiki at /r/learnprogramming even has a section about discouraged resources.
However, you can also choose to learn C, if you want. C is not exactly C++, but if you want to learn C, there is Handmade Hero, which is great, but again, you need to invest a portion of your life in it. Learning C/C++ and attempting to master it is absolute time consuming and will drain a significant portion of your sanity.
If you're an absolute beginner, some people are going to tell you to not start with C++, because.
Try The C Programming Language or The C++ Programming Language then. Those should cover the guts of C and C++ that he'll need. The C Programming Language, commonly called K&R due to the authors' names, is probably the best reference guide out there for C. To give you an idea, when I took the class that covered C in my undergrad years, I used my mom's copy of the book from when she was in undergrad. It's still used to this day.
First note that Career/Job/Market is quite different from Knowledge/Intellectual satisfaction. So you have to keep "earning money" separate from "gaining knowledge" but do both parallely. If you are one of the lucky few who has both aligned in a particular job, you have got it made. Mostly that is never the case and hence you have to work on your Motivation/Enthusiasm and keep hammering away at the difficult subjects. There are no shortcuts :-)
I prefer Books to the Internet for study since they are more coherent and less distracting, allowing you to focus better on a subject. Unless newer editions are reqd. buy used/older editions to save money and build a large library. So here is a selection from my library (in no particular order);
Then learn c++ as it's the most commonly used language in the industry. Also learn how game engines and games work though. Go on amazon pick up a few books on game development, then try using a few game engines like unity3d and unreal engine. create stupid basic games just so you have a feel of how the engine works, then Get the book Game Engine Architectures 2nd edition by Jason Gregory, it gives the ultimate description on how engines work at the low level and high level. Give your self a few months to a few years to fully understand games, game engines, programming and everything I just said as it takes a while to master these subjects. I started learning c++ two years ago and now I'm starting to write my first real software ( A 3D Rendering Engine). But if you stay focused and it's interesting to you time won't matter. These are my steps:
Books for one thing. Bjarne Stroustrup's own book is somewhat up to date (C++11). The differences since C++11 (which is something that'd be considered "modern C++") can be picked up in a few ways, but StackOverflow is particularly good for explaining the new features in single, well written articles. That works well for "bridging the gap", since books are typically slow to adjust for this and there's always new language features being added.
I like to play the game where I read this book :)
https://www.amazon.ca/C-Programming-Language-4th/dp/0321563840
http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?ie=UTF8&amp;qid=1416248231&amp;sr=8-1&amp;keywords=bjarne+stroustrup
This book is c++11 with some minor c++14 stuff. It's quite good. I'm about half-way through it. For someone with xp in C, java, python, bash, etc.. It's not too 'beginner' that it makes me want to pull my hair out. It gets functional fast.
https://www.amazon.com/C-Programming-Language-4th/dp/0321563840
Check out this here beauty maan.
When I started, the most memorable three resources I know I had were the following:
After you're done with the two above required books, here are some useful readings:
The above readings will probably be a solid 6-12 months to read and absorb assuming you spend a couple hours a day, but I think it'll be well worth it in the long run since this type of stuff sticks with you for a long time. I read the above around 2013, and I can still talk about the CFS/other schedulers, software interrupts, and how the CPU cache works. It'll also make converting to other languages even more of a breeze because you'll know how everything works underneath the hood.
The C++ Programming Language, 4th Edition is the first C++ reference I've read that seems very trustworthy and I highly recommend it.
Found, it's:
The C++ Programming Language (4th Edition) Addison-Wesley
http://www.amazon.com/The-Programming-Language-4th-Edition/dp/0321563840
>Someone might recommend better but The C++ Programming Language has been well received as a modern introductory C++ book.
&#x200B;
That book is a reference book; it would be like trying to learn a language to by reading a dictionary. Perhaps you are thinking of Bjarne's "Programming: Principles and Practice Using C++" (his textbook for an intro to programming class), or his "A Tour of C++" (which is targeted to experienced programmers who wish to learn C++).
"Programming: Principles and Practice Using C++" is great because it teaches with modern C++.
Using Visual Studio with C++ is trivial, just open the "Get tools and packages" window and install the C++ desktop development package, then start with one of the templates MS provides.
Bjarne's book is a good C++ beginner resource:
https://www.amazon.com/C-Programming-Language-4th/dp/0321563840
One you know what you're doing somewhat, this is a good resource for best practices:
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
But personally I'd start by limiting yourself to C (or the C subset of C++) first, and wrapping your head around the basics of low-level programming (like pointers) before taking on C++. It's a big, ugly language that will hurt your brain (and honestly, it would not be my first choice for anything that doesn't require its particular properties - what are you planning to do with it?).
I don't know of too many links on c++, but the Stroustrup book is known as the Bible.
Can't wait!
[Book1] (http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1451948095&amp;sr=1-1&amp;keywords=the+c%2B%2B+programming+language )
[Book2] (http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1451948117&amp;sr=1-1&amp;keywords=effective+c%2B%2B )
Book3
Someone might recommend better but The C++ Programming Language has been well received as a modern introductory C++ book. You might want to consider starting with that. Also, picking an IDE can make life easy, but isn't a requirement. Of the IDEs to choose from: CLion is popular but costs. I think Visual Studio is popular, but I believe it costs too (Not to be mistaken with VS Code). Qt Creator is pretty popular as is KDevelop. Both are free.