Đọc sách là một trong những cách học hiệu quả nhất trong thời đại thông tin thay đổi chóng mặt như hiện nay. Dưới đây là những cuốn sách cần tham khảo cho những ai muốn học và làm việc trong nền công nghiệp phần mềm máy tính. Nhiều cuốn có thể phục vụ ngay cho việc học hay công việc, nhưng nhiều cuốn như Code Complete hay The Art of Computer Programming thì cần phải “nghiền ngẫm” trong thời gian dài. Danh sách được phân loại như sau:

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
Application Architecture Guide, 2nd Edition – Microsoft patterns & practices
The Developer’s <code> – Ka Wai Cheung
An Introduction to Software Architecture – Ka Wai Cheung
Domain-Driven Design: Tackling Complexity in the Heart of Software – Eric Evans

IoT (Internet of Things)

The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism by Jeremy Rifkin
Designing the Internet of Things by Adrian McEwen & Hakim Cassimally
Designing Multi-Device Experiences: An Ecosystem Approach to User Experiences across Devices by Michal Levin
Building Internet of Things with the Arduino (Volume 1) by Charalampos Doukas
Enabling Things to Talk: Designing IoT solutions with the IoT Architectural Reference Model by Alessandro Bassi, Martin Bauer, Martin Fiedler, Thorsten Kramp, Rob van Kranenburg, Sebastian Lange & Stefan Meissner
From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence by Jan Holler, Vlasios Tsiatsis, Catherine Mulligan, Stefan Avesand, Stamatis Karnouskos & David Boyle
The Silent Intelligence – The Internet of Things by Daniel Kellmereit & Daniel Obodovski
Getting Started with the Internet of Things: Connecting Sensors and Microcontrollers to the Cloud by Cuno Pfister

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
C++ Coding Standards (101 Rules, Guidelines and Best Practices) – Herb Sutter, Andrei Alexandrescu
Effective C++, More Effective C++ and Effective Modern C++ – Scott Meyers
Exceptional C++ and More Exceptional C++ – Herb Sutter
C++ Common Knowledge – Stephen C. Dewhurst
Large Scale C++ Software Design – John Lakos
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
C# Yellow Book 2012 – Rob Miles


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


An Introduction to Database Systems (8th Edition)
Fundamentals of Database Systems (6th Edition)
Database: Principles, Programming, and Performance, Second Edition (The Morgan Kaufmann Series in Data Management Systems)
Joe Celko’s Data, Measurements and Standards in SQL (Morgan Kaufmann Series in Data Management Systems)
Microsoft SQL Server 2008 R2 Unleashed
Inside Microsoft® SQL Server® 2008: T-SQL Programming (Pro-Developer)
Oracle Essentials: Oracle Database 11g
Oracle PL/SQL Programming: Covers Versions Through Oracle Database 11g Release 2 (Animal Guide)


Coding in Delphi by Nick Hodges
Delphi XE2 Foundations by Chris Rolliston
Delphi Component Design by Danny Thorpe
Delphi in a Nutshell by Ray Lischner
The Tomes of Delphi: Developer’s Guide to Troubleshooting by B. Clay Shannon


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


Unobtrusive Ajax – Jesse Skinner


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
Mastering Regular Expressions – Jeffrey Friedl
Beginning ASP.NET Security – Barry Dorrans
SQL Injection Attacks and Defense – Justin Clarke

Nguồn: codeproject