Ngôn ngữ lập trình
Assembly Language
Bash
C / C++
- The new C standard – an annotated reference
- Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
- The C book
- C++ Annotations
- Software optimization resources by Agner Fog
- Introduction to Design Patterns in C++ with Qt 4 (PDF)
- Object Oriented Programming in C (PDF)
- Beej’s Guide to Network Programming
- Learn C the hard way
- Also see: The Definitive C++ Book Guide and List
C
- Threading in C#
- C# Yellow Book (intro to programming)
- C# Programming – Wikibook
- C# Essentials
Clojure
ColdFusion
Delphi / Pascal
Erlang
F#
- F Sharp Programming in Wikibooks
- Real World Functional Programming (MSDN Chapters)
Forth
Haskell
HTML / CSS
Java
JavaScript
- Eloquent JavaScript
- Crockford’s JavaScript
- Mozilla Developer Network’s JavaScript Guide
- Essential Javascript & jQuery Design Patterns for Beginners
JavaScript (Node.js specific)
Latex
- The Not So Short Introduction to LATEX (perfect for beginners)
Lisp
- COMMON LISP: An Interactive Approach
- A Short Course in Common Lisp
- A Gentle Introduction to Symbolic Computation (PDF)
- Practical Common Lisp
- On Lisp
- ANSI Common Lisp
- Common Lisp the Language, 2nd Edition
- Successful Lisp
- Let Over Lambda – 50 Years of Lisp
Lua
- Programming In Lua (for v5 but still largely relevant)
- Lua Programming Gems (not entirely free, but has a lot of free chapters and accompanying code)
OCaml
Parrot / Perl 6
- Using Perl 6 (work in progress)
Perl
- Higher-Order Perl
- Perl The Hard Way
- Extreme Perl
- Practical mod_perl
- Beginning Perl
- Perl & LWP
- Perl for the Web
- Web Client Programming with Perl
- Modern Perl 5
PHP
Prolog
- Building Expert Systems in Prolog
- Adventure in Prolog
- Logic, Programming and Prolog (2ed)
- Introduction to Prolog for Mathematicians
- Learn Prolog Now!
- Natural Language Processing Techniques in Prolog
- Prolog techniques
- Applications of Prolog
Python
- Byte of Python
- Python Bibliotheca
- Think Python (PDF)
- Dive into Python
- How to Think Like a Computer Scientist: Learning with Python
- Python for Fun
- Invent Your Own Computer Games With Python
- Learn Python The Hard Way
- The Django Book
- Python for Kids
- Natural Language Processing with Python
R
Ruby
Scala
- Programming in Scala, First Edition
- A Scala Tutorial for Java programmers (PDF)
- Scala By Example (PDF)
- Xtrace (Github)
- Lift (Github)
- Pro Scala: Monadic Design Patterns for the Web
- Exploring Lift (published earlier as “The Definitive Guide to Lift”,PDF)
Scheme
Smalltalk
- Free Online Smalltalk Books (meta-list)
- Squeak By Example (Smalltalk IDE)
SQL
- Developing Time-Oriented Database Applications in SQL
- Use The Index, Luke! (a guide to SQL database performance for developers)
Frameworks
ASP.NET MVC
Django
Flex
Grails
.NET
- Visual Studio Tips and Tricks (VS 2003-2005 only)
- Entity Framework
- Charles Petzold’s .NET Book 0
- Threading in C#
- C# Yellow Book (intro to programming)
- C# Programming – Wikibook
- C# Essentials
Ruby on Rails
Tools
DB2
- Getting started with IBM Data Studio for DB2 (PDF)
- Getting started with IBM DB2 development (PDF)
- Getting started with DB2 Express-C (PDF)
Git
- Git From The Bottom Up (PDF)
Maven
Mercurial
NoSQL
Oracle Server
- Oracle’s Guides and Manuals
Subversion
Vim
Emacs
Các chủ đề chung khác
Graphics Programming
- ShaderX series
- DirectX manual (draft)
Language Agnostic
- Object-Oriented Reengineering Patterns
- Computer Musings (lectures by Donald Knuth)
- The Cathedral and the Bazaar
- Patterns and Practices: Application Architecture Guide 2.0
- Security Engineering
- Getting Real
- Domain Driven Design Quickly
- NASA Software Measurement Guidebook
- NASA Manager Handbook for Software Development (PDF)
- Introduction to Functional Programming (class lectures and slides)
- How to Design Programs
- Guide to the Software Engineering Body of Knowledge
- Online Course Materials
- Programming Languages: Application and Interpretation
- Learn to Program
- Patterns of Software: Tales from the Software Community (PDF)
- How to write Unmaintainable Code
- The Art of Unix Programming
- How to Think Like a Computer Scientist
- Planning Algorithms
- Linkers and loaders
- Let’s Build a Compiler
- Producing Open Source Software
- How Computers Work
- Introduction to Information Retrieval
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Matters Computational
- Type Theory and Functional Programming
- Getting started with Open source development (PDF)
- Database Fundamentals (PDF)
- Clever Algorithms
- Flow based Programming
- The Little Book of Semaphores
- Mining of Massive Datasets
- Data-Intensive Text Processing with MapReduce (PDF)
- Operating Systems and Middleware (PDF and LaTeX)
- Think Stats: Probability and Statistics for Programmers (PDF, code written in Python)
- The Architecture of Open Source Applications