Click here to Skip to main content
11,804,008 members (77,884 online)
Click here to Skip to main content

Useful Reference Books

, 23 Jul 2014 CPOL 519K 514
Rate this:
Please Sign up or sign in to vote.
A list of popular reference books sent in by the readers of CodeProject
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
  • Unite The Tribes - Christopher 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
  • The Pragmatic Programmer - Andrew Hunt & David Thomas
  • The Psychology of Computer Programming - Gerald Weinberg
  • Agile Software Development, Principles, Patterns, and Practices - Robert C. Martin
  • Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin
  • The Art of Unit Testing: With Examples in .Net - Roy Osherove
  • Patterns of Enterprise Application Architecture - Martin Fowler
  • Domain-Specific Languages - Martin Fowler
  • Continuous Delivery - Martin Fowler

IoT (Internet of Things)

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


  • 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
  • C# 5.0 In a Nutshell: The Definitive Reference - Joseph Albahari & Ben Albahari


  • Debugging ASP.NET (New Riders) - Jonathon Goodyear, Brian Peek, Brad Fox
  • Designing Microsoft ASP.NET Applications (Microsoft Press) - 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 
  • Beginning ASP.NET 4.5 in C# - Matthew MacDonald

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


  • Programming Windows 95 with MFC - Jeff Prosise
  • MFC Internals - George Shepherd and Scot Wingo
  • Professional MFC with Visual C++ - Mike Blaszczak


  • Professional ASP Techniques for Webmasters - Alex Homer




  • Windows CE Developers Handbook - Terence A. Goggin
  • Programming Windows CE - Douglas Boling (Microsoft Press)
  • Essential Windows CE Application Programming -Robert Burdick (Wiley)


  • 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

WPF / Silverlight / Windows Phone / WinRT

  • Windows Presentation Foundation Unleashed - Adam Nathan
  • Pro WPF In Visual Studio x - Matthew MacDonald
  • Windows Phone Unleashed - Daniel Vaughan
  • Silverlight x Unleashed - Laurent Bugnion
  • Programming Windows - Charles Petzold (yes, he's done a Windows 8 version)
  • Building Windows 8 Apps with C# and XAML - Jeremy Likness

OOP (Object-Oriented Programming)

  • Head First Object-Oriented Analysis and Design - Brett D. McLaughlin, Gary Pollice, and Dave West

Web Pages/WebMatrix

  • Beginning ASP.NET Web Pages with WebMatrix - Mike Brind and Imar Spaanjaars
  • Building ASP.NET Web Pages with Microsoft WebMatrix - Steve Lydford


  • Windows 8 Apps with XAML and C# Unleashed - Adam Nathan
  • Programming Windows 8 Apps with HTML, CSS, and JavaScript - Kraig Brockschmidt


  • JavaScript & jQuery: The Missing Manual - David Sawyer McFarland
  • Murach's JavaScript and jQuery by Zak Ruvalcaba and Mike Murach
  • Building A JavaScript Framework - dailyjs


  • HTML5 24-Hour Trainer - Joseph W. Lowery and Mark Fletcher
  • HTML & CSS: The Good Parts - Ben Henick
  • Responsive Web Design - Ethan Marcotte


  • CSS3: The Missing Manual - David Sawyer McFarland



  • Introduction to Android Application Development: Android Essentials - Joseph Annuzzi Jr., Lauren Darcey, Shane Conder
  • Beginning Android Tablet Application Development - Wei-Meng Lee
  • Programming Android - Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura
  • Android Recipes: A Problem-Solution Approach - Dave Smith and Jeff Friesen

Android Studio

  • Android Studio Application Development - Belén Cruz Zapata
  • Getting Started with Android Studio - Barbara Hohensee
  • Android Studio: How to guide and tutorial - Clive Sargeant
  • Android Developer Tools Essentials: Android Studio to Zipalign - Mike Wolfson, Donn Felker



Regular Expressions


  • Introduction to Pattern Recognition A Matlab Approach - Sergios Theodoridis and konstantinos koutroumbas
    • Learning OpenCV Computer Vision - Gary Bradski and Adrian Kaehler
    • OpenCV.2. Computer.Vision.Application. Programming.Cookbook - Robert Laganière
    • OpenCVReferenceManual - Intel
    • Beginning ASP.NET Security - Barry Dorrans
    • SQL Injection Attacks and Defense - Justin Clarke


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Chris Maunder
Founder CodeProject
Canada Canada
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.

You may also be interested in...

Comments and Discussions

SuggestionOne more book for algorithm Pin
LaxmikantYadav18-Dec-14 1:23
memberLaxmikantYadav18-Dec-14 1:23 
QuestionRegular Expressions Pin
David A. Gray7-Nov-14 19:25
memberDavid A. Gray7-Nov-14 19:25 beginner Pin
Abhijit Ghosh (Subho)27-Jul-14 2:11
professionalAbhijit Ghosh (Subho)27-Jul-14 2:11 
GeneralRe: beginner Pin
aarif moh shaikh2-Oct-14 20:57
professionalaarif moh shaikh2-Oct-14 20:57 
QuestionBEST BOOK FOR MATLAB AND SIMULINK RTOS (Real Time Operating System) and C Pin
Member 871975124-Jul-14 22:48
memberMember 871975124-Jul-14 22:48 
QuestionMy vote of 5 Pin
Shay Dolev24-Jul-14 8:35
memberShay Dolev24-Jul-14 8:35 
SuggestionC Language and C++ Language each deserve their own list Pin
Lyle Snodgrass23-Jul-14 9:21
memberLyle Snodgrass23-Jul-14 9:21 
Bugwrong section Pin
Serge Desmedt23-Jul-14 6:28
memberSerge Desmedt23-Jul-14 6:28 
QuestionC# Pin
AnotherKen22-Jul-14 18:41
memberAnotherKen22-Jul-14 18:41 
GeneralGreat gift to the community! Pin
joeolson22-Jul-14 9:07
memberjoeolson22-Jul-14 9:07 
Member 1056530022-Jul-14 8:23
memberMember 1056530022-Jul-14 8:23 
Serge Desmedt23-Jul-14 6:27
memberSerge Desmedt23-Jul-14 6:27 
Divyam Sharma2-Oct-14 20:53
memberDivyam Sharma2-Oct-14 20:53 
Question+5 from me Pin
Praveen Kumar Katiyar21-Jul-14 22:38
professionalPraveen Kumar Katiyar21-Jul-14 22:38 
GeneralMy vote of 5 Pin
_ Kunal Chowdhury _21-Jul-14 20:09
mentor_ Kunal Chowdhury _21-Jul-14 20:09 
AnswerUseful Reference Pin
Alice H. Banuelos4-Jun-14 22:27
memberAlice H. Banuelos4-Jun-14 22:27 
QuestionAnything by Michael Kay on XSLT Pin
Bill Wade7-Apr-14 8:55
memberBill Wade7-Apr-14 8:55 
GeneralMy vote of 5 Pin
Renju Vinod2-Apr-14 0:46
professionalRenju Vinod2-Apr-14 0:46 
GeneralMy vote of 5 Pin
Joe Gakenheimer1-Apr-14 16:12
memberJoe Gakenheimer1-Apr-14 16:12 
QuestionOther books Pin
Jonas Hammarberg1-Apr-14 3:05
professionalJonas Hammarberg1-Apr-14 3:05 
SuggestionThanks very much for sharing so useful and pragmatic books. Pin
emmama31-Mar-14 22:08
memberemmama31-Mar-14 22:08 
QuestionVote of 5 Pin
GanesanSenthilvel30-Mar-14 7:21
memberGanesanSenthilvel30-Mar-14 7:21 
AnswerRe: Vote of 5 Pin
aarif moh shaikh2-Oct-14 20:56
professionalaarif moh shaikh2-Oct-14 20:56 
QuestionCan you please suggest some books for WCF? Pin
Member 398526424-Feb-14 23:06
memberMember 398526424-Feb-14 23:06 
AnswerRe: Can you please suggest some books for WCF? Pin
Lisavon23-Jul-14 16:53
memberLisavon23-Jul-14 16:53 
SuggestionOne more book Pin
Rahul VB22-Jan-14 8:09
professionalRahul VB22-Jan-14 8:09 
QuestionBroken link Pin
MikeTheFid30-Dec-13 2:29
memberMikeTheFid30-Dec-13 2:29 
SuggestionC# Book Pin
Wamuti23-Nov-13 5:52
memberWamuti23-Nov-13 5:52 
QuestionSlim and useful c++ Pin
altomaltes10-Nov-13 12:12
professionalaltomaltes10-Nov-13 12:12 
QuestionSQL Book Pin
Mike Meinz7-Nov-13 7:52
memberMike Meinz7-Nov-13 7:52 
AnswerRe: SQL Book Pin
Rahul VB21-Jan-14 22:10
memberRahul VB21-Jan-14 22:10 
SuggestionSuggesting Few books Books. Pin
Pratik Bhuva6-Nov-13 20:21
professionalPratik Bhuva6-Nov-13 20:21 
GeneralRe: Suggesting Few books Books. Pin
Rahul VB22-Jan-14 8:09
professionalRahul VB22-Jan-14 8:09 
GeneralRe: Suggesting Few books Books. Pin
Pratik Bhuva28-Jul-14 1:22
professionalPratik Bhuva28-Jul-14 1:22 
GeneralRe: Suggesting Few books Books. Pin
Abhijit Ghosh (Subho)27-Jul-14 2:16
professionalAbhijit Ghosh (Subho)27-Jul-14 2:16 
GeneralRe: Suggesting Few books Books. Pin
Pratik Bhuva28-Jul-14 1:22
professionalPratik Bhuva28-Jul-14 1:22 
GeneralI'm not the author of this article Pin
Tarek Elqusi2-Nov-13 10:07
memberTarek Elqusi2-Nov-13 10:07 
GeneralRe: I'm not the author of this article Pin
Steve Wellens4-Nov-13 15:29
memberSteve Wellens4-Nov-13 15:29 
GeneralRe: I'm not the author of this article Pin
Tarek Elqusi4-Nov-13 20:42
memberTarek Elqusi4-Nov-13 20:42 
QuestionKindle and Cookbooks Too! Pin
diverbw30-Oct-13 9:16
memberdiverbw30-Oct-13 9:16 
GeneralMy vote of 5 Pin
Oshtri Deka16-May-13 1:14
memberOshtri Deka16-May-13 1:14 
QuestionGreat list Pin
Mike Hankey10-Feb-13 1:50
memberMike Hankey10-Feb-13 1:50 
QuestionOld book Pin
tuanakka11-Dec-12 4:51
membertuanakka11-Dec-12 4:51 
QuestionWindows® Internals Pin
serhiy.semenyuk18-Oct-12 23:14
memberserhiy.semenyuk18-Oct-12 23:14 
GeneralMy vote of 5 Pin
serhiy.semenyuk18-Oct-12 23:13
memberserhiy.semenyuk18-Oct-12 23:13 
GeneralMy vote of 5 Pin
fredatcodeproject24-Jul-12 1:58
memberfredatcodeproject24-Jul-12 1:58 
QuestionC++/CLI/MFC book Pin
Zac Greve31-Mar-12 8:14
memberZac Greve31-Mar-12 8:14 
QuestionNo VB books why...? Pin
Jαved27-Feb-12 1:34
memberJαved27-Feb-12 1:34 
There are no VB books in this article why?
"Everyone wants results, but no one is willing to do what it takes to get them" - Dirty Harry

In Life go Straight, And turn Right

AnswerRe: No VB books why...? Pin
Chris Maunder27-Feb-12 5:04
adminChris Maunder27-Feb-12 5:04 
GeneralRe: No VB books why...? Pin
Jαved29-Feb-12 0:25
memberJαved29-Feb-12 0:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.151002.1 | Last Updated 23 Jul 2014
Article Copyright 2000 by Chris Maunder
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid