Need a C++ book for complete idiot!

M

me

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?
 
C

Christopher Dearlove

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?

Francis Glassborow's book "You Can Do It" is aimed exactly
at you.
 
C

capricorn

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?

you can start with complete reference by herbert schildt for c++
this will help you knowing basics
how actually thing going in front of you or you can refere along some
other basic book
 
F

Francesco

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?

Once you get even just a very basic experience with programming in
general you might take advantage of reading The C++ Programming Level
by Bjarne Stroustrup, the creator of C++.

The book starts from the fundamentals and presents them quite simply
and shortly before diving deep into details - but then, the complexity
rises up quite steep. This is normal because in around one thousand
pages it presents the whole language and wide parts of the Standard
Template Library.

This is currently the first and only book I ever read about C++ (I
came from VB). Then I started practicing by myself and gathering
information on the Internet. Lately I'm taking a good straightening of
my knowledge by confronting it here publicly on clc++.

You might want to take advantage of this group too, feel free to post
your questions and issues once you got some, you'll get good help.

Cheers,
Francesco
 
F

Francesco

Once you get even just a very basic experience with programming in
general you might take advantage of reading The C++ Programming Level
by Bjarne Stroustrup, the creator of C++.

Eeheheh, automatic typing... of course the above should read "The C++
Programming Language" ;-)

Sorry Bjarne!

Francesco
 
A

Andrew Tomazos

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?

If you really have no programming experience whatsoever, C++ is a
really bad language to start with. I would start by using a scripting
language to write and test some little programs. You can do this
inside a web browser even:

http://tryruby.sophrinix.com/

After that, I would move onto an OO language with a large standard
library and standard garbage collection like Java or C#. After
writing some medium length programs in one of those environments, only
then would I turn to C++.
-Andrew.
 
F

Francesco

If you really have no programming experience whatsoever, C++ is a
really bad language to start with.

Of course you're free to give all the advices you want, Andrew, but I
don't agree with your statement above. Each programming language has
its positive and negative aspects. Further details below.
I would start by using a scripting
language to write and test some little programs.  You can do this
inside a web browser even:

   http://tryruby.sophrinix.com/

After that, I would move onto an OO language with a large standard
library and standard garbage collection like Java or C#.  After
writing some medium length programs in one of those environments, only
then would I turn to C++.

Learning the fundamentals of programming in another language means
setting to mind some points which _have to be_ changed when switching
to C++.

I agree that knowing more that one language is a very important step
for any programmer, but then, starting from one or from another
doesn't make any big difference - assuming those languages are equally
high-level.

In my experience, for example, I found it easy to learn the interface
of std::vector and std::string and _then_ digging the tricks needed to
manage arrays and null-terminated C strings.

In the same way, if one really wants to learn C++, it's better to
start from scratch with strong-typing and then, eventually, learn all
the additional functions and operands needed by a loosely-typed script
language like JavaScript - assuming one wants to learn it.

About dynamic memory and garbage collection, nobody obliges you to use
it in C++. You can build pretty large and useful applications without
never ever using "new" and "delete". In other words, what you don't
use/need/see cannot harm you.

Just my personal point of view, as I said above, you're free to give
all the advices you want and I would fight to ensure to you this
prerogative.

Best regards,
Francesco
 
A

arnuld

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null


If you have just stepped into programming, you can start from these
places:

http://www.htdp.org/
http://pine.fm/LearnToProgram/
http://www.amazon.com/Lisp-3rd-Patrick-Winston/dp/0201083191
http://wiki.python.org/moin/IntroductoryBooks
http://wiki.python.org/moin/BeginnersGuide/NonProgrammers


Thought I don't recommend mostly about languages, I say you don't
start with a language like C or C++ as your first language. The above
links I provided will help you a lot. But if you are bent on learning C
++ as first language, you keep in mind these things:

1) Hook onto CLC++. Discard what books your friends/teachers use or
what they say. Just seek the advice of regular posters of this
newsgroup.

2) Use either Accelerated C++ or C++ Primer 4/e to begin

3) Read C++ FAQs when in doubt.

4) Count 12 months from the day you start, After 12 months, you will
start to understand something (if you are an average guy like me)


Can you guys recommend a book for someone on my level I
can buy from Amazon?

You can get all those books from Amazon easily.
 
A

Andrew Tomazos

I agree that knowing more that one language is a very important step
for any programmer, but then, starting from one or from another
doesn't make any big difference - assuming those languages are equally
high-level.

If that is true, then why do the vast majority of universities teach
first year computer science students in Java, and not C++ ? I'm sure
the professors setting the curriculum are quite familiar with C++, so
we must conclude that they would disagree with your position, right?
-Andrew.
 
A

Alf P. Steinbach

* Andrew Tomazos:
If that is true, then why do the vast majority of universities teach
first year computer science students in Java, and not C++ ? I'm sure
the professors setting the curriculum are quite familiar with C++, so
we must conclude that they would disagree with your position, right?

I see three possible reasons (at the time I taught, early 1990's, I started the
students with Pascal and proceeded to C++).

First, it's extremely difficult to teach C++ from the start because almost
everything in the language is connected to everything else. If students had had
a solid background in e.g. digital electronics and mathematics this would not be
so big a problem. But this is not so, and in a typical curriculum there's no
room to add in such background: essentially, except at institutions such as MIT,
the goal & aim is to give the student enough shallow knowledge to be able to
acquire The Real Stuff after graduation, and with C++ that's almost impossible.

Second, there's a lack of simple to use libraries for C++. This is not a library
shortage issue (GUI, network, database, all that stuff in the "standard" Java
library), because C++ enjoys an extreme richness of available libraries; to wit,
Java's base functionality is implemented in C and C++. It's a language and
competency issue: the tool usage aspects of using a library are very hard in C++
(language issue), and the programmatic aspecs of using a library are very hard
(C++ programmers are assumed to be very competent, not first year students).
Thus it's difficult to motivate students when starting with C++ because creating
impressive small programs is very hard, not simple like a Java program.

Third, due to the above two reasons and due to "those that can't, teach", it may
be that the teachers don't know C++ and wouldn't be qualified to teach C++ even
if they did know the language.

However, it may be that Java being popular as a first language is similar to
MS-DOS once being popular as an operating system. Technically better operating
systems existed. But MS-DOS dominated *because* it dominated: the dominant
system, language or whatever doesn't need to be best, because once it's top dog
(in some context) that in itself is a huge factor in keeping it top dog.


Cheers & hth.,

- Alf
 
R

REH

If that is true, then why do the vast majority of universities teach
first year computer science students in Java, and not C++ ?  I'm sure
the professors setting the curriculum are quite familiar with C++, so
we must conclude that they would disagree with your position, right?

I think it's because they "dumbed it down." My first two years of
Comp. Sci. (80's) was Pascal, C, COBOL, RPG II, and Vax Assembly.
Later, it was Ada, Module 2, and C++. For the most part, these
language weren't taught. They were used in the instruction of other
things (Data Structures, Algorithmic Analysis, etc.). You were
expected to learn languages as you went along.

The last few years, our new hires were taught Java in college (just
Java, not Comp. Sci. or Comp. Eng.). I think their schools did them a
disservice. They usually get stuck when there isn't a library to do
something for them, and they have to write it themselves.

Not to bash Java, but if that is all your are taught, you didn't get a
proper education.

REH
 
F

Francesco

If that is true, then why do the vast majority of universities teach
first year computer science students in Java, and not C++ ?  I'm sure
the professors setting the curriculum are quite familiar with C++, so
we must conclude that they would disagree with your position, right?

Yes, they would disagree, and they would be free to stand by their
point. On the other side, I'm free to disagree about their - and yours
- opinion, and I would be free to stand by my point.

The contexts are slightly different - the OP wants to learn some C++,
universities want to teach programming in general for starters. This
doesn't change much the situation, I know.

I could argue that the "vast majority" you mentioned implies there
_is_ some university which disagree with the others and _don't_ teach
Java to first year students. Majority of consensus doesn't imply
"rightfulness", hence the majority _can_ be wrong. Notice that I am
_not_ saying they _are_ wrong (I don't think they are, this is all
matter of teaching experience and tastes), I'm just asserting the
weakness of your argumentation - which based itself on some
"authority" custom.

In any case, the above isn't going to lead to any good, more likely it
could slip into polemics and language advocacy - something I'm really
not interested in.

Since I simply stated my point of view, and it's you who compared it
to universities' customs, I think the answer to the question "why do
the vast majority of universities teach first year computer science
students in Java, and not C++ ?" would be completely up to you.

From my point of view, Java and C++ are both good languages to start
with, I just highlighted the OP's will to learn C++. Nothing more than
that.

Best regards,
Francesco
 
J

Jorgen Grahn

If you really have no programming experience whatsoever, C++ is a
really bad language to start with. I would start by using a scripting
language to write and test some little programs.

I agree with this part. Python, Ruby or maybe Haskell.
You can do this
inside a web browser even:

http://tryruby.sophrinix.com/

That is slightly amusing, but seems like a bad idea. If you cannot
spare the 10 minutes it takes to download and install any of those
languages' standard environments with their full documentation, you
probably will never learn programming.
After that, I would move onto an OO language with a large standard
library and standard garbage collection like Java or C#.

This step I disagree with. Pure 1980s-style OO and garbage collection
leads you /away/ from C++. If that's where you want to go, it's a dead
end.

/Jorgen
 
J

Jorgen Grahn

you can start with complete reference by herbert schildt for c++
this will help you knowing basics

A word of warning: a lot of people would characterize Schildt's books
as books that /make/ you an idiot programmer.

(I haven't personally read any of his books since the early 1990s, so
he might have improved -- if indeed he still writes.)

/Jorgen
 
M

me

arnuld said:
1) Hook onto CLC++. Discard what books your friends/teachers use or
what they say. Just seek the advice of regular posters of this
newsgroup.

OK

Thanks so much guys!!

Be prepared for a LOT of dumb simple questions coming
up!
 
V

Victor Bazarov

OK

Thanks so much guys!!

Be prepared for a LOT of dumb simple questions coming
up!

Just to let you know, there is 'alt.comp.lang.learn.c-c++' newsgroup for
dumb simple questions, as well.

V
 
M

me

Victor Bazarov said:
Just to let you know, there is 'alt.comp.lang.learn.c-c++' newsgroup for
dumb simple questions, as well.

Aha!!

That is where I will go then!!
 
J

Jorgen Grahn

* Andrew Tomazos: ....

I see three possible reasons (at the time I taught, early 1990's, I started the
students with Pascal and proceeded to C++).

For me as a student at the time, they taught Standard ML and
(reluctantly) Modula-2. Later quite a lot of C and SML, and other
languages mostly to illustrate things like OOP (what's where C++ came
in, for a week or two).
First, it's extremely difficult to teach C++ from the start because almost
everything in the language is connected to everything else.

Is it really, and if so, isn't that how it should be in a language?

I think "The C++ Programming Language" shows that you *can* introduce
C++ piece by piece. The book may not be the ideal introduction to C++
programming for the complete novice, but that has other reasons.

....
[snip excellent and depressing MS-DOS example]

/Jorgen
 
L

Lucius Sanctimonious

I'm trying to teach myself some C++

I have NO programming experience...... none....
zip...... null

Can you guys recommend a book for someone on my level I
can buy from Amazon?

Perhaps you should start with C?

There is a legendary book, the first one, known as K&R. It is concise
and to the point.

-Ramon
 

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,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top