我正试着搜集整理一个可在网上免费阅读的计算机编程书籍列表。这些书可以是某种特定编程语言,也可以计算机方面通用书籍。网上有哪些免费可用的书籍呢?
下面是一些网友在回复中的推荐资源,其中有视频、大学课程、编程语言教程网站,由伯乐在线整理编译。
一、George Stocker 提供了一大串,分类如下:
How to Design Programs: An Introduction to Computing and Programming
25 Free Computer Science Ebooks
Sofware Program Managers Network – Free EBooks
Galileo Computing (德语)
Graphics Programming 图形编程
GPU Gems 2 – ch 8,14,18,29,30 as pdf
Graphics Programming Black Book
DirectX manual (draft)
Learning Modern 3D Graphics Programming (draft)
Language Agnostic
Object-Oriented Reengineering Patterns
Computer Musings (由唐纳德·克努斯授课)
Patterns and Practices: Application Architecture Guide 2.0
Digital Signal Processing For Engineers and Scientists
Structure and Interpretation of Computer Programs
Best Kept Secrets of Peer Code Review
NASA Software Measurement Handbook
NASA Manager Handbook for Software Development (PDF)
Introduction to Functional Programming (经典课程)
Guide to the Software Engineering Body of Knowledge
Algorithms (draft)
Data Structures and Algorithms
Essential Skills for Agile Development
Programming Languages: Application and Interpretation
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
Mathematical Logic – an Introduction (PDF)
An Introduction to the Theory of Computation
Developers Developers Developers Developers
Producing Open Source Software
How to Write Parallel Programs
97 Things Every Programmer Should Know(这本书有中文版《程序员应该知道的97件事》)
Introduction to Information Retrieval
Is Parallel Programming Hard, And, If So, What Can You Do About It?
Type Theory and Functional Programming
Getting started with Open source development (PDF)
Database Fundamentals (PDF)
Summary of the GoF Design Patterns
Algorithms and Data-Structures (PDF)
Compiler Construction (PDF)
Project Oberon (PDF)
Essential Skills for Agile Development
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
Assembly Language 汇编语言
ProgrammingGroundUp (PDF)
Paul Carter’s Tutorial on x86 Assembly
Software optimization resources by Agner Fog
Bash
C / C++
The new C standard – an annotated reference
Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
Thinking in C++, Second Edition (《C++编程思想》)
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
Also see: The Definitive C++ Book Guide and List
C#
请参见下面 .NET 方面的
Clojure
ColdFusion
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
Django
Erlang
Learn You Some Erlang For Great Good
Flex
Getting started with Adobe Flex (PDF)
F#
F Sharp Programming in Wikibooks
Forth
Git
Git From The Bottom Up (PDF)
Grails
Haskell
HTML / CSS
Java
How to Think Like a Computer Scientist
OSGi in Practice (PDF)
Java 6 Tutorial (PDF)
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
Lisp
A Gentle Introduction to Symbolic Computation (PDF)
Practical 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
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)
Charles Petzold’s .NET Book 0
Threading in C#
C# Yellow Book (intro to programming)
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)
NoSQL
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 Packages and Types Reference
Steven Feuerstein’s PL/SQL Obsession – Videos and Presentations
Parrot / Perl 6
Using Perl 6 (work in progress)
Perl
Perl Free Online EBooks (meta-list)
Embedding Perl in HTML with Mason
Web Client Programming with Perl
PHP
Practical PHP Programming (wiki containing O’Reilly’s PHP In a Nutshell)
Zend Framework: Survive the Deep End
PowerShell
Prolog
Building Expert Systems in Prolog
Prolog Programming A First Course
Logic, Programming and Prolog (2ed)
Introduction to Prolog for Mathematicians
Natural Language Processing in Prolog
Natural Language Processing Techniques in Prolog
PostgreSQL
Python
Building Skills in Python Version 2.5
Python Free Online Ebooks (meta-list)
Think Python (PDF)
Data Structures and Algorithms in Python
How to Think Like a Computer Scientist: Learning with Python
Invent Your Own Computer Games With Python
Natural Language Processing with Python
R
Computational Statistics, Jeremy Penzer
Ruby
Why’s (Poignant) Guide to Ruby (mirror)
Mr. Neighborly’s Humble Little Ruby Book
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)
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
Vim
交互式教程网站: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 推荐的资源如下:
Graphics Programing Black Book
List of Free Online Python Books
List of Free Online Perl Books
List of Free Online Smalltalk Books
Introduction to Functional Programming
四、ani625推荐了一些Linux相关书籍
Advanced Linux Programming by CodeSourcery LLC
Java Application Development on Linux by Carl Albing and Michael Schwarz(PDF)
Secure Programming for Linux and Unix
The Linux Development Platform
Secure Programming for Linux and Unix HOWTO
Linux Kernel Module Programming Guide by Ori Pomerantz
GTK+/Gnome Application Development
GNU Autoconf, Automake and Libtool
The Linux Kernel Module Programming Guide
上面这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 允许免费在线阅读。
【更新:2012-5-17 20:24:19】
下面这部分依然来自 StackOverflow,不过是另外一个贴子。
97 Things Every Programmer Should Know (这本书有中文版《程序员应该知道的97件事》)
Algorithms and Data-Structures (PDF)
Algorithms (draft)
The Architecture of Open Source Applications
Best Kept Secrets of Peer Code Review
Binary Trees (PDF)<
Communicating Sequential Processes (PDF) – Tony Hoare
Compiler Construction (PDF)
Computer Musings (lectures by Donald Knuth)
Data Structures and Algorithms: Annotated Reference with Examples
Database Fundamentals (PDF)
Data-Intensive Text Processing with MapReduce (PDF)
The Definitive Guide to Building Code Quality
Designing Interfaces by Jennifer Tidwell
Digital Signal Processing For Engineers and Scientists
Essentials of Metaheuristics by Sean Luke
Essential Skills for Agile Development
A Field Guide To Genetic Programming
Foundations of Computer Science – Al Aho and Jeff Ullman
Getting started with Open source development (PDF)
The Great Tree List Recursion Problem
Guide to the Software Engineering Body of Knowledge
How to Think Like a Computer Scientist
How to Write Parallel Programs
How to write Unmaintainable Code
An Introduction to the Theory of Computation
Introduction to Functional Programming (class lectures and slides)
Introduction to Information Retrieval
Is Parallel Programming Hard, And, If So, What Can You Do About It?
Mathematical Logic – an Introduction(PDF)
NASA Manager Handbook for Software Development (PDF)
NASA Software Measurement Handbook
Object-Oriented Reengineering Patterns
Operating Systems and Middleware (PDF and LaTeX)
Patterns and Practices: Application Architecture Guide 2.0
Patterns of Software: Tales from the Software Community (PDF)
Producing Open Source Software
Programming Languages: Application and Interpretation
Project Oberon (PDF)
Seamless Object-Oriented Software Architecture(PDF)
Structure and Interpretation of Computer Programs
Summary of the GoF Design Patterns
Think Stats: Probability and Statistics for Programmers (PDF, code written in Python)
Type Theory and Functional Programming
Understanding IP Addressing: Everything you ever wanted to know (PDF)