learning Modern C++

A

arnuld

hai all,

i am standing on a "crossroad to C++". I am here in front of you as i
have a problem. i will be brief. Please do not think: "arnuld is sick",
i am really struggling & doing hard-work to become a Modern C++
Programmer & i am feeling as if i am standing on a crossroad. i am
asking because every time i made a decision on my own, in my past, i
always ran into huge wastage of time, money & effort. that is why i am
posting it here:

--Problem-- as you folks know that i want to learn Modern C++ & in my
country "C++ Primer" 4/e & "Accelerated C++" are not available & being
a jobless person i dont have money to order anything from abroad. i
have these books on my shelf:

1.) "Thinking in C++" 2/e
2.) "C++ Primer" 3/e
3.) "The C++ Programming Language" by Bjarne Stroustrup
4.) An illegal version of "C++ Primer" 4/e as a .chm file on my
Desktop.

i have these 5 options:

1.) read "C++ Primer 4/e" online: cant be done. with online copies
productivity goes down to 20%. reading "physically" really makes the
difference in understanding & learning the language.

2.) i took print-outs of 2-3-4 chapters of C++ Primer 4/e & read them &
found them excellent, though i took a while to understand. it has > 800
pages, for me, it means 1000 pages of print outs from my EPSON
dot-matrix in 8 separate folders. it will be very difficult to learn
this way & what if i want to search for some phrase/ideas in C++, i am
"gone" in this case. i speak from experience, i tried this with
"Practical Common Lisp" & trust me, it was huge time wastage with much
less productivity & output (well, that is why Stroustrup created C++
:)

3.) read "Bruce Eckel": tried that, he makes heavy-use of C. i dont
know C, i dont want to, i want C++.

4.) read "C++ Primer" 3/e: utterly incomprehensible to me.

4.) Learn C first -> OOA & D book -> C++. an excellent way to confuse
myself as i have found that learning "vectors, strings, new-delete"
1st, makes learning "C character arrays & free-malloc" much easier.
(while the opposite is not true, i tried it 2 months ago)

5.) Go directly with Stroustrup: +ve point is i will learn "Pure C++",
-ve point is i dont have any real-life coding experience, hence i found
it *too* dense & 50% of the times i did not understand what exactly he
was talink about. (but i do know what are variables, functions &
classes + strings, vectors, new delete from C++)

from all of this, i concluded Stroustrup is the only way to go. i just
need to dwell into it. what do you suggest?

thanks for your time

- arnuld
http://arnuld.blogapot.com
 
A

Alf P. Steinbach

* arnuld:
from all of this, i concluded Stroustrup is the only way to go. i just
need to dwell into it. what do you suggest?

Go for Stroustrup. That's the book I used (but then I had background
from C, and also, it was the first edition, which was a very slim book
compared to later ones aimed at US market where books are sold by
weight). Just read it /slowly/, like each page is one chapter, and
don't forget, try out things on your computer, e.g. /for each page/!
 
J

Joseph Paterson

arnuld said:
hai all,

i am standing on a "crossroad to C++". I am here in front of you as i
have a problem. i will be brief. Please do not think: "arnuld is sick",
i am really struggling & doing hard-work to become a Modern C++
Programmer & i am feeling as if i am standing on a crossroad. i am
asking because every time i made a decision on my own, in my past, i
always ran into huge wastage of time, money & effort. that is why i am
posting it here:

--Problem-- as you folks know that i want to learn Modern C++ & in my
country "C++ Primer" 4/e & "Accelerated C++" are not available & being
a jobless person i dont have money to order anything from abroad. i
have these books on my shelf:

1.) "Thinking in C++" 2/e
2.) "C++ Primer" 3/e
3.) "The C++ Programming Language" by Bjarne Stroustrup
4.) An illegal version of "C++ Primer" 4/e as a .chm file on my
Desktop.

i have these 5 options:

1.) read "C++ Primer 4/e" online: cant be done. with online copies
productivity goes down to 20%. reading "physically" really makes the
difference in understanding & learning the language.

2.) i took print-outs of 2-3-4 chapters of C++ Primer 4/e & read them &
found them excellent, though i took a while to understand. it has > 800
pages, for me, it means 1000 pages of print outs from my EPSON
dot-matrix in 8 separate folders. it will be very difficult to learn
this way & what if i want to search for some phrase/ideas in C++, i am
"gone" in this case. i speak from experience, i tried this with
"Practical Common Lisp" & trust me, it was huge time wastage with much
less productivity & output (well, that is why Stroustrup created C++
:)

3.) read "Bruce Eckel": tried that, he makes heavy-use of C. i dont
know C, i dont want to, i want C++.

4.) read "C++ Primer" 3/e: utterly incomprehensible to me.

4.) Learn C first -> OOA & D book -> C++. an excellent way to confuse
myself as i have found that learning "vectors, strings, new-delete"
1st, makes learning "C character arrays & free-malloc" much easier.
(while the opposite is not true, i tried it 2 months ago)

5.) Go directly with Stroustrup: +ve point is i will learn "Pure C++",
-ve point is i dont have any real-life coding experience, hence i found
it *too* dense & 50% of the times i did not understand what exactly he
was talink about. (but i do know what are variables, functions &
classes + strings, vectors, new delete from C++)

from all of this, i concluded Stroustrup is the only way to go. i just
need to dwell into it. what do you suggest?

thanks for your time

- arnuld
http://arnuld.blogapot.com

I definitely think you should learn C as well though. You can't go past
"The C Programming Language", by Brian W. Kernighan and Dennis M.
Ritchie.
 
R

Roland Pibinger

i am standing on a "crossroad to C++". I am here in front of you as i
have a problem. i will be brief. Please do not think: "arnuld is sick",
i am really struggling & doing hard-work to become a Modern C++
Programmer & i am feeling as if i am standing on a crossroad. i am
asking because every time i made a decision on my own, in my past, i
always ran into huge wastage of time, money & effort. that is why i am
posting it here:
--Problem-- as you folks know that i want to learn Modern C++ & in my
country "C++ Primer" 4/e & "Accelerated C++" are not available & being
a jobless person i dont have money to order anything from abroad. i
have these books on my shelf:

Why do you want to learn old-fashioned 'Modern C++'? If I were
'standing on a crossroad' I would learn C, a modern scripting language
like Ruby or Python and - depending on the job market - either Java
(language and platform(s)) or C# and .NET.

Best wishes,
Roland Pibinger
 
A

arnuld

Joseph said:
I definitely think you should learn C as well though.

learning new langugae is always a good idea.
You can't go past "The C Programming Language", by Brian W. Kernighan
and Dennis M. Ritchie.

what it has to do with C++?
 
M

mlimber

arnuld said:
i am standing on a "crossroad to C++". I am here in front of you as i
have a problem. i will be brief. Please do not think: "arnuld is sick",
i am really struggling & doing hard-work to become a Modern C++
Programmer & i am feeling as if i am standing on a crossroad. i am
asking because every time i made a decision on my own, in my past, i
always ran into huge wastage of time, money & effort. that is why i am
posting it here:

You should say, "posting it here repeatedly." :)
--Problem-- as you folks know that i want to learn Modern C++ & in my
country "C++ Primer" 4/e & "Accelerated C++" are not available & being
a jobless person i dont have money to order anything from abroad. i
have these books on my shelf:

1.) "Thinking in C++" 2/e
2.) "C++ Primer" 3/e
3.) "The C++ Programming Language" by Bjarne Stroustrup
4.) An illegal version of "C++ Primer" 4/e as a .chm file on my
Desktop.

i have these 5 options:

1.) read "C++ Primer 4/e" online: cant be done. with online copies
productivity goes down to 20%. reading "physically" really makes the
difference in understanding & learning the language.

2.) i took print-outs of 2-3-4 chapters of C++ Primer 4/e & read them &
found them excellent, though i took a while to understand. it has > 800
pages, for me, it means 1000 pages of print outs from my EPSON
dot-matrix in 8 separate folders. it will be very difficult to learn
this way & what if i want to search for some phrase/ideas in C++, i am
"gone" in this case. i speak from experience, i tried this with
"Practical Common Lisp" & trust me, it was huge time wastage with much
less productivity & output (well, that is why Stroustrup created C++
:)

Add to that the ethical issues involved in stolen books, and you have a
clear-cut case against this one, IMHO.
3.) read "Bruce Eckel": tried that, he makes heavy-use of C. i dont
know C, i dont want to, i want C++.

You have a hard-copy of this? If so, it might be your best bet.
4.) read "C++ Primer" 3/e: utterly incomprehensible to me.

Possibly dated, too. I'm not sure.
4.) Learn C first -> OOA & D book -> C++. an excellent way to confuse
myself

Right. C++ is not C.
as i have found that learning "vectors, strings, new-delete"
1st, makes learning "C character arrays & free-malloc" much easier.
(while the opposite is not true, i tried it 2 months ago)

Right. That's why _Accelerated C++_ does it in that order.
5.) Go directly with Stroustrup: +ve point is i will learn "Pure C++",
-ve point is i dont have any real-life coding experience, hence i found
it *too* dense & 50% of the times i did not understand what exactly he
was talink about. (but i do know what are variables, functions &
classes + strings, vectors, new delete from C++)

I presume you mean the 3rd ed. This is an excellent book, but it is not
for beginners. I would suggest learning the basics somewhere else.
from all of this, i concluded Stroustrup is the only way to go. i just
need to dwell into it. what do you suggest?

You're going to have to climb the learning curve somewhere, and I'd say
_Thinking in C++_ is the best of your options. Do the exercises Eckel
gives, and practice practice practice. Maybe you can join an
open-source project of some sort to get additional experience.

Hmm, that doesn't look like a blog to me. Why put it in your sig?

Cheers! --M
 
A

arnuld

Roland said:
Why do you want to learn old-fashioned 'Modern C++'?

what is the reason behind this "saying"?

If "Modern C++" is old-fashioned, what exactly you will say for C.
If I were
'standing on a crossroad' I would learn C, a modern scripting language
like Ruby or Python and - depending on the job market - either Java
(language and platform(s)) or C# and .NET.

this is exactly what i am talking about, "depending on the job market".
i chose C++ because in India, i have found majority of jobs require
standalone "C++, UNIX user experience, OOA & D knowledge + 1-2 years of
real-life coding". i dont like Jave, i hate Java & i use UNIX not
buggy Windows & their crappy tools like ".NET" & "non-sense a.k.a VB".
sorry & i could not resist.

i used Windows for 4 years. since Dec 2005, i am using Debian Sarge & i
feel i am years ahead in my "technical development".
Best wishes,

thanks ;-)
 
A

arnuld

mlimber said:
arnuld wrote:

You should say, "posting it here repeatedly." :)

Ha...Ha.....you naughty boy ;-)
Add to that the ethical issues involved in stolen books, and you have a
clear-cut case against this one, IMHO.

Hmmm.... i think of these issues now.
You have a hard-copy of this? If so, it might be your best bet.

it is a good book but i do not understand most of his programmes
because of "too much of C" is used as basics.
I presume you mean the 3rd ed. This is an excellent book, but it is not
for beginners. I would suggest learning the basics somewhere else.

yes, it is 3rd edition. after reading it for whole day i felt
"Stroustrup" created C++ to solve some of the most painful issues of
Sofware Engineering (the ones where C was quite a terrible choice)
You're going to have to climb the learning curve somewhere, and I'd say
_Thinking in C++_ is the best of your options. Do the exercises Eckel
gives, and practice practice practice. Maybe you can join an
open-source project of some sort to get additional experience.

GNU is my destination for contributions.
Hmm, that doesn't look like a blog to me. Why put it in your sig?

really very sorry for that "typo". corrected this time. it is my blog &
i want to get comments from some "experienced" individuals regarding my
article "On The Perils of Java Schools".
Cheers! --M

OK, i say Cheers! ;-)

-- arnuld
http://arnuld.blogspot.com
 
M

mlimber

arnuld said:
learning new langugae is always a good idea.

Wrong. There is likely no good reason for you to learn COBOL or PL/I.
Not only is it not "a good idea," but if you won't use it, then it's a
waste of your time and money.

With C, the case is certainly more debatable, but I'd say learn C later
or if/when you actually need it (the FAQ agrees:
http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html#faq-28.2).
C is different than C++. For instance, the former requires more
low-level resource management like malloc/free and fopen/fclose, while
the latter automates such tasks with fundamental techniques like RAII.
C requires return codes to indicate errors, while C++ provides
exceptions. Etc. etc. If you want to learn C++, learn C++ not C (or
Java or Smalltalk or whatever).

Cheers! --M
 
A

arnuld

Wrong. There is likely no good reason for you to learn COBOL or PL/I.
Not only is it not "a good idea," but if you won't use it, then it's a
waste of your time and money.

Hmmm...... i think you are *right*. what do 90% of people say in this
world is really way, way wrong. either it needs to be changed or
modified, like you did. i usually do it, in my daily habits like
talking, responding to certain situations or giving an answer to
someone's question, the way you did & nearly 99.99% of the times people
see right & left and remain silent as they do not find any logic of
their questions, after listening to my answer.

today you taught me :)
With C, the case is certainly more debatable, but I'd say learn C later
or if/when you actually need it (the FAQ agrees:
http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html#faq-28.2).

FAQ is good place, i always consult it first & follow it. (it started
just last week as i saw that my 4 months of experience "matches" with
"Learning OO/C++" part of FAQs. i could have saved a lot of time just
by following the advice from FAQ).
C is different than C++. For instance, the former requires more
low-level resource management like malloc/free and fopen/fclose, while
the latter automates such tasks with fundamental techniques like RAII.
C requires return codes to indicate errors, while C++ provides
exceptions. Etc. etc. If you want to learn C++, learn C++ not C (or
Java or Smalltalk or whatever).

i cant explain whether the reason is "low level resource management" or
"something else" but it happened with me in case of "vectors, strings,
new-delete" & "C style character strings, arrays, free malloc, as i
told you in my earlier post.
Cheers! --M

OK... i say Cheers! again ;-)

one more thing, i have my signatures in "gmail" but how can i have my
signatures here in posting answers? i put my name & blog address
everytime manually :-(
 
B

BobR

arnuld wrote in message
3.) read "Bruce Eckel": tried that, he makes heavy-use of C. i dont
know C, i dont want to, i want C++.

Starts in 'C', goes to 'C++'. ( It really helps to be able to recognise 'C'
from 'C++' code.)
Do you have both vol 1 & 2?


I have a method for tech. books:

Read the book cover-to-cover ( like a paper-back novel). Don't stop, even if
you don't understand.
Then, re-read the book. This time, do all the examples (and do experiment!),
end-of-chapter tests, etc.. Do not progress to the next section until you
have (at least some) understanding of the section you are in.

Try it, I think you'll find it logical.
 
G

Greg Comeau

Wrong. There is likely no good reason for you to learn COBOL or PL/I.
Not only is it not "a good idea," but if you won't use it, then it's a
waste of your time and money.

Maybe. Maybe not.
 
M

mlimber

Greg said:
Maybe. Maybe not.

Well, one might learn some things indirectly from such an experience or
gain some self-satifaction for posessing arcane knowledge, but more
than likely one's resources would be better invested elsewhere.

Cheers! --M
 
G

Greg Comeau

Well, one might learn some things indirectly from such an experience or
gain some self-satifaction for posessing arcane knowledge, but more
than likely one's resources would be better invested elsewhere.

Picking up a new language may not _always_ be a good idea,
but not learning sonmething because "you won't use it" does not
have to mean it is arcane.
 
A

arnuld

Starts in 'C', goes to 'C++'. ( It really helps to be able to recognise 'C'
from 'C++' code.)
Do you have both vol 1 & 2?

no, i own only vol-1 but both volumes are easily available in India.
I have a method for tech. books:

Read the book cover-to-cover ( like a paper-back novel). Don't stop, even if
you don't understand.
Then, re-read the book. This time, do all the examples (and do experiment!),
end-of-chapter tests, etc.. Do not progress to the next section until you
have (at least some) understanding of the section you are in.

Try it, I think you'll find it logical.

i tried it IIRC, i found it good. anyway, i have 2 ways to go form the
replies here: Stroustrup & Eckel, i will try them both before making
any point.
POVrookie

what does that mean?
 
M

mlimber

Greg said:
Picking up a new language may not _always_ be a good idea,
but not learning sonmething because "you won't use it" does not
have to mean it is arcane.

Yes, yes. I didn't mean in absolute terms. Just pragmatically speaking.

Cheers! --M
 
T

tragomaskhalos

Arnuld,

Some extra advice:

1/ Books are great, but you will only make real progress by writing
code.
So, whichever book you decide to use, get yourself a free compiler - in
fact preferably several - and get coding.
And whilst small snippets are OK, a meaty project is the best way to
really get to grips with the language.

2/ C++ is a big language, but it can be tackled one bit at a time -
don't try and learn the whole lot at once, instead learn the core
concepts and practice them, then move on to the next level.

3/ If there is an economic imperative at work here - eg you can't
afford books - whilst I applaud your dedication to C++ I question it
from a commercial perspective. .NET and/or Java are a far shorter route
to paying the bills. I say this as someone who processes a good deal of
CVs from your part of the world.

Good luck anyway ...
 
M

mlimber

glen said:
For learning the language I pass another book on my shelf, by O'Reilly.
It's loaned out right now, but I think it was title just 'Learning C++'.

The problem is that the OP has limited book availability. As for
_Learning C++_, see the review at:

http://accu.org/index.php/book_reviews?url=view.xqy?review=l003746

If any book were a possiblity, I'd still go with _Accelerated C++_ (see
the review at
http://accu.org/index.php/book_reviews?url=view.xqy?review=a002212).

Cheers! --M
 

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

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,906
Latest member
SkinfixSkintag

Latest Threads

Top