OK, So Why C++?
C++ is the language that most accurately mirrors the way that I think when I'm programming.
When faced with a tricky problem, object-oriented languages encourage a sensible, logical split -
divide and conquer still applies, OO just makes it easier. There's loads of other OO languages
out there but I think that C++ has the edge for the following reasons:
- C++ still lets you get down to the nitty gritty of registers, bits and bytes
- C++ has massive support world-wide
- C++ is massively expandable - you want a new library? just write it
- Java is slow :-)
So that's my rant over, have I got anything useful to say about the language? I hope so, its my job after all. There are numerous very good C++ FAQs out there (not least comp.lang.c++) and if you're just curious why not start there, or at my links page, there's also my lovely article on the use of pointers covering the birds, bees and registers - or maybe you should follow the traditional route and read some books on the subject. But if you're happy with copy constructors and want to learn more from a jaded professional, read on...
Articles
The following articles are available:
- Pointers and Memory - stuff every programmer should know
- Const Correctness - what it is, and why all C++ programmers need to follow the rules
- Exceptions - make your code bullet proof
- Thread-Safe Signal Handling - how to handle signals in a multi-threaded program
Code
There is even some code for you to peruse:
Books on C++
The books listed below are the ones that I use when working with C++, click a link to buy them from amazon.co.uk:
- The C++ Programming Language - Bjarne Stroustrup, Not a great book for beginners but essential once you've learn't the basics and need to figure out what you (or your compiler!) are doing wrong.
- The C++ Standard Library - Nicolai Josuttis, The ultimate text on the STL. Don't instantiate a template without it.
- Effect C++ - Scott Meyers, Everything you know is wrong, this book tells you why and gives you solutions.
- More Effect C++ - Scott Meyers, Sequel to the huge successful "Effective C++" Now both these books are available on one CDROM.
- Linux Programming Unleashed - Wall, Whatson, Whitis et al A pretty good book on UNIX programming for C/C++ programmers with excellent examples. The sections on networking a particularly good.
- Programming Windows, The Definitive Guide to the Win32 API - Charles Petzold, Everybody working with Visual C++ should own at least one book by Mr Petzold, the original Win32 guru.
- Mastering COM and COM+ - Ash Rofail, Yasser Shohoud, At last a book on COM which doesn't blind you with terminology from the first page - Microsoft Press take note!.
- Design Patterns, Elements of Reusable Object-Orient Software - Gamma, Helm, Johnson, Vlissides If you've mastered C++, you need to master OO design next. This ground-breaking book will tell you how to stop redesigning the wheel.
Of course, if you don't want to spend loads on books, you can learn the same stuff from
the UNIX man pages and MSDN. If you choose this
route then I wish you the best of luck.
