Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am searching for any good site that teaches C++, that can explain most to all things about it(general) and has a decent active community.

About Me: I am new to programming(knows nothing of it, so please bare with me), I have only learned(to a very basic form) LUA scripting Language, so yes I am your complete newbie.

I got interested in programming, from scripting in LUA, so you can say it was my small stepping stone, One would basically take a course in college, but not everyone is well funded for that and I can't buy books for the same said reason(yes I'm somewhat poor, only money for essentials and bills), I'm not trying to get sympathy, just stating my conditions.

and Please, something in between the lines of 'Programming for Dummies'(I'm not the brightest crayon in the box), I know this will not be easy, but your help will be most appreciated.

I would learn for either Windows and/or Linux/Unix. I use both.

Site(s) I know: Cplusplus.org(quite inactive and tutorials are a little for the programming savvy.

share|improve this question

migrated from stackoverflow.com Jul 15 '11 at 14:54

This question came from our site for professional and enthusiast programmers.

    
Try learncpp.com (it seems to be down right now but it's normally reliable). Also, please don't tag your question with other languages if you are not asking about them: C, C++, and C# are not the same animal. –  jonsca Jul 14 '11 at 12:42
3  
You could probably learn the syntax but understanding the language is something else: norvig.com/21-days.html. Just be ready for the long haul. –  Skizz Jul 14 '11 at 12:52
    
c++ faq lite is a really good resource, though not exactly introductory material. parashift.com/c++-faq-lite –  Tom Kerr Jul 14 '11 at 14:10
2  
Although you did say websites, if you want to learn C++ I'd definitely recommend 'C++ Primer' (4th ed.). It teaches the right things, in the right order, in the right way. Stay dead clear of 'C++ for dummies' (not to be confused with 'c++ all-in-one reference for dummies', quite a good book) - it uses character arrays and (gasp) suggests that STL strings are an 'advanced' feature not to be used by beginners. Reality's quite the other way around. small print Books aren't hard to find in .pdf files all over the internet. –  Schnommus Jul 14 '11 at 14:42
    
Also make sure you check cplusplus.com very often, it is a really good reference. –  mcwise Jul 3 '12 at 11:00

6 Answers 6

Wikibooks has several rough drafts of books on various aspects of C++. Some of them are already pretty good.

When you help edit those books, or at least point out the bits that still don't make sense, it helps you learn through teaching: Trying to teach something to other people often helps us understand it more fully.

share|improve this answer

C++ FAQ Lite:

http://www.parashift.com/c++-faq-lite/

This is THE C++ tutorial in my most humble of opinions. I've been programming in C++ for over 8 years at least, and I still reference this page from time to time, and sometimes go through and read it when I have downtime just as a refresher. It's well structured, covers the bases well, goes over the "gotchas" that C++ has sprinkled throughout, along with the things that make C++ (and object oriented programming) so powerful. I highly recommend giving it a whirl.

share|improve this answer

This definitely won't be easy. C++ is a very difficult language and it takes years of experience to program decently in it. With the new standard to come, things have become even more complex.

You will definitely need a book, not a web tutorial. There is a quality book topic here on SO. One book that helped me a lot when I began learning the language was Thinking in C++ (freely available). However, it requires you to have learnt a little about the C syntax (not the C language !) beforehand, so it is not for the "complete n00b". It stays at a very accessible level however, and covers quite neatly the language.

Some concepts in C++ are a little difficult to grok. There are a lot of StackOverflow topics about C++, feel free to browse them and ask questions when you don't understand something. Have also a look at the C++-faq tag.

share|improve this answer
    
I will have to check this out. C was my first language, but C++ left a bitter taste in my mouth due to the horrible book we had in my C++ class. –  Aaron Ray Jul 14 '11 at 13:01

If you are truly new to programming and want to learn C++, I would suggest you start with the C subset. For that, I would suggest Carl Herold's site; http://www.highercomputingforeveryone.com/

The first part, Learn to Program, explains what C does at the bit/byte level in a manner which a true beginner can understand.

the second part, writing basic programs, naturally introduces more advanced topics while constructing a tic tac toe game.

share|improve this answer

I have recently learned C++ as well. I use http://www.cplusplus.com/doc/tutorial/ more or less as a Bible of sorts. It's pretty easy to pick up if you're familiar with Java or C# because it's an OOP language.

EDIT: Do yourself a favor and avoid clunky IDEs like Visual Studio until you've mastered the basics. Microsoft's C++ CLR implementation may be confusing.

I recommend CodeBlocks: http://www.codeblocks.org/

Good luck! Learn lots!

share|improve this answer
6  
The OOP in C++ is very different from the OOP in C# or Java (or the OOP from Ecmascript, or the OOP from COM, etc, etc, etc). You'd better forget what you used to do in C# or Java when you learn C++. –  Alexandre C. Jul 14 '11 at 12:49
    
For beginner programmers OOP is a beast in of itself. I mean the foundational teachings of OOP, not how it is implemented. –  Jeffrey Kevin Pry Jul 14 '11 at 12:51
1  
Let me repeat: the fundamentals of OOP (whatever that means) are different in C++ and C#/Java (and others). A lot of times, where you may (must...) write a class in C#, you write a bunch of functions in C++. You will often use multiple inheritance in C++ where in Java you would use annotations, or where in C# you'd use postsharp. Most importantly, objects in C++ have deterministic lifetimes (so you can put useful stuff in destructors), and can be copied by default. In C# you have to use the ugly using (and not forget it !) to perform RAII, and copy semantics must be explicit. –  Alexandre C. Jul 14 '11 at 13:41
    
And let me repeat. This is OOP fundamentals en.wikipedia.org/wiki/Object-oriented_programming .... They are not language specific. I am talking the concept of Car is a Vehicle, Minivan is a Vehicle. Vehicle has an Owner, and Owner is a Human. How that is language specific is beyond me... –  Jeffrey Kevin Pry Jul 14 '11 at 17:33
    
In my link posted, please see Fundamental concepts and features for the "the fundamentals of OOP (whatever that means)". –  Jeffrey Kevin Pry Jul 14 '11 at 17:40

This site is a good one. It starts out really basic, but it gets pretty advanced. This is a primer we give to high school kids on our FIRST robotics team.

http://www.learncpp.com

share|improve this answer
2  
This site teaches hungarian notation and wrongly tells it is a good thing. It teaches copy semantics after operator overloading, doesn't mention neither RAII nor smart pointers. Also, (and unfortunately it is not the only tutorial like this) it teaches exceptions and error handling at the end. The possibility that an exception be thrown anywhere is all what drives the way modern C++ is written. –  Alexandre C. Jul 14 '11 at 15:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.