StackOverflow 上有位网友(xenoterracide)提问:
我正试着搜集整理一个可在网上免费阅读的计算机编程书籍列表。这些书可以是某种特定编程语言,也可以计算机方面通用书籍。网上有哪些免费可用的书籍呢?
下面是一些网友在回复中的推荐资源,其中有视频、大学课程、编程语言教程网站,由伯乐在线整理编译。
一、George Stocker 提供了一大串,分类如下:
Meta-Lists
How to Design Programs: An Introduction to Computing and Programming
25 Free Computer Science Ebooks
Free Tech Books
MindView Inc
Wikibooks: Programming
Cheat Sheets (Free)
CodePlex List of Free E-Books
Book Training – On Video!
Sofware Program Managers Network – Free EBooks
EBook Share @ linbai.info
FreeBooksClub.Net
Theassayer.org
O’Reilly’s Open Books Project
TechBooksForFree.com
Galileo Computing (德语)
Microsoft Press: Free E-Books
Graphics Programming 图形编程
GPU Gems
GPU Gems 2 – ch 8,14,18,29,30 as pdf
GPU Gems 3
Graphics Programming Black Book
ShaderX series
DirectX manual (draft)
Learning Modern 3D Graphics Programming (draft)
Language Agnostic
Object-Oriented Reengineering Patterns
Foundations of Programming
Computer Musings (由唐纳德·克努斯授课)
The Cathedral and the Bazaar
Patterns and Practices: Application Architecture Guide 2.0
Security Engineering
Digital Signal Processing For Engineers and Scientists
Getting Real
Structure and Interpretation of Computer Programs
Domain Driven Design Quickly
OO Design
Best Kept Secrets of Peer Code Review
NASA Software Measurement Handbook
NASA Manager Handbook for Software Development (PDF)
Introduction to Functional Programming (经典课程)
How to Design Programs
Guide to the Software Engineering Body of Knowledge
Online Course Materials
Algorithms (draft)
Data Structures and Algorithms
Essential Skills for Agile Development
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 《UNIX 编程艺术》
The Definitive Guide to Building Code Quality
How to Think Like a Computer Scientist
Planning Algorithms
Mathematical Logic – an Introduction (PDF)
An Introduction to the Theory of Computation
Developers Developers Developers Developers
Linkers and loaders
Let’s Build a Compiler
Producing Open Source Software
How to Write Parallel Programs
Don’t Just Roll the Dice
97 Things Every Programmer Should Know(这本书有中文版《程序员应该知道的97件事》)
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
Summary of the GoF Design Patterns
Flow based Programming
Algorithms and Data-Structures (PDF)
Compiler Construction (PDF)
Project Oberon (PDF)
The Little Book of Semaphores
Essential Skills for Agile Development
I Am a Bug
Mining of Massive Datasets
Data-Intensive Text Processing with MapReduce (PDF)
Understanding IP Addressing: Everything you ever wanted to know (PDF)
Operating Systems and Middleware (PDF and LaTeX)
ASP.NET MVC
NerdDinner Walkthrough
Assembly Language 汇编语言
ProgrammingGroundUp (PDF)
Paul Carter’s Tutorial on x86 Assembly
Software optimization resources by Agner Fog
Bash
Advanced Bash-Scripting Guide
Lhunath’s Bash Guide
C / C++
The new C standard – an annotated reference
Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
The C book
Thinking in C++, Second Edition (《C++编程思想》)
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#
请参见下面 .NET 方面的
Clojure
Clojure Programming
ColdFusion
CFML In 100 Minutes
DB2
Getting started with IBM Data Studio for DB2 (PDF)
Getting started with IBM DB2 development (PDF)
Getting started with DB2 Express-C (PDF)
Delphi / Pascal
Essential Pascal Version 1 and 2
The Tomes of Delphi
Django
Djangobook.com
Erlang
Learn You Some Erlang For Great Good
Flex
Getting started with Adobe Flex (PDF)
F#
The F# Survival Guide
F Sharp Programming in Wikibooks
Forth
Starting Forth
Thinking Forth
Git
Pro Git
The Git Community Book
Git From The Bottom Up (PDF)
Grails
Getting Start with Grails
Haskell
Learn You a Haskell
Real World Haskell
HTML / CSS
Dive Into HTML5
HTML Dog Tutorials
Java
Sun’s Java Tutorials
Thinking in Java (《Java 编程思想》)
How to Think Like a Computer Scientist
Java Thin-Client Programming
OSGi in Practice (PDF)
Java 6 Tutorial (PDF)
JavaScript
Eloquent JavaScript
Crockford’s JavaScript
jQuery Fundamentals (starts with JavaScript basics)
Mozilla Developer Network’s JavaScript Guide
Essential Javascript & jQuery Design Patterns for Beginners
Latex
The Not So Short Introduction to LATEX (perfect for beginners 特别适合初学者)
Linux
Advanced Linux Programming
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
Natural Language Processing in Lisp
Lua
Programming In Lua (for v5 but still largely relevant)
Lua Programming Gems (不完全免费,但有很多免费的章节及代码)
Maven
Better Builds with Maven
Maven by Example
Maven: The Complete Reference
Repository Management with Nexus
Developing with Eclipse and Maven
Mercurial
Mercurial: The Definitive Guide
HGInit – Mercurial Tutorial by Joel Spolsky
Nemerle
See .NET below
.NET (C# / VB / Nemerle / Visual Studio)
C# School (covers C# 1.0 and 2.0)
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
Data Structures and Algorithms with Object-Oriented Design Patterns in C#
Illustrated C# 2008 (.zip, dead link)
O’Reilly’s C# Pocket Reference Manual (dead link)
Nemerle
NoSQL
CouchDB: The Definitive Guide
The Little MongoDB Book
Oberon
Programming in Oberon (PDF)
Objective-C
The Objective-C Programming Language
OCaml
Unix System Programming in OCaml
Introduction to OCaml (PDF)
Oracle Server
Oracle’s Guides and Manuals
Oracle PL/SQL
PL/SQL Language Reference
PL/SQL Packages and Types Reference
Steven Feuerstein’s PL/SQL Obsession – Videos and Presentations
Parrot / Perl 6
Using Perl 6 (work in progress)
Perl
Higher-Order Perl
Perl The Hard Way
Extreme Perl
Perl Free Online EBooks (meta-list)
The Mason Book
Practical mod_perl
Beginning Perl
Embedding Perl in HTML with Mason
Perl & LWP
Perl for the Web
Web Client Programming with Perl
Modern Perl 5
PHP
Practical PHP Programming (wiki containing O’Reilly’s PHP In a Nutshell)
Zend Framework: Survive the Deep End
PowerShell
Mastering PowerShell
Prolog
Building Expert Systems in Prolog
Adventure in Prolog
Prolog Programming A First Course
Logic, Programming and Prolog (2ed)
Introduction to Prolog for Mathematicians
Learn Prolog Now!
Natural Language Processing in Prolog
Natural Language Processing Techniques in Prolog
Prolog techniques
Applications of Prolog
Simply logical
PostgreSQL
Practical PostgreSQL
Python
Dive Into Python
Dive Into Python 3
Byte of Python
Building Skills in Python Version 2.5
Python Free Online Ebooks (meta-list)
Python Bibliotheca
Think Python (PDF)
Data Structures and Algorithms in 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
Thinking in Python
The Django Book
Snake Wrangling For Kids
Natural Language Processing with Python
R
The R Manuals
The R Language
R by example
Computational Statistics, Jeremy Penzer
Ruby
Programming Ruby
Why’s (Poignant) Guide to Ruby (mirror)
Mr. Neighborly’s Humble Little Ruby Book
Ruby Best Practices
MacRuby: The Definitive Guide
Learn Ruby the hard way
Ruby on Rails
Ruby on Rails Tutorial: Learn Rails By Example
Scala
Programming in Scala, First Edition
A Scala Tutorial for Java programmers (PDF)
Scala By Example (PDF)
Programming Scala
Xtrace (Github)
List (Github)
Pro Scala: Monadic Design Patterns for the Web
Exploring Lift (published earlier as “The Definitive Guide to Lift”, PDF)
Scheme
The Scheme Programming Language (Edition 4)
Smalltalk
Free Online Smalltalk Books (meta-list)
Squeak By Example (Smalltalk IDE)
Subversion
Subversion Version Control (PDF)
Version Control with Subversion
SQL (implementation agnostic)
Developing Time-Oriented Database Applications in SQL
Use The Index, Luke! (a guide to SQL database performance for developers)
Teradata
Teradata Books
Vim
A Byte of Vim
Vim Recipes
交互式教程网站:http://t.cn/aep0mV
很全的 Vim 速查卡:http://t.cn/aBPFPk
Websphere
Getting started with WebSphere (PDF)
二、 TG 推荐了麻省理工学院的一门课程
《Structure and Interpretation of computer programs / 计算机程序员结构和解析》,这门课程视频地址是:http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/
三、 Gatekiller 推荐的资源如下:
How to Design Programs
Graphics Programing Black Book
Real World Haskell
Let Over Lambda
Starting Forth
List of Free Online Python Books
List of Free Online Perl Books
Squeak by Example
C# Essentials
List of Free Online Smalltalk Books
Successful Lisp
Introduction to Functional Programming
四、ani625推荐了一些 Linux 相关书籍
The Art of Unix Programming
Advanced Linux Programming by CodeSourcery LLC
Java Application Development on Linux by Carl Albing and Michael Schwarz (PDF)
Advanced Linux Programming
Secure Programming for Linux and Unix
The Linux Development Platform
Secure Programming for Linux and Unix HOWTO
C++ GUI Programming With Qt 3
Linux Kernel Module Programming Guide by Ori Pomerantz
KDE 2.0 Development
GTK+/Gnome Application Development
GNU Autoconf, Automake and Libtool
The Linux Kernel Module Programming Guide
PHP Essentials
JavaScript Essentials
Visual Basic Essentials
上面这4个推荐,是得票数最高的前4位。下面这些得票数不太高的,从中挑选了一些。
The Django Book, GNU Free Document License
Mercurial (Hg) book by Bryan O’Sullivan. (Mercurial 是一个分布式版本控制软件)
37 Signals’ 公司的 “Getting Real” 也提供免费在线阅读。
《Clever Algorithms: Nature-Inspired Programming Recipes 》描述了人工智能领域中的 45 个算法。所以这些算法的描述都连贯并完整,确保广大受众可以理解。 这本书也有免费的 PDF 版,也可以在线免费阅读。
麻省理工学院关于计算机科学的开源课程:http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm
《Practical Common Lisp(实用 Common Lisp 编程)》Sergio Acosta 强烈推荐的,特别适合对 Lisp 感兴趣的初学者,虽然这本书的纸质版并不免费,但作者 Peter Seibel 允许免费在线阅读。