By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,686 Members | 2,392 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,686 IT Pros & Developers. It's quick & easy.

who read what c++ books and best learning practices?

P: n/a
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine

The C++ Programming Language
C++ Primer
Effective C++
More Effective C++
Effective STL
The C++ Standard Library : A Tutorial and Reference (most of it)
Exceptional C++
More Exceptional C++
C++ strategies and tactics
Designed Patterns
Professional C++ (started reading, but didn't like it after first
chapter - thus stopped)

This summer goal:
Large Scale design in C++
C++ Templates
Thinking in C++ both volumes

Suggestions, other peoples experiences, comments?

How's is C++ doing these days?

I am ended being a java developer (never developed a commercial
software in C++, only for fun).

Cheers,

puzzlecracker

May 8 '06 #1
Share this Question
Share on Google+
26 Replies


P: n/a
puzzlecracker wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine


Your next book should be about usenet etiquette. Meanwhile, RTFM.

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

May 8 '06 #2

P: n/a
Jonathan Mcdougall wrote:
puzzlecracker wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine


Your next book should be about usenet etiquette. Meanwhile, RTFM.

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


Wha'd he do wrong? We discuss books here all the time...

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 8 '06 #3

P: n/a
In article <11*********************@v46g2000cwv.googlegroups. com>,
"puzzlecracker" <ir*********@gmail.com> wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine

The C++ Programming Language
C++ Primer
Effective C++
More Effective C++
Effective STL
The C++ Standard Library : A Tutorial and Reference (most of it)
Exceptional C++
More Exceptional C++
C++ strategies and tactics
Designed Patterns
Professional C++ (started reading, but didn't like it after first
chapter - thus stopped)

This summer goal:
Large Scale design in C++
C++ Templates
Thinking in C++ both volumes

Suggestions, other peoples experiences, comments?
Not a bad reading list, but I do have a comment. Learn something else.
No, I'm not being facetious. Learn Python, Ruby, Smalltalk, C#, D,
whatever. Maybe not all of them, but certainly more than one. This may
not make you a better "C++ practitioner", but it'll make you a more rounded
programmer, as you see how similar problems can be solved in different ways.
How's is C++ doing these days?


It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years. I think
there will continue to be a market for good C++ programmers for a long
time, but there will be an even better market for good programmers, for
whom C++ is just one of their skills.
May 8 '06 #4

P: n/a
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years. I think
there will continue to be a market for good C++ programmers for a long
time, but there will be an even better market for good programmers, for
whom C++ is just one of their skills.


What is a good compliment to C++?

What good technologies these exploit?

thx

May 8 '06 #5

P: n/a
Phlip wrote:
Jonathan Mcdougall wrote:
puzzlecracker wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine


Your next book should be about usenet etiquette. Meanwhile, RTFM.

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


Wha'd he do wrong? We discuss books here all the time...


Oh, he's done nothing wrong per se with this post. It's just that he's
a chronic troll. Look it up, it`s actually fun.
Jonathan

May 8 '06 #6

P: n/a
In article <11**********************@i40g2000cwc.googlegroups .com>,
"puzzlecracker" <ir*********@gmail.com> wrote:
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years. I think
there will continue to be a market for good C++ programmers for a long
time, but there will be an even better market for good programmers, for
whom C++ is just one of their skills.


What is a good compliment to C++?


Well, in my original post, I listed "Python, Ruby, Smalltalk, C#, D". I
think any of those would be worth learning. They're all object oriented
languages, and all have somewhat different design goals and philosophies.
You indicated that you already know Java, so I didn't put that on the list;
it goes without saying that any well-rounded programmer today should have
at least some familiarity with Java.

Of those on my list, Smalltalk and D are probably the least commercially
important today (and C# the most). Smalltalk will give you a historical
perspective. D will let you explore some "what if" scenarios in current
language design.
May 8 '06 #7

P: n/a
puzzlecracker wrote:
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years. I think
there will continue to be a market for good C++ programmers for a long
time, but there will be an even better market for good programmers, for
whom C++ is just one of their skills.


What is a good compliment to C++?

What good technologies these exploit?

thx


I recommend the following, which have nothing to do with any particular
language:

1. Fundamentals of Algorithmics, by Gilles Brassard and Paul Bratley

A good introduction to algorithmics, with a decent balance between the
academic and the pragmatic.

2. Algorithmic Design, by Jon Kleinberg and Eva Tardos

This was clearly designed to be an undergraduate Algorithms text book,
complete with problem sets.

3. Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein

This book, referred to commonly as just CLRS, is less of an
introduction, and more of massive catalog of algorithms, along with
proofs of correctness and run-time analysis.
If you've really read (and understood) all the books on your list, then
you've already extracted all but a marginal amount of the value
available from studying C++, and you'd do much better to study computer
science in general.

If you are looking for a new language to learn, I suggest Lisp. It is
likely you have a good grasp on procedural programming, and if you read
and understood Design Patterns, you likely have a decent grasp on object
oriented programming as well. Learning Lisp would complete the picture
by teaching you functional programming (assuming you don't already have
experience with it).

--
Alan Johnson
May 8 '06 #8

P: n/a
Jonathan Mcdougall wrote:
Wha'd he do wrong? We discuss books here all the time...


Oh, he's done nothing wrong per se with this post. It's just that he's
a chronic troll. Look it up, it`s actually fun.


I'm completely aware of his posting history and I only fault him for being
socially inept.

Sure, the FAQ might possibly cover "don't post short open-ended questions
that sound like prompts for exam essays", but I don't see how just posting
RTFM will improve things...

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 8 '06 #9

P: n/a
puzzlecracker wrote:
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years. I
think
there will continue to be a market for good C++ programmers for a long
time, but there will be an even better market for good programmers, for
whom C++ is just one of their skills.

I think the industry has yet to learn if the pure STL-style of programming,
beyond mere "C with Classes", will take off and lead to killer apps.
What is a good compliment to C++?
C++ represents the static typing model within OO. Get with a dynamic typing
model, such as Python, Ruby, or Smalltalk. Perl also qualifies - just as
Java qualifieds as another static model - but they come with major issues.
What good technologies these exploit?


Good dynamic languages are very easy to extend and bond with existing
systems. So for example Ruby distributions can easily bundle with GUI
toolkits like Tk, Qt, FOX, FLTK, etc. The ability to bond modules together
is very important.

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 8 '06 #10

P: n/a
I'm completely aware of his posting history and I only fault him for being
socially inept.


I am not aware of this, please enlighten me about me..

Cheers,

May 8 '06 #11

P: n/a
aborovinsky wrote:
I'm completely aware of his posting history and I only fault him for
being
socially inept.


I am not aware of this, please enlighten me about me..


Google puzzlecracker. He keeps asking short open-ended questions in ways
that generally don't prove he's learning. He routinely draws the "no
homework" response.

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 8 '06 #12

P: n/a
puzzlecracker wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine

The C++ Programming Language
C++ Primer
Effective C++
More Effective C++
Effective STL
The C++ Standard Library : A Tutorial and Reference (most of it)
Exceptional C++
More Exceptional C++
C++ strategies and tactics
Designed Patterns
Professional C++ (started reading, but didn't like it after first
chapter - thus stopped)

This summer goal:
Large Scale design in C++
C++ Templates
Thinking in C++ both volumes

Suggestions, other peoples experiences, comments?

That's a good list. My top 10 list includes some of the above books.
Here are the top 10 programming books that I recommend to all C++
programmers:
Effective C++ by Scott Meyers
More Effective C++ by Scott Meyers
Exceptional C++ by Herb Sutter
More Exceptional C++ by Herb Sutter
Effective STL by Scott Meyers
C++ Coding Standards : 101 Rules, Guidelines, and Best Practices {Herb

Sutter, Andrei Alexandrescu}
Programming languages - C++ STANDARD ISO/IEC 14882:1998(E)
C++ Programming Language Special Edition, The by Bjarne Stroustrup
Efficient C++ by Dov Bulka & David Mayhew
Modern C++ Design by Andrei Alexandrescu

May 8 '06 #13

P: n/a
* Axter:
puzzlecracker wrote:
It'd be interesting to compare the learning practices of c++
practitioners. I'll start with mine

The C++ Programming Language
C++ Primer
Effective C++
More Effective C++
Effective STL
The C++ Standard Library : A Tutorial and Reference (most of it)
Exceptional C++
More Exceptional C++
C++ strategies and tactics
Designed Patterns
Professional C++ (started reading, but didn't like it after first
chapter - thus stopped)

This summer goal:
Large Scale design in C++
C++ Templates
Thinking in C++ both volumes

Suggestions, other peoples experiences, comments?

That's a good list. My top 10 list includes some of the above books.
Here are the top 10 programming books that I recommend to all C++
programmers:
Effective C++ by Scott Meyers
More Effective C++ by Scott Meyers
Exceptional C++ by Herb Sutter
More Exceptional C++ by Herb Sutter
Effective STL by Scott Meyers
C++ Coding Standards : 101 Rules, Guidelines, and Best Practices {Herb

Sutter, Andrei Alexandrescu}
Programming languages - C++ STANDARD ISO/IEC 14882:1998(E)
C++ Programming Language Special Edition, The by Bjarne Stroustrup
Efficient C++ by Dov Bulka & David Mayhew
Modern C++ Design by Andrei Alexandrescu


I have a number of editions of Bjarne Stroustrup's The C++ Programming
Language, and I have Andrei Alexandrescu's Modern C++ Design. Those are
books I have gone back to numerous times and actually learned from.
Although for TCPPPL not in the last five or perhaps eight years, much
like I once had the complete Pascal syntax memorized.

I've also benefited from Lakos (Large Scale Design), but one should keep
in mind that that book is very dated.

From what I've seen of the table of contents, I think most programmers
will benefit from Andrei Alexandrescu and Herb Sutter's "C++ Coding
Standards": it's at a level far above and much more useful than the
placement of curly braces, and although I do not entirely agree with all
they apparently say, the table of contents indicated a Superb Book.

The rest, well.

I have the electronic version of "Thinking in C++" because I have had to
refer to its various bugs and misinformation in discussions. That said,
it's one of the best freely available introductions for complete
newbies. But it's very C-oriented.

"Effective C++": I've skimmed it, and had occasion to help people
correct the impressions they've gained from reading the book(s).
Generally good guidelines for newbies, but one must keep in mind that
they're guidelines and rules of thumbs, not absolute truths. Also, make
sure you have the latest edition, because many things have been
corrected (I know that because when I mailed Scott about something
someone quoted from the book, he replied it had been corrected in 2001).

"The C++ Standard Library" is probably a must for those who really want
to conquer the standard library. Me, I think if you can do something
with a simple and very clear for loop that's three lines, taking perhaps
15 seconds to write, it's plain silly to use 3600 seconds browbeating
the standard library into doing the same in one indecipherable line
supported by a potentially reusable adapter-thing. But hey, since it's
potentially reusable the support code doesn't count, does it? Anyway,
as I recall (from a newsgroup discussion example) this book contains at
least one example that's completely Unix-oriented and not noted as such.
I suspect the book is similarly upbeat about other features of the
standard library, neglecting to mention the less than glorious aspects.

And so on.

But there's one /very important/ book missing in this list.

Namely "Scientific and Engineering C++: An Introduction with Advanced
Techniques and Examples" by Barton and Nackman. It's old, but not
dated. Remind me to buy it!

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
May 8 '06 #14

P: n/a
Namely "Scientific and Engineering C++: An Introduction with Advanced
Techniques and Examples" by Barton and Nackman. It's old, but not
dated. Remind me to buy it!


are sure about this book?

May 8 '06 #15

P: n/a
Roy Smith wrote :
How's is C++ doing these days?


It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years.


Is it what people call 'a troll' ?
May 8 '06 #16

P: n/a
loufoque wrote:
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years.


Is it what people call 'a troll' ?


No.

Screaming "Perl sucks" on a Perl group is, because that would be closer to
the truth. Everyone would get defensive about it.

A good definition of a troll is "one who seeks flames". A useful opinion of
C++'s relevance arc doesn't qualify.

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 10 '06 #17

P: n/a
Is it what people call 'a troll' ?


asking for definition of troll in C++ group IS TROLLING...

May 10 '06 #18

P: n/a
Roy Smith <ro*@panix.com> wrote:
"puzzlecracker" <ir*********@gmail.com> wrote:
How's is C++ doing these days?
It's a dying language. It's been dying for the last 10 years, and I
predict it will continue to be dying for the next 10 or 20 years.


Funnily enough, C++ actually is not in decline. Other languages are; for
example, Java use peaked several years ago and has since been in minor
decline, but C++ has stayed steady and slightly growing overall (I've seen
various measures including job listings, books, and others).

For example, just yesterday I saw the following:

From http://www.eweek.com/article2/0,1895,1957139,00.asp

“The most sought-after skills, based on job postings, continue
to include C and C++ with postings requiring such experience
growing 5.5 percent in April.”

The actual report (the normal monthly 2 page report by Dice.com) can be
found here:

http://media.corporate-ir.net/media_.../DiceMay06.pdf

Total number for posting on Dice.com are:

C/C++: 16,055
.Net: 11,676
Java: 11,531

For those who dislike the character string "C/C++", please feel free to
change the substring "/" to " and ". :-)
I think
there will continue to be a market for good C++ programmers for a long
time,
True.
but there will be an even better market for good programmers, for
whom C++ is just one of their skills.


True.

Herb

---
Herb Sutter (www.gotw.ca) (www.pluralsight.com/blogs/hsutter)

Convener, ISO WG21 (C++ standards committee) (www.gotw.ca/iso)
Architect, Developer Division, Microsoft (www.gotw.ca/microsoft)
May 10 '06 #19

P: n/a
Herb Sutter wrote:
Total number for posting on Dice.com are:

C/C++: 16,055
.Net: 11,676
Java: 11,531


Uh, maybe that means more C++ programmers are quitting...

;-)

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 10 '06 #20

P: n/a
On Wed, 10 May 2006 04:09:40 GMT, "Phlip" <ph******@yahoo.com> wrote:
Herb Sutter wrote:
Total number for posting on Dice.com are:
C/C++: 16,055
.Net: 11,676
Java: 11,531


Uh, maybe that means more C++ programmers are quitting...
;-)


Yeah, they are buying all the gas stations that are now coming on the
market. Nothing like good timing baby....

"Don't think of it as dying," said Death. "Just think of it as leaving
early to avoid the rush." - T. Pratchett & N. Gaiman
May 10 '06 #21

P: n/a

Herb Sutter wrote:

Total number for posting on Dice.com are:

C/C++: 16,055
.Net: 11,676
Java: 11,531

For those who dislike the character string "C/C++", please feel free to
change the substring "/" to " and ". :-)


There was a general decline in the market about 5 years ago, and it has
picked up again within the last 2 years. Programmers in all languages
had problems finding jobs (at least here in the UK) over the last 5
years.

C++ has lost of lot of programmers who were primarily COM programmers
and have now moved to C# to program in .NET because they see that as
the advance. Some may go CLI but it is generally perceived that C# is
the main .NET language and so people will choose to program in it.

Over here, the best things to learn combined with standard C++ are:

- Investment banking.
- Database skills, i.e. general SQL and RDBMS combined with at least
one specific (preferably Sybase or Oracle. Oracle is used more but as
Sybase uses Transact you can then throw Microsoft SQL Server in with it
too). If you learn Oracle then you learn PL/SQL.

For investment banking, buy John Hull's book. Generally considered the
standard. Can't recommend any particular book right now for the
database skills.

It would also be advantageous to learn some design skills. Learn some
UML - Booch and Yourdon are considered the gurus with regard to OOD.

May 11 '06 #22

P: n/a

Phlip wrote:
Herb Sutter wrote:
Total number for posting on Dice.com are:

Uh, maybe that means more C++ programmers are quitting...
I assume this is humor :-). From what I've heard the embedded world are
nowadays more interested in C++, and also the cellphone industry. I've
read some snippets of Imperfect C++ (Mathew Wilson). I tend to agree
with his preface. I have a creative side too and C++ allows me to use
this. I'll use it even after it doesn't give me a job. Java (no offence
to any Java programmers) just simple bores me. I can see the need for
it though. I also think that one good c++ programmer with good
libraries to his disposal, can replace a whole team of Java
programmers. The ways code can be generated, and the almost infiinte
possibility of changing things with the combination of compile time and
runtime polymorphism, is something lacking in other languages. Since C#
and Java has arrived, they have just playing catchup all along. New
names for old things, here and there an abstraction made part of the
language (and abstraction easily creatable in C++ by the use of
imagination).

Many would probably disagree with me, but many won't. I have felt at
times though, that I wanted to pull out my hair when someone elses
pointers mess up my classes. This is happening less often nowadays
though.

IM(h)O, either C++ is here to stay, or it will be replaced by something
(more) similar than C#/Java, but with less ties to C. Yes, I know about
D (just in case you're reading). The C++ standard guys aren't sitting
on their buts either. There are many people married to the language and
instead of critisizing, trying to improving it. I have faith in those.

Kind regards,

Werner

;-)

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!


May 11 '06 #23

P: n/a

werasm wrote:
I assume this is humor :-). From what I've heard the embedded world are
nowadays more interested in C++, and also the cellphone industry.


neither of which allow exceptions so it is not standard C++ as we know
it.

The job market has changed a lot though in the last few years. There
are very few jobs now for C++ experts unless you also have business
knowledge. For all the wonderful things boost has done, it has made a
certain type of programmer redundant.

May 11 '06 #24

P: n/a

Earl Purple wrote:
werasm wrote:
I assume this is humor :-). From what I've heard the embedded world are
nowadays more interested in C++, and also the cellphone industry.
neither of which allow exceptions so it is not standard C++ as we know
it.


Many C++ programmers come from pre-exception days anyway. Whether
programming in exception enabled or disabled C++ doesn't make that big
a difference (IMHO). Also, I don't think EC++ will always prohibit
exceptions. Furthermore, e-processors may not require EC++. The other
thing that I can mention, is that the switch from C++ to Java is easier
than visa-versa. This is not because C++ is a bad language, but because
it supports many concepts that Java don't (or at least hasn't when it
started out). From experience, if we have a new Java programmer working
on a C++ project, we usually had a few nasty ones to look for :-). All
said, many C++ programmers (who started out using C++) program
comfortably in both languages, after learning use of Javalib - as with
any library.

Regards,

Werner

The job market has changed a lot though in the last few years. There
are very few jobs now for C++ experts unless you also have business
knowledge.
I'm in favor of believing that a programmer doesn't have to be a domain
expert. He gathers knowledge of the required domain on the fly. There
must be some sort of inteface (body) between the domain and programmers
though, and this body should be able to understand enough about the
domain and software. Many programmers on the other hand, are good
communicators too (Growing up with OOP and UML). They slot into the
requirements world naturally. They ask: What do you want? not: Why?,
except if they see obvious logic flaws. I do agree with DB
principles/theory being important. I don't deem it that difficult to
learn (I'm not an expert, but have done normalisation and ER on odd
occation). I hear of people who even find it boring after a while -
something they haven't experienced with C++ yet.
For all the wonderful things boost has done, it has made a
certain type of programmer redundant.


How did boost make certain types of programmers redundant?

May 11 '06 #25

P: n/a
werasm wrote:
Uh, maybe that means more C++ programmers are quitting...


I assume this is humor :-).


What if it weren't??

The humor is Herb abused partial data. The number of openings on Dice is a
negative indicator; the number of _unfilled_ positions. Herb assumed a
correlation with the positive data - the total number of C++ positions out
there, filled and unfilled. (Facts on the ground, the global odds of
programming positions becoming vacant is probably very steady, and churned
by many more forces than C++'s quality, so the correlation is probably
indirectly valid...)

Don't get me wrong - I abuse partial data, and humor, all the time.

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
May 11 '06 #26

P: n/a
Earl Purple wrote:
werasm wrote:
I assume this is humor :-). From what I've heard the embedded world are
nowadays more interested in C++, and also the cellphone industry.

neither of which allow exceptions so it is not standard C++ as we know
it.

That's news to me, I allow them in my projects.
The job market has changed a lot though in the last few years. There
are very few jobs now for C++ experts unless you also have business
knowledge. For all the wonderful things boost has done, it has made a
certain type of programmer redundant.

Last time I wanted to recruit an embedded C++ developer, it took me 6
months to find one. So I'd change 'business' to 'domain', where
embedded is a domain.

--
Ian Collins.
May 11 '06 #27

This discussion thread is closed

Replies have been disabled for this discussion.