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 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
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
- 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
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
Django
Erlang
Learn You Some Erlang For Great Good
Flex
Getting started with Adobe Flex (PDF)
F#
F Sharp Programming in Wikibooks
Forth
Git
- Pro Git (官網有中文版)
- The Git Community Book
- Git From The Bottom Up (PDF)
Grails
Haskell
HTML / CSS
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
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
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
Oberon
Programming in Oberon (PDF)
Objective-C
The Objective-C Programming Language
OCaml
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
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
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
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
SQL (implementation agnostic)
- Developing Time-Oriented Database Applications in SQL
- Use The Index, Luke! (a guide to SQL database performance for developers)
Teradata
Vim
- A Byte of Vim
- Vim Recipes
- 互動式教程網站:http://t.cn/aep0mV
- 很全的Vim速查卡:http://t.cn/aBPFPk
Websphere
Getting started with WebSphere (PDF)
二、 TG 推薦了麻省理工學院的一門課程
三、 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)
打賞支援我翻譯更多好文章,謝謝!
打賞譯者
打賞支援我翻譯更多好文章,謝謝!
任選一種支付方式