国外程序员推荐的免费编程书籍资源
下面是一些推荐资源,其中有视频、大学课程、编程语言教程网站,
一、
· 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 允许免费在线阅读。
【更新:2012-5-17 20:24:19】
下面这部分依然来自 *,不过是另外一个贴子。
· 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)