This article has been opened up so any member who is bronze or above can edit and update. Please add your suggestions!
I get a lot of requests from readers about which books are best for learning
MFC, ASP, ATL etc, but with hundreds of books coming out each year, and
technology moving ahead in leaps and bounds, keeping up with what's best is
hard. Which books have helped you the most?
Here's a list of faves sent in by readers. If you are just starting out in the
industry then don't get lured into buying only books that deal with the language
you are working in. Read books on how to program. You will save you and
your employer a lot of stress. The "Programming Discipline and Design" section
below lists a bunch of great books worth reading.
Programming Discipline and Design
- Writing Solid Code - Steve Maguire
- Mythical Man-Month - Frederick P. Brooks Jr
- Code Complete - Steve McConnell
- The Art of Computer Programming - Knuth
- Algorithms - Robert Sedgewick
- Debugging Applications - John Robbins
- Taligent's Guide to Designing Programs - Taligent
- Design Patterns - Gamma, Helm, Johnson, Vlissides
- The Career Programmer: Guerilla Tactices for an Imperfect World (Apress) - Christoper Duncan
- Advanced Windows Debugging - Mario Hewardt, Daniel Pravat
- Windows® Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition (Pro Developer) - Mark Russinovich, David A. Solomon, Alex Ionescu
C / C++
- The C Programming Language (Prentice Hall) - Kernigan and Ritchie
- The C++ Programming Language - Bjarne Stroustroup
- Programming: Principles and Practice Using C++ - Bjarne Stroustroup
- Effective and More Effective C++ - Scott Meyers
- Inside Visual C++ - David J. Kruglinski
- C++ How to Program - H. M. Deitel, P. J. Deitel
- Thinking in C++ (2nd Ed) - Bruce Eckel
C#
- A Programmer's Introduction to C#, 2nd edition (Apress) - Eric Gunnerson
- Inside C#, 2nd edition (Microsoft Press) - Tom Archer
- Component-Based Development with Visual C# (M&T books) - Ted Faison
- C# Essentials, 2nd edition (O'Reilly) - Ben Albahari, Peter Drayton & Brad Merrill
- C# in Depth - Jon Skeet
- CLR via C#, 3rd Edition - Jeffrey Richter
- C# Programming Language (Covering C# 4.0) - Anders Hejlsberg
- Programming Entity Framework - Julia Lerman
ASP.NET
- Debugging ASP.NET (New Riders) - Jonathon Goodyear, Brian Peek, Brad Fox
- Designing Microsoft ASP.NET Applications (Microsoft Press) - Jonathon Goodyear, Brian Peek, Brad Fox
- Debugging ASP.NET - Jonathon Goodyear, Brian Peek, Brad Fox
- Microsoft ASP.NET Step by Step (Microsoft Press) - G. Andrew Duthrie
- Deploying and Managing Microsoft .NET Web Farms (Sams) - Barry Bloom
- Professional ASP.NET MVC 3 (Wrox) - Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen
Windows API
- Programming Windows 95 - Charles Petzold and Paul Yao
- Programming Applications for Windows - Jeffrey Richter
- Advanced Windows - Jeffrey Richter
- Visual C++ Windows Shell Programming - Dino Esposito
MFC
- Programming Windows 95 with MFC - Jeff Prosise
- MFC Internals - George Shepherd and Scot Wingo
- Professional MFC with Visual C++ - Mike Blaszczak
ASP
- Professional ASP Techniques for Webmasters - Alex Homer
Database
CE
- Windows CE Developers Handbook - Terence A. Goggin
- Programming Windows CE - Douglas Boling (Microsoft Press)
- Essential Windows CE Application Programming -Robert Burdick (Wiley)
COM / DCOM / COM+ / ATL
- Essential COM - Don Box
- Professional COM Applications with ATL - Sing Li and Panos Economopoulos
- Creating Lightweight Components with ATL - Jonathan Bates
- Inside ALT - George Shepherd and Brad King
- Understanding DCOM - William Rubin and Marshall Brain
- Programming Distributed Applications with COM and Microsoft Visual Basic 6.0
- Ted Pattison
- Inside OLE, 2nd Edition - Kraig Brockschmidt
Chris is the Co-founder, Administrator, Architect, Chief Editor and Shameless Hack who wrote and runs The Code Project. He's been programming since 1988 while pretending to be, in various guises, an astrophysicist, mathematician, physicist, hydrologist, geomorphologist, defence intelligence researcher and then, when all that got a bit rough on the nerves, a web developer. He is a Microsoft Visual C++ MVP both globally and for Canada locally.
His programming experience includes C/C++, C#, SQL, MFC, ASP, ASP.NET, and far, far too much FORTRAN. He has worked on PocketPCs, AIX mainframes, Sun workstations, and a CRAY YMP C90 behemoth but finds notebooks take up less desk space.
He dodges, he weaves, and he never gets enough sleep. He is kind to small animals.
Chris was born and bred in Australia but splits his time between Toronto and Melbourne, depending on the weather. For relaxation he is into road cycling, snowboarding, rock climbing, and storm chasing.