国外程序员推荐的免费编程书籍资源

StackOverflow 上有位网友(xenoterracide)提问:

我正试着搜集整理一个可在网上免费阅读的计算机编程书籍列表。这些书可以是某种特定编程语言,也可以计算机方面通用书籍。网上有哪些免费可用的书籍呢?

下面是一些网友在回复中的推荐资源,其中有视频、大学课程、编程语言教程网站,由伯乐在线整理编译。

一、George Stocker 提供了一大串,分类如下:

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 2ch 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 允许免费在线阅读

 

【更新: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

The Art of Unix Programming

Best Kept Secrets of Peer Code Review

Binary Trees (PDF)<

The Cathedral and the Bazaar

Clever Algorithms

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

Domain Driven Design Quickly

Don’t Just Roll the Dice

Essentials of Metaheuristics by Sean Luke

Essential Skills for Agile Development

A Field Guide To Genetic Programming

Flow based Programming

Foundations of Computer Science – Al Aho and Jeff Ullman

Foundations of Programming

Getting Real

Getting started with Open source development (PDF)

The Great Tree List Recursion Problem

Guide to the Software Engineering Body of Knowledge

How Computers Work

How to Design Programs

How to Think Like a Computer Scientist

How to Write Parallel Programs

How to write Unmaintainable Code

I Am a Bug

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?

Learn to Program

Let’s Build a Compiler

Linkers and loaders

Linked List Basics

Linked List Problems

Mathematical Logic – an Introduction(PDF)

Matters Computational

Mining of Massive Datasets

NASA Manager Handbook for Software Development (PDF)

NASA Software Measurement Handbook

Object-Oriented Reengineering Patterns

Online Course Materials

OO Design

Operating Systems and Middleware (PDF and LaTeX)

Patterns and Practices: Application Architecture Guide 2.0

Patterns of Software: Tales from the Software Community (PDF)

Planning Algorithms

PNG: The Definitive Guide

Pointers And Memory

Producing Open Source Software

Programming Languages: Application and Interpretation

Programming Methodology

Programming Pearls

Project Oberon (PDF)

Seamless Object-Oriented Software Architecture(PDF)

Security Engineering

Structure and Interpretation of Computer Programs

Summary of the GoF Design Patterns

The Little Book of Semaphores

The TCP/IP Guide

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)

 

 



关于作者: 黄利民@huanglimin

伯乐在线联合创始人,关注 IT 和互联网。

查看黄利民的更多文章 >>

发表评论

Comment form

(*) 表示必填项

8 条评论

  1. 屁孩 说道:

    都是好东西,收藏了先!

    Thumb up 0 Thumb down 0

  2. 543 说道:

    收藏+1

    Thumb up 0 Thumb down 0

  3.  的头像 唐小娟 说道:

    收藏了

    Thumb up 0 Thumb down 0

  4. 程序小鸟 的头像 程序小鸟 说道:

    谢谢 整理发布,很有用的资料!~

    Thumb up 0 Thumb down 0

  5. zoosuck 说道:

    太好的资源!

    Thumb up 0 Thumb down 0

  6. sacomplex 的头像 sacomplex 说道:

    谢谢啦

    Thumb up 0 Thumb down 0

  7. sacomplex 的头像 sacomplex 说道:

    为什么收藏很费劲呢,还要评论???

    Thumb up 0 Thumb down 0

  8. Psyche 的头像 Psyche 说道:

    好多啊,还是英文版的,谢谢,回复只为收藏!

    Thumb up 0 Thumb down 0

来自微博的评论

跳到底部
返回顶部