Re: OT: Programming books
I wouldn't say that was a particularly off-topic question.
A very good book is Large Scale C++ Software Design by John Lakos, ISBN
0-201-63362-0
Here is a review of it:
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_l&file=l000736a
The main thing it teaches you is how to write a large program so that it's not a
huge rat's nest, and how to make it testable, including how to write automated
tests.
If you develop a real application, I strongly recommend writing a unit test for
every module in the project (every class if it's an object-oriented project).
You might think this is a lot of extra work but it's really not because it
reduces debugging time and helps to focus your attention on the task at hand.
It also helps increase the overall quality of your product.
While Lakos' book does discuss quite a few C++-specific things, much of his
advice can be applied to almost any language. Particularly important is his
discussion of how to measure and manage interdependencies between different
components of a program.
You should also learn something about methodology and project management. I
find eXtreme Programming appealing, although I usually work by myself and a lot
of its stuff is aimed at small development teams. XP also emphasizes testing.
There's an eXtreme Programming Wiki:
http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap
There are also some XP books out like eXtreme Programming Explained, but I
haven't read it.
The ACCU book reviews has a subject section on management:
http://www.accu.org/bookreviews/public/reviews/0sb/management.htm
and writing solid code:
http://www.accu.org/bookreviews/public/reviews/0sb/writing_solid_code.htm
Finally, I have a little stuff I've written myself you might find helpful:
http://linuxquality.sunsite.dk/articles/
http://www.goingware.com/tips/
http://www.byteswap.net/
Best,
Mike
--
Michael D. Crawford
GoingWare Inc. - Expert Software Development and Consulting
http://www.goingware.com/
crawford@goingware.com
Tilting at Windmills for a Better Tomorrow.
Reply to: