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

时间:2023-02-11 15:50:08

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

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

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

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

  Meta-Lists

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