help this confused C++ newbie(long post!!)

S

seemanta dutta

Greetings all C++ hackers,
I am a graduate in Electronics and Communication Engineering and have
roughly three and a half years of experience in programming in C.
All these years I never felt a need to learn C++ as i could almost
solve whatever programing problems I got through C.

But now looking at the competetion in the software world I have
decided that C++ is a language worth learning.
C will always be there, but the need for C++ is equally great since
OOP makes managing bigger projects a lot easier.
But as a newbie I have found that C++ is *very* confusing and
complicated.
It has a lot of features that not only make it a powerful language,
but at the expense of increasing its complexity so much that any
newbie is bound to be overwhelmed by it.

I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

And one more question:
Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
that one is not prejudiced by the thought pattern of C. But
considering the similarity of C with C++ in some cases this similarity
may also be helpful. Please advise regarding this. I am in two minds!

and thanks to all you for enduring this long post!!
Happy C++ programming to all of you!!
regards,
Seemanta Dutta
 
C

Christoph Rabel

seemanta said:
I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

On http://www.accu.org you can find several excellent book reviews.
Simply look at the higly recommended books for beginners and advanced.

Some interesting websites are e.g.:

http://www.cuj.com (C/C++ Users Journal)
http://www.gotw.ca

But there are certainly more.
And one more question:
Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
that one is not prejudiced by the thought pattern of C. But
considering the similarity of C with C++ in some cases this similarity
may also be helpful. Please advise regarding this. I am in two minds!

In this case I would recommend that you read "Accelerated C++", because
it teaches C++ from a very different view than C. I dont think its
possible to unlearn C completely and I also don't think it is necessary.

The problem is exactly where you see it, that C programmers continue to
code in C++ the same way as always. Since you see that, I dont think
this will be a problem for you.

hth

Christoph
 
C

Chris \( Val \)

| Greetings all C++ hackers,

[snip]

| I would therefore be very grateful if you could offer me some advice
| on how to learn this language without getting unnecessarily confused.
| I mean anything like pointers to web pages, names of books and even
| personal advise would be helpful.

Probably two of the better on line material available:

C++ Annotations - Frank. B. Broken
http://www.icce.rug.nl/documents/cplusplus/

Thinking in C++ - Bruce Eckel
http://mindview.net/Books

Note: You should at minimum, purchase some(say three)
good books to learn from. The first one I would add to my
list would be '[The C++ Standard Library] by Nicolai Josuttis'

| And one more question:
| Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
| that one is not prejudiced by the thought pattern of C. But
| considering the similarity of C with C++ in some cases this similarity
| may also be helpful. Please advise regarding this. I am in two minds!

[snip]

I don't know if you can ever 'Unlearn' something once you
know it :). Additionally, I don't think knowing 'C' will
really hinder you at all, but you will learn to program in
many different ways under C++, that's for sure :).

Good luck.
Chris Val
 
?

=?iso-8859-1?Q?Juli=E1n?= Albo

seemanta dutta escribió:
I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

I recommend you "The C++ Programming Language", from Bjarne Stroustrup.
At least the third edition. Also the books other people has mentioned
are great.

Regards.
 
C

Claudio Puviani

seemanta dutta said:
Greetings all C++ hackers,
I am a graduate in Electronics and Communication Engineering and have
roughly three and a half years of experience in programming in C.
All these years I never felt a need to learn C++ as i could almost
solve whatever programing problems I got through C.

But now looking at the competetion in the software world I have
decided that C++ is a language worth learning.

I'd say it's practically a necessity.
C will always be there, but the need for C++ is equally great since
OOP makes managing bigger projects a lot easier.
But as a newbie I have found that C++ is *very* confusing and
complicated.
It has a lot of features that not only make it a powerful language,
but at the expense of increasing its complexity so much that any
newbie is bound to be overwhelmed by it.

Don't try to learn every feature at once. For example, start with classes and
overloading, then move on to templates, then on to exceptions, and so on. If you
install your C++ compiler and immediately try to write exception-safe templates,
you're in for some pain.
I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

Here are some books that you should absolutely have in your library if you plan
to become proficient in a reasonable time:

"The C++ Programming Language" by Bjarne Stroustrup
"Effective C++, Second Edition" by Scott Meyers
"More Effective C++" by Scott Meyers
"Effective STL" by Scott Meyers
"C++ FAQs, Second Edition" by Cline et. al.
"The Standard Template Library" by Nicolai Josuttis

When you're comfortable with the basics, I also strongly recommend:

"Modern C++ Design" by Andrei Alexandrescu
"Large Scale C++ Software Design" bu John Lakos
"C++ Templates: The Complete Guide" by Vandervoorde and Josuttis
"Exceptional C++" by Herb Sutter
"More Exceptional C++" by Herb Sutter
"Standard C++ IOStreams and Locales" by Langer and Kreft
And one more question:
Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
that one is not prejudiced by the thought pattern of C. But
considering the similarity of C with C++ in some cases this similarity
may also be helpful. Please advise regarding this. I am in two minds!

Remember that the "original" C++ programmers knew C before learning C++ and by
all accounts, they're doing fine. From my own personal observations, programmers
who start with with C and then move on to C++ tend to have less difficulty than
those who start directly with C++ because they usually question the 'how' and
'why' of the C++ features rather than accepting them as black boxes.

Also keep in mind that you don't give up the techniques you learned in C just
because you're moving on to C++. You're just getting more options.

Now, Java programmers who migrate to C++... those people are in for a wealth of
pain and suffering.

Claudio Puviani
 
J

jeffc

seemanta dutta said:
Greetings all C++ hackers,
I am a graduate in Electronics and Communication Engineering and have
roughly three and a half years of experience in programming in C.
All these years I never felt a need to learn C++ as i could almost
solve whatever programing problems I got through C.

I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

Bruce Eckel's "Thinking in C++" is escpecially good for those with C
programming experience. In addition to the regular book, he also offers it
in its entirety on a web site. You can search the web for it.
And one more question:
Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
that one is not prejudiced by the thought pattern of C. But
considering the similarity of C with C++ in some cases this similarity
may also be helpful.

If going "cold turkey" and wanting to learn C++ the "right way" (meaning
using new features right off the bat), then Accelerated C++ by Koenig is a
good choice.
 
M

Mike Wahler

seemanta dutta said:
Greetings all C++ hackers,
I am a graduate in Electronics and Communication Engineering and have
roughly three and a half years of experience in programming in C.
All these years I never felt a need to learn C++ as i could almost
solve whatever programing problems I got through C.

Yes, I find C very versatile. C++ as well.
But now looking at the competetion in the software world I have
decided that C++ is a language worth learning.
Yes.

C will always be there, but the need for C++ is equally great since
OOP makes managing bigger projects a lot easier.

It often can, but don't fall into the trap of thinking that
OOP is the solution to everything. :) Also note that C++
is 'multiparadigm' and does not require an OOP application
design.
But as a newbie I have found that C++ is *very* confusing and
complicated.

It's a very large language indeed. But one need not know all of
it (or even a large portion of it) to benefit from it.
It has a lot of features that not only make it a powerful language,
but at the expense of increasing its complexity so much that any
newbie is bound to be overwhelmed by it.

See above.
I would therefore be very grateful if you could offer me some advice
on how to learn this language without getting unnecessarily confused.
I mean anything like pointers to web pages, names of books and even
personal advise would be helpful.

Since you say you already have programming experience, I think
Koenig & Moo's "Accelerated C++" would probably be perfect for you.
It lets you 'hit the ground running', and has you writing useful
programs very quickly. www.acceleratedcpp.com

For more 'formal' reference, get the "bible", Stroustrup's
"The C++ Programming Language", 3rd Edition (or Special edition):
http://www.research.att.com/~bs/3rd.html,
(you'd probably also benefit from reading some of the other stuff
at his home page):
http://www.research.att.com/~bs/homepage.html

and Josuttis'
"The C++ Standard Library":
www.josuttis.com/libbook

Also be sure to see the "C++ FAQ" at
http://www.parashift.com/c++-faq-lite/

When you want to start looking for more 'advanced' material,
remember the names Meyers and Sutter (I'm sure I've forgotten
a few other good authors :))

But be careful, there is *much* disinformation out there,
especially on the web.

You can read peer reviews of available books at
www.accu.org
And one more question:
Will it be helpful if C++ is learnt after 'Unlearning' all of C, so
that one is not prejudiced by the thought pattern of C. But
considering the similarity of C with C++ in some cases this similarity
may also be helpful. Please advise regarding this. I am in two minds!

Previous knowledge of C could be either a help or a hindrance, depending
upon whom you ask. :) I came to C++ with C knowledge, and found it
helped, but I did have to make an effort to change my way of thinking
and writing code. It really boils down to "practice, practice, practice,"
:)
and thanks to all you for enduring this long post!!
Happy C++ programming to all of you!!

Same to you. Remember also that there are many experts participating
in comp.lang.c++ who can offer assistance and advice with specific
questions and issues.

To learn how to get the most from comp.lang.c++, see:
http://www.slack.net/~shiva/welcome.txt

Good luck!
-Mike
 
J

Jon Bell

I am a graduate in Electronics and Communication Engineering and have
roughly three and a half years of experience in programming in C.

But now looking at the competetion in the software world I have
decided that C++ is a language worth learning.

For someone in your situation, i strongly recommend Koenig and Moo's
"Accelerated C++". It's ostensibly for beginning programmers, but it
doesn't waste a lot of time on really basic stuff like "what is a
variable", and moves very quickly into the things that make the C++
really different from C, in particular the features that the standard
library provides.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top