message | I've recently landed myself the position of trainee
| C++ programmer which I'm extremely pleased about,
| but also nervous.
Congratulations!
| According to the feedback from the interview, I
| have a good basic knowledge of C++ (through college)
| although my contract states that I must endeavour to
| learn more, so my question is - which areas of C++
| might I bone up on which will bring immediate benefits
| to my C++ programming career.
Well, there are different directions a C++ programming
career can take...
Before diving into C++ itself (which is good), I would
also take the time to read a book such as:
"The Pragmatic Programmer" (Hunt&Thomas).
It has a LOT of useful general advice.
For C++ itself, I can second John's advice for C++
books, with some additions:
- The Effective C++ and More ~ (Meyers)
The C++ ones provide sound advice (though I had
quickly found them to become obvious).
"Effective STL" is also useful (one you know the STL).
- The C++ Standard Library (Jossutis): excellent to
understand the standard library. Remains useful
as a reference (unless you prefer to use the
actual ISO document defining the C++ standard,
of which an inexpensive pdf can be obtained).
- Exceptional C++ and More~ (Sutter): teaches about
a lot of *useful* corner cases and situations.
See also
http://www.gotw.ca/gotw from which
the book was derived.
*if* you want to get into advanced C++ design techniques,
using techniques that are unique to C++:
- "Modern C++ Design" (Alexandrescu)
- "Multi-Paradigm Design" (Coplien)
- "Generative Programming" (Czarmecki)
Make sure to also learn about design patters if you
haven't yet ("Design Patters", Gamma & al).
(If you want more about patterns, I liked "Pattern-
Oriented Software Architecture", vol 1 especially).
Make sure to learn other languages (Python/Perl/C#/...)
along the way.
Also learn about UML and software development processes.
RUP (Rational), XP (Extreme Programming), TDD (Test
Driven Development), DBC (Design by contract) are all
concepts to get familiar with...
Also check some less technical books about programming.
"Peopleware" (deMarco&al) and "The Mythical Man Month"
(Brooks) remain useful starting points.
| Also can anyone reccomend a book of programming
| algorithms (common problems) in C++ that will aid
| my general programming logic/skills.
For general programming/logic skills, I find that
doing a bunch of the problems available (with online-
submission and verification) at
http://acm.uva.es/problemset/
Doing a few dozens of these (e.g. in Vol 1) can
teach you about a bunch of algorithms and approaches.
I may have been drawing too wide a picture... but
I hope this helps,
Ivan