I want to learn C++

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Thunder

I want to learn C++

Post by Thunder »

Can someone show some liks to C++ tutorials and manuals.
Thanks... ;)
pete.piper

Re:I want to learn C++

Post by pete.piper »

Check out Bruce Eckel's free downloadable books at http://www.mindview.net/Books . If I remember right, these books dig deeper into the underlying design of C++ than anything you'll get from Sam's or similar publishers. In fact, he often includes exercises that involve analysing the assembly equivalent of C++ code.

Pete
crazybuddha

Re:I want to learn C++

Post by crazybuddha »

What is your current programming experience?

Eckels "Thinking in C++" is definitely not a beginner's book.
PetriSimolin

Re:I want to learn C++

Post by PetriSimolin »

You should definitely check out http://www.codeguru.com
pete.piper

Re:I want to learn C++

Post by pete.piper »

crazybuddha wrote:Eckels "Thinking in C++" is definitely not a beginner's book.
Sure. However, bookmark it anyway. After you learn the basics of C++ (especially syntax), Eckel's book can be a great way of learning the finer points of the language.
Schol-R-LEA

Re:I want to learn C++

Post by Schol-R-LEA »

There are a tremendous number of free C++ tutorials on the web, most of which are worth what you pay for them, or worse.

Despite the considerable differences between them, you really can't learn C++ without learning C first - and then unlearning it. Eckel's book is excellent, but you really need to know C cold before digging into it, especially the first edition. The second edition seems to try and cover C a bit more, though I haven't read it through yet. The printed version also comes with a CD containing Eckel's lectures on C, which I have not seen myself but which apparently is a popular addition to the book.

C++ Core Language by O'Reilly is is supposed to be reasonably good, though again it assumes a solid background in C.

I really can't think of a good starting book on C++ other than those. The lack of quality study material for beginners is a problem across the board in the IT industry, sadly, and C++, being so complex, presents special problems of it's own.
crazybuddha

Re:I want to learn C++

Post by crazybuddha »

As far as I am aware, the current trend in beginner programming classes, is to teach C with C++ changes to some of the basics (e.g. new/free, cout/cin, different placement of variable declarations, etc), and merely touch on classes, inheritence, overloading, and so on. In other words, students start out thinking they are learning C++, but it really is little more than a slightly modified C. The structured paradigm is still pretty strong, at least as far as I've seen.

And the introduction of classes in trivial examples should give anybody pause about the bloat potential in C++. Personally, I think covering OO concepts without substantial experience in large, modular structured programs is really missing the essence of why it is useful. But I also believe, for similar reasons, that learning C without learning something about assembly is also an unnecessary struggle.
Schol-R-LEA

Re:I want to learn C++

Post by Schol-R-LEA »

Teaching either C or C++ as a programmer's first language is like teaching someone how to juggle by starting out with chainsaws and flaming brands. C++ should be the culmination of your programming experience, after long familiarity with tools far less dangerous and considerably less pragmatically oriented. I'd even put Ada or Forth ahead of C++ - in fact, I'd insist on that (more on that later). Pushing programmers too fast, especially with tools like C++, is likely to lead to a lot of half-trained, half-assed programmers who really don't understand the esoteric qualities of the trade.

I have rather particular ideas of how programmers should learn, to be sure. Putting aside the issues like math requirements and liberal education basics for the nonce, I would start with a class on theory - no coding, just theory - before even getting in front of the machine. Boring, yeah, but it will make it easier to understand what is happening once you do start working. Concurrent with this would be classes in basic hardware and system software - about equal to an A+ course, enough that the student can put together a PC from off-the-shelf parts and diagnose and fix common problems.

Second semester should be further basics : working in Unix/Linux, common apps and utilties and HTML - while not a programming language per se, it does show a lot of the basic ideas of structure and organization needed in most programming.

My choice of a first programming language would be, predictably, Scheme - it's about the simplest language to learn that there is, yet it is flexible enough to demonstrate just about anything in. It can be used to put the ideas of the fist class into practice in a fairly straightforward manner, and can introduce some really sophisticated techniques easier than in most other languages. Two semesters of this should be able to give at least an introduction to most of the major topics in CS. The second semester should also begin with some principles of asembly language, tied to the study of compilers and interpreters. The classes should also cover documentation writing.

Third year gets back to practical matters - and the two languages every programmer should know at this time, since they are ubiquitous - with a course in scripting using Perl and a course in systems programming in C and assembly. Note that I'm not teaching classes in the languages themselves; the languages are secondary to the goal. A class on embedded programming in assembly, Forth, C and Ada, and a class on user interfaces in Java, should make up the sixth semester.

Final year covers application design in C and Java, system adminstration, and an overview of database programming; this is followed in the final semester with C++, CASE, and OS theory, and swallowing your pride in VB, Ada and COBOL.

OK, so that's not the most practical syllabus in the world, true. But I think it would be better than the rather catch-as-catch-can approach seen too often today. The real problem with it is that it is exactly the kind of formal approach that would drive away the hacker sorts who really love programming and computers - I know I wouldn't have gotten through it - while appealing to the kind of theorists who end up writing paper after paper on software engineering without once coding a single program. OTOH, the more typical approach - teach how to write code in a few languages and then a few courses in specific techniques for, say, database programming, or OS design - tends to be way too narrow in scope; often even basic concepts get passed over, leaving every student to reinvent the wheel on their own.

I don't know. Maybe the real core classes should be in picking up new languages and researching existing algorithms and patterns online.
crazybuddha

Re:I want to learn C++

Post by crazybuddha »

http://www.webwareindex.com/tutorials/C.html

If you need a free compiler, this is a good one. It isn't fancy, but there is a lot less extra crap to learn just to get started.

http://www.htsoft.com/products/pacific.html

For something a little tricker to drive, there's LCC-WIN32, which is also free
http://www.cs.virginia.edu/~lcc-win32/

If you get really serious -- but still aren't spending money -- Watcom C is supposed to have gone free. You'll have to research it.

And of course, there's DJGPP, which is a great compiler, but there's too much stuff to learn just to make it work.
K.J.

Re:I want to learn C++

Post by K.J. »

The book that I used to learn C++ was C++ for Dummies. It's a great book. Just make sure to get the latest edition(the older ones are set up differently and IMHO, aren't as good).

K.J.
Muddassar

Re:I want to learn C++

Post by Muddassar »

crazybuddha wrote: What is your current programming experience?

Eckels "Thinking in C++" is definitely not a beginner's book.
i want c tutorial
K.J.

Re:I want to learn C++

Post by K.J. »

Post Reply