Careers: Recommended Reading
For aspiring programmers, we’d recommend the following books. (All affiliate commissions will be donated entirely to a local library.)
Software Engineering
-
Writing Solid Code
Steve Maguire
Microsoft Press, 1993
Instructional[Note: Probably a bit dated and C/C++ specific now.]
C++
-
Modern C++ Design
Andrei Alexandrescu, Scott Meyers, et al
Addison Wesley, 2001
Instructional[Note: Fairly hardcore template programming. Read this last!]
Other Languages (For the true language geek)
-
Structure and Interpretation of Computer Programs
Harold Abelson, Gerald Jay Sussman
MIT Press, 1996
Instructional[Note: Read it free online. Also check out the video lectures.]
Core Computer Science Topics
-
Compilers: Principles, Techniques and Tools
Alfred Aho, Monica Lam, et al
Addison Wesley, 2006
Instructional -
Algorithms
Robert Sedgewick
Addison Wesley, 1988
Reference[Note: A classic from 1988. There are newer versions in more modern languages but the original Pascal one is fine.]
Pure Classics
Software Development Process
Mathematics
-
Numerical Recipes in C
William Press, Brian Flannery, et al
Cambridge University Press, 1992
Reference
Rendering and Animation
-
Computer Animation: Algorithms and Techniques
Rick Parent
Morgan Kaufmann, 2001
Instructional[Note: The definitive book on algorithms for skeletal animation.]
Threading and Concurrency
Networking
-
Cisco CCNA Exam Certification Library
Wendell Odom
Cisco Press, 2007
Instructional[Note: Surprisingly good for a vendor-specific guide. Gives a good explanation of TCP/IP basics.]
Artificial Intelligence
Test Engineering
-
Pragmatic Unit Testing in C# with NUnit
Andy Hunt, Dave Thomas, et al
Pragmatic Bookshelf, 2007
Instructional[Note: Not the best book, and some of the code examples leave a lot to be desired, but the fundamentals are still there and quite well explained.]
-
xUnit Test Patterns: Refactoring Test Code
Gerard Meszaros
Addison Wesley, 2007
Reference[Note: Everyone should use this for any large-scale test framework design.]








































