国外程序员推荐的免费编程书籍资源
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
Flex
F
- The F# Survival Guide
- F Sharp Programming in Wikibooks
Forth
Git
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
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
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
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
交互式教程网站:http://t.cn/aep0mV
很全的 Vim 速查卡:http://t.cn/aBPFPk
Websphere
二、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)
原文链接:stackoverflow 翻译:伯乐在线 - 黄利民
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/guo-wai-cheng-xu-yuan-tui-jian-de-mian-fei-bian-cheng-shu-ji-zi-yuan.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。