Resources
"We've got your sources for the best resources!"
So your hard drive is filled up with all these neat compilers, libraries, and tools - oh my! - but what about the rest?
"The rest?" Yes, fellow programmer, the rest!
This section contains links to C++
journals,
programming languages,
documentation,
and
books.
: located locally (on the CD).
: located on the World Wide Web
1.
Journals/Periodicals
BYTE
BYTE has been serving the software development community since 1975, and is still going strong. Now an online-only
magazine, it provides informed and stimulating columns by well-established commentators, along with fresh articles
on a diverse range of topics.
|
C/C++ Users Journal
Simply the journal for C and C++ programmers. Columns by all the masters - Alexandrescu, Hyslop,
Koenig, Moo, Sutter - and a real crazy kipper, 'nuff said.
|
CVu & Overload
C and C++ magazines from the Association of C and C++ Users. Both these magazines provide interesting, digestible,
articles on a great many C and C++ issues.
|
Dr. Dobb's Journal
The premier journal for general software development. Dr. Dobb's Journal consistently appeals to a wide cross-section
of programmers, from all operating systems, platforms, and languages. Whether you're interested in power programming
in Java, C++, C#/.NET, or power scripting in Perl, Python and Ruby, or you want to learn about new languages like D,
Dr. Dobb's has important information for you.
|
The C++ Source
The C++ Source is a new, free, peer-reviewed, online journal for the C++ community. Its advisory board consists of
some of the best-known names in the C++ industry, including the language's designer, Bjarne Stroustrup. Become a
subscriber, and keep up to date with the latest things in C++, as they happen.
|
Windows Developer Network
The independent magazine for Windows developers. As of the end of 2003, this became an online-only publication,
but it still provides advice from top Windows developers. The fact that I had 25 articles and tips published in WDN
in 2003 has nothing to do with this demise. Nothing. I'm telling you !!
|
Other Programming Languages
|
As you may guess as you read it, many of the techniques I've devised and described in the book have been inspired by
aspects of other languages. These include the popular languages C, Java, C#/.NET, Perl and Python. Currently less
popular, but just as interesting, are the following two languages, which I'm giving an extra plug in case you've
not heard about them before:
|
D
D is a general purpose systems and applications programming language. It is a higher level language than C++,
but retains the ability to write high performance code and interface directly with the operating system API's and
with hardware. D is well suited to writing medium to large scale million line programs with teams of developers. D is
easy to learn, provides many capabilities to aid the programmer, and is well suited to aggressive compiler optimization technology.
|
Ruby
Ruby is an interpreted scripting language for quick and easy object-oriented programming. It has many features to process
text files and to do system management tasks (as in Perl). It is simple, straight-forward, extensible, and portable.
I've used Ruby extensively for the research of the book, and preparation of the CD. The
recls
and
Open-RJ
libraries both contain Ruby mappings.
|
Documentation
|
I don't know about you, but I find it impossible to remember the syntax (and sometimes the semantics!) of
the standard library. Thankfully, we don't need to. Just use one or more of the following links, and you
won't go far wrong.
|
C++ Standard Library Reference (RogueWave)
Roguewave's Standard Template Library documentation
|
C++ Standard Template Library Reference (STLport)
STLport's Standard Template Library documentation
|
C++ Standard Template Library Reference (SGI)
SGI's Standard Template Library documentation
|
MSDN
Microsoft's Developer Network (MSDN)
|
Books
|
I gave a list of books in the Imperfect C++ bibliography, all of which I'd recommend. However, there are a lot of
other good books, so the following is a more comprehensive list of books it'd behove you to have on your shelves
(or borrow from your colleagues):
|
Advanced Programming In The UNIX Environment
Author(s): W. Richard Stevens
Publisher: Addison-Wesley, 1993
|
Advanced Windows
Author(s): Jeffrey Richter
Publisher: Microsoft Press, 1997
|
Algorithms in C, Parts 1-4, 3rd Edition
Author(s): Robert Sedgewick
Publisher: Addison-Wesley, 1998
|
Algorithms in C++, Parts 1-4, 3rd Edition
Author(s): Robert Sedgewick
Publisher: Addison-Wesley, 1998
|
Algorithms in C++, Part 5, 3rd Edition
Author(s): Robert Sedgewick
Publisher: Addison-Wesley, 2002
|
Applied Microsoft .NET Framework Programming
Author(s): Jeffrey Richter
Publisher: Microsoft Press, 2002
|
Art of Computer Programming, The, Volume 1: Fundamental Algorithms
Author(s): Donald E. Knuth
Publisher: Addison-Wesley, 1997
|
Art of UNIX Programming, The
Author(s): Eric Raymond
Publisher: Addison-Wesley, 2003
This is a great book if you want to learn about the history of UNIX. It inspired the Open-RJ project
|
ATL Internals
Author(s): Rector and Sells
Publisher: Addison-Wesley, 1999
|
C Interfaces and Implementations
Author(s): David R. Hanson
Publisher: Addison-Wesley, 1997
|
C Programming Language, The
Author(s): Kernighan and Ritchie
Publisher: Addison-Wesley, 1998
|
C++ Gems
Author(s): Stanley Lippman (ed.)
Publisher: Cambridge University Press, 1998
|
C++ Gotchas
Author(s): Steve Dewhurst
Publisher: Addison-Wesley, 2003
Don't try and adjudicate any obfuscated C++ competitions before you've digested this one.
|
C++ Programming Language, Special Edition, The
Author(s): Bjarne Stroustrup
Publisher: Addison-Wesley, 1997
As I mention in Chapter 25, this book contains an enormous number of important issues, nonchalantly suffused within the workaday progression through the vast areas of the language. Buy it; keep it in your bathroom; derive regular inspiration for new designs.
|
C++ Standard Library, The
Author(s): Nicolai Josuttis
Publisher: Addison-Wesley, 1999
|
C++ Templates; The Comprehensive Guide
Author(s): Vandevoorde and Josuttis
Publisher: Addison-Wesley, 2003
|
Debugging Applications for .NET and Windows
Author(s): John Robbins
Publisher: Microsoft Press, 2003
|
Deep C Secrets
Author(s): Peter van der Linden
Publisher: Prentice Hall, 1994
It's exactly what is says on the tin. There's a lot of funny stuff in there as well
|
Design and Evolution of C++, The
Author(s): Bjarne Stroustrup
Publisher: Addison-Wesley, 1994
Great history lesson from the master.
|
Design Patterns
Author(s): Gamma, Helm, Johnson, Vlissides
Publisher: Addison-Wesley, 1995
|
Effective C++, 2nd Edition
Author(s): Scott Meyers
Publisher: Addison-Wesley, 1998
The original "must have" C++ book from Dr Meyers
|
Effective STL
Author(s): Scott Meyers
Publisher: Addison-Wesley, 2001
"Effective C++" for the Standard Template Library
|
Efficient C++
Author(s): Bulka and Mayhew
Publisher: Addison-Wesley, 1999
|
Essential COM
Author(s): Don Box
Publisher: Addison-Wesley, 1998
|
Exceptional C++
Author(s): Herb Sutter
Publisher: Addison-Wesley, 2000
Best C++ book ever! (Well, second best, maybe ...)
|
Extreme Programming Explained
Author(s): Kent Beck
Publisher: , 2000
|
Facts and Fallacies of Software Engineering
Author(s): Robert L. Glass
Publisher: Addison-Wesley, 2003
The other great book to buy your manager.
|
Generic Programming And The STL
Author(s): Austern
Publisher: Addison-Wesley, 1999
|
Imperfect C++
Author(s): Matthew Wilson
Publisher: Addison-Wesley, 2004
Well, you've obviously bought this already, since you're reading this CD. But if you really like it, why not buy another? Even if you don't read both, you'll have a handsome door-stop (or two).
|
Inside Distributed COM
Author(s): Eddon and Eddon
Publisher: Microsoft Press, 1998
|
Inside The C++ Object Model
Author(s): Stanley Lippman
Publisher: Addison-Wesley, 1996
Read, digest, and then never avoid multiple inheritance like the plague!
|
Inside OLE, 2nd Edition
Author(s): Kraig Brockschmidt
Publisher: Microsoft Press, 1995
Probably the biggest brain strain I ever had. Only a couple of years into C++ programming, I swallowed this beastie almost whole, and barely recovered. A useful, though incredibly hard to read, book.
|
Inside Visual C++, Volume 4
Author(s): David J. Kruglinski
Publisher: Microsoft Press, 1995
A bit of a nostalgic one here, but I learned MFC from this book, and I still like it. (The book that is, not MFC!)
|
Java Native Interface, The
Author(s): Sheng Liang
Publisher: Addison-Wesley, 1999
A great little book, describing the mechanism by which Java connects to C, and thereby to the outside world. It's the only bit of Java I like, although only a mother could love its performance characteristics.
|
Java 2 Performance and Idiom Guide
Author(s): Larman and Guthrie
Publisher: Prentice-Hall, 2000
Whatever you feel about Java as a language/technology, this is a good book containing a great deal in a small size.
|
Large Scale C++ Software Design
Author(s): John Lakos
Publisher: Addison-Wesley, 1996
A wealth of relevant information regarding physical coupling and large system design and production.
|
Linux Device Drivers, 2nd Edition
Author(s): Rubini and Corbet
Publisher: O'Reilly, 2001
|
Modern C++ Design
Author(s): Andrei Alexandrescu
Publisher: Addison-Wesley, 2001
|
More Effective C++
Author(s): Scott Meyers
Publisher: Addison-Wesley, 1996
Another "must have" book from Dr Meyers
|
More Exceptional C++
Author(s): Herb Sutter
Publisher: Addison-Wesley, 2002
Not as good as the first one, but still one of the best C++ books available.
|
Mythical Man-Month, The
Author(s): Frederick P. Brooks
Publisher: Addison-Wesley, 1995
Great book to buy your manager
|
Object-Oriented Software Construction
Author(s): Bertrand Meyer
Publisher: Prentice Hall, 1997
|
Pattern-Oriented Software Architecture, Volume 2
Author(s): Schmidt, Stal, Rohnert and Buschmann
Publisher: Wiley, 2001
|
Practice Of Programming, The
Author(s): Kernighan and Pike
Publisher: Addison-Wesley, 1999
Clear, simple, effective. That's what we're all after, isn't it?
|
Pragmatic Programmer, The
Author(s): Hunt and Thomas
Publisher: Addison-Wesley, 2000
An ace book from some fellow Ruby fans. All kinds of great advice. A "must own" book.
|
Pragmatic Version Control
Author(s): Thomas and Hunt
Publisher: Addison-Wesley, 2003
More pragmatic gems, this time on version control. Another must read in a digestible and enjoyable presentation.
|
Programming Perl
Author(s): Wall, Christiansen, Schwartz
Publisher: O'Reilly, 1997
Perl; what a riot. Offensive syntax, outlandish semantics, but just so useful. Can't live with it, can't live without it. (Unlike Visual Basic, of course: Can't live with it, can't live with it.)
|
Programming Python
Author(s): Mark Lutz
Publisher: O'Reilly, 1996
My copy's out of date (1996), but it's still a really useful book.
|
Programming With POSIX Threads
Author(s): David R. Butenhof
Publisher: Addison-Wesley, 1997
A great source of PTHREADS information, and surprisingly digestible too.
|
Python Essential Reference, 2nd Edition
Author(s): David M. Beazley
Publisher: New Riders, 2001
A really nice book. This is how to write short expository language books.
|
Software Optimisation Cookbook, The
Author(s): Richard Gerber
Publisher: Intel Press, 2002
If you ever wondered about the weird and wonderful goings on inside processors, caches, pipelines and the like, this book provides an excellent insight, albeit only from the perspective of the Intel architecture.
|
STL Tutorial and Reference Guide, 2nd Edition
Author(s): Musser, Derge, Saini
Publisher: Addison-Wesley, 2001
|
UNIX Network Programming, Volume 1, 2nd Edition
Author(s): W. Richard Stevens
Publisher: Addison-Wesley, 1998
|
Vi IMproved - Vim
Author(s): Steve Oualline
Publisher: New Riders, 2001
The only book - to my knowledge, anyway - on Vim. And a nice book it is too.
|
|