大把免费编程书籍

来源:互联网 发布:2178手游充值库存软件 编辑:程序博客网 时间:2024/06/10 19:04

http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books



2498favorite
7831

I'm trying to amass a list of programming books that are freely available on the Internet. The books can be about a particular programming language or about computers in general.

What are some freely available programming books on the Internet?

share
 comments disabled on deleted / locked posts / reviews

locked by Bill the Lizard Aug 15 at 14:56

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: FAQ.

113 Answers

activeoldestvotes
1234next
2487

Meta-Lists

  • 25 Free Computer Science Ebooks
  • Book Training - On Video
  • Cheat Sheets (Free)
  • CodePlex List of Free E-Books
  • Free Tech Books
  • Galileo Computing (German)
  • How to Design Programs: An Introduction to Computing and Programming
  • Microsoft Press: Free E-Books
  • MindView Inc
  • O'Reilly's Open Books Project
  • Sofware Program Managers Network
  • TechBooksForFree.com
  • Theassayer.org
  • Wikibooks: Programming

Graphics Programming

  • DirectX manual (draft)
  • Learning Modern 3D Graphics Programming (draft)
  • GPU Gems
  • GPU Gems 2 - ch 8,14,18,29,30 as pdf
  • GPU Gems 3
  • Graphics Programming Black Book
  • ShaderX series

Language Agnostic

  • 97 Things Every Programmer Should Know
  • 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
  • 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
  • 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)

Android

  • Building Android Apps with HTML, CSS, and JavaScript
  • Learning Android

Autotools

  • GNU Autoconf, Automake and Libtool

ASP.NET MVC

  • NerdDinner Walkthrough

Assembly Language

  • Programming from the Ground Up (PDF)
  • Paul Carter's Tutorial on x86 Assembly
  • Software optimization resources by Agner Fog

Bash

  • Advanced Bash-Scripting Guide
  • Bash Guide for Beginners by Machtelt Garrels
  • Lhunath's Bash Guide
  • The Command Line Crash Course (also a Powershell reference)

C / C++

  • Beej's Guide to Network Programming
  • Beej's Guide to C Programming
  • The C book
  • C++ Annotations
  • C++ GUI Programming With Qt 3
  • CS106X Programming Abstractions in C++
  • Essential C
  • Introduction to Design Patterns in C++ with Qt 4 (PDF)
  • Learn C the hard way
  • Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
  • The new C standard - an annotated reference
  • Object Oriented Programming in C (PDF)
  • Software optimization resources by Agner Fog
  • Thinking in C++, Second Edition
  • Also see: The Definitive C++ Book Guide and List

C#

  • See .NET below

Clojure

  • Clojure Programming
  • Clojure - Functional Programming for the JVM

CoffeeScript

  • Smooth CoffeeScript
  • The Little Book on CoffeeScript

ColdFusion

  • CFML In 100 Minutes

DB2

  • Getting started with DB2 Express-C (PDF)
  • Getting started with IBM Data Studio for DB2 (PDF)
  • Getting started with IBM DB2 development (PDF)

Delphi / Pascal

  • Essential Pascal Version 1 and 2
  • The Tomes of Delphi

Django

  • Djangobook.com

Emacs

  • GNU Emacs Manual, 16th Edition, v. 22
  • An Introduction to Programming in Emacs Lisp, 3rd Edition

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
  • Real World Functional Programming (MSDN Chapters)

Forth

  • Starting Forth
  • Thinking Forth

Git

  • Pro Git
  • The Git Community Book
  • Git From The Bottom Up (PDF)

Go

  • The Go Tutorial

Grails

  • Getting Start with Grails

Haskell

  • Learn You a Haskell
  • Real World Haskell

HTML / CSS

  • Dive Into HTML5
  • HTML Dog Tutorials

Java

  • Java Application Development on Linux by Carl Albing and Michael Schwarz(PDF)
  • How to Think Like a Computer Scientist
  • The Java EE6 Tutorial (PDF)
  • Java Thin-Client Programming
  • Sun's Java Tutorials
  • Thinking in Java
  • OSGi in Practice (PDF)
  • Category wise tutorials - J2EE
  • Introduction to Programming Using Java - David J. Eck

JavaScript

  • Crockford's JavaScript
  • Eloquent JavaScript
  • Essential Javascript & jQuery Design Patterns for Beginners
  • JavaScript Essentials
  • jQuery Fundamentals (starts with JavaScript basics)
  • Mozilla Developer Network's JavaScript Guide

JavaScript (Node.js specific)

  • Up and Running with Node
  • The Node Beginner Book
  • Mastering Node.js
  • Mixu's Node Book

LaTeX

  • The Not So Short Introduction to LaTeX

Linux

  • Advanced Linux Programming
  • GNU Autoconf, Automake and Libtool
  • GTK+/Gnome Application Development
  • The Linux Development Platform (PDF)
  • Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
  • The Linux Kernel Module Programming Guide
  • Secure Programming for Linux and Unix

Lisp

  • Common Lisp the Language, 2nd Edition
  • Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky
  • Common Lisp Quick Reference
  • Let Over Lambda - 50 Years of Lisp
  • Natural Language Processing in Lisp
  • On Lisp
  • Practical Common Lisp
  • Successful Lisp: How to Understand and Use Common Lisp - David Lamkins
  • Sketchy LISP - Nils Holm

Lua

  • Programming In Lua (for version 5)

Mathematica

  • Mathematica® programming: an advanced introduction by Leonid Shifrin

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# Essentials
  • C# Programming - Wikibook
  • C# Yellow Book (intro to programming)
  • Charles Petzold's .NET Book Zero
  • Data Structures and Algorithms with Object-Oriented Design Patterns in C#
  • Entity Framework
  • Moving to Microsoft Visual Studio 2010
  • Nemerle
  • Programmer's Heaven C# School Book (covers C# 1.0 and 2.0)
  • Threading in C#
  • Visual Basic Essentials
  • Visual Studio Tips and Tricks (VS 2003-2005 only)

NoSQL

  • CouchDB: The Definitive Guide
  • The Little MongoDB Book
  • The Little Redis Book

Oberon

  • Programming in Oberon (PDF)

Objective-C

  • The Objective-C Programming Language
  • Object-Oriented Programming with Objective-C

OCaml

  • Introduction to Objective Caml (PDF)
  • Objective Caml for Scientists (first chapter only)
  • Unix System Programming in OCaml
  • Developing Applications With Objective Caml

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

  • Beginning Perl
  • Embedding Perl in HTML with Mason
  • Essential Perl
  • Extreme Perl
  • Higher-Order Perl
  • The Mason Book
  • Modern Perl 5
  • Perl & LWP
  • Perl for the Web
  • Perl Free Online EBooks (meta-list)
  • Perl The Hard Way
  • Practical mod_perl
  • Web Client Programming with Perl

PHP

  • PHP Essentials
  • Practical PHP Programming (wiki containing O'Reilly's PHP In a Nutshell)
  • Symfony2
  • Zend Framework: Survive the Deep End

PowerShell

  • Mastering PowerShell

Prolog

  • Adventure in Prolog
  • Applications of Prolog
  • Building Expert Systems in Prolog
  • Introduction to Prolog for Mathematicians
  • Learn Prolog Now!
  • Logic, Programming and Prolog (2ed)
  • Natural Language Processing in Prolog
  • Natural Language Processing Techniques in Prolog
  • Prolog Programming A First Course
  • Prolog Techniques
  • Simply Logical
  • Visual Prolog 7.2 for Tyros

PostgreSQL

  • Practical PostgreSQL

Python

  • Building Skills in Python Version 2.5
  • Byte of Python
  • Data Structures and Algorithms in Python
  • Dive into Python
  • Dive into Python 3
  • The Django Book
  • How to Think Like a Computer Scientist: Learning with Python
  • Invent Your Own Computer Games With Python
  • Learn Python The Hard Way
  • Natural Language Processing with Python
  • Python Bibliotheca
  • Python for Fun
  • Snake Wrangling For Kids
  • Think Python (PDF)
  • Thinking in Python

R

  • The R Manuals
  • The R Language
  • R by example
  • Computational Statistics, Jeremy Penzer

Ruby

  • Learn Ruby the hard way
  • MacRuby: The Definitive Guide
  • Mr. Neighborly's Humble Little Ruby Book
  • Programming Ruby
  • Ruby Best Practices
  • Why's (Poignant) Guide to Ruby (mirror)

Ruby on Rails

  • Ruby on Rails Tutorial: Learn Rails By Example

Scala

  • Exploring Lift (published earlier as "The Definitive Guide to Lift", PDF)
  • Lift
  • Pro Scala: Monadic Design Patterns for the Web
  • Programming in Scala, First Edition
  • Programming Scala
  • Scala By Example (PDF)
  • A Scala Tutorial for Java programmers (PDF)
  • Xtrace

Scheme

  • Concrete Abstractions: An Introduction to Computer Science Using Scheme
  • The Scheme Programming Language Edition 3, Edition 4
  • Simply Scheme: Introducing Computer Science

Sed

  • Sed - An Introduction and Tutorial

Smalltalk

  • Dynamic Web Development with Seaside
  • 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
  • Learn SQL The Hard Way

Teradata

  • Teradata Books

Vim

  • A Byte of Vim
  • Vim Recipes
  • Vi Improved -- Vim by Steve Oualline

Websphere

  • Getting started with WebSphere (PDF)

Windows Phone

  • Programming Windows Phone 7
share
 
328

Book: Structure and Interpretation of computer programs (Table of contents)
Lectures are here, smaller re-encoded versions from MIT OpenCourseWare are here.

share
 
24 
the lecture videos are available for this too man find them atgroups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures – jake Oct 17 '08 at 11:52
5 
Re-encoded ones: ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/… – Lucas JonesAug 2 '09 at 12:04
2 
There is a Berkeley OpenCourseWare project (CS 61A, the first of the Cal 3 part lower division curriculum) using the same text with video lectures available here: webcast.berkeley.edu/course_details.php?seriesid=1906978270 – unmounted Oct 15 '10 at 7:35
5 
If anyone's interested in SICP in epub format: github.com/ieure/sicp – Wesley Rice Nov 29 '10 at 17:24
show 3 more comments
144

MIT has their open course ware for computer science.

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm

share
 
131

It's not an ebook, but every programmer should probably watch it.

MIT's - Structure and Interpretation of Computer Programs, Video Lectures

Also, Berkley have their lectures posted online

share
 
1 
Here's the book accompanying the SICP video lectures: mitpress.mit.edu/sicp/full-text/book/book.html. – Jules Dec 21 '08 at 23:48
1 
Stanford also has lectures of many courses online at the SEE project. – ninjalj Jun 26 '10 at 14:49
84

It's not a proper book, but one of Wikipedia's spinoffs is Wikibooks, which has quite a lot of books in different stages of development.

share
 
71

Bruce Eckel offers several books including Thinking in Java

share
 
58

Bruce Eckel has free books on several topics here.

Dive Into Python is a nice free Python book. Check out Thinking in Java and Thinking in C++ as well.

share
 
55

Building Skills

  • Building Skills in Python
  • Building Skills in Programming
  • Building Skills in Object-Oriented Design
share
 
47

Some great links for download open source books:

http://www.onlinecomputerbooks.com/free-open-source-books.php

http://www.freebookcentre.net/SpecialCat/Free-Open-Source-Books-Download.html

share
 
47
  • Essential JavaScript And jQuery Design Patterns by Addy Osmani.
  • Scalable and Modular Architecture for CSS by Jonathan Snook

And sites for free books:

  • Tech books for free download
  • e-booksdirectory
  • techtoolblog - 345 Books
  • O´Reilly Open Books
  • Galileo Computing (German Open Books)
  • Microsoft Press: List of our free books
  • List of 30 free programming ebooks
  • Hackershelf
share
 
46

http://knowfree.net/

That is an amazing resource, not all of the links work, but about 95% which is still awesome

share
 
3 
I don't think it is a valid link. Are they following copyrights rules? – Zerotoinfinite Jan 18 '11 at 8:50
42

Bruce Perens' Open Source Series, several books on different Open Source projects.

share
 show 1 more comment
38

Collection of Free Programming and Technology Related Books

This post contains the list of sites offering Programming, Information Technology and Computer books which are provided by Publishers and Authors legally and free.

share
 
36

AddedBytes.com has a pretty useful collection of Cheat Sheets.

share
 
33
+25

Here is the list of free books from IBM:

  • Database Fundamentals
  • Getting started with Adobe Flex
  • Getting started with DB2 Express-C
  • Getting started with DB2 application development
  • Getting started with IBM Data Studio for DB2
  • Getting started with open source development
  • Getting started with WebSphere Application Server Community Edition

Take a look at the referenced material here:

http://www.db2university.com/web/resources/index.php

share
 
31

Not to be ignored, some helpful material available on http://code.google.com/edu/ andhttp://www.wikibooks.com/

share
 
29

This document has a very nice overview of the GoF book AKA Design Patterns. (CC licensed)

share
 
26
  • Gnu Make Manual
  • Gnu GDB Manual
  • Gnu GCC Documentaion
share
 
26

Basics of Compiler Design

share
 
26

The Art of Assembly Language Programming

share
 
1 
Full title is: "The Art of Assembly Language Programming". By Randall Hyde. 2003. For x86. Published by No Starch Press (San Francisco). Second edition due November 2009. – Peter Mortensen Aug 1 '09 at 11:04
25

Perl framework:

the mason book: Embedding Perl in HTML with Mason

Open source development essays:

and the bazaar and cathedral book:

GUI Design:

User Interface Design for Programmers by joel

Advanced Perl:

Higher-Order Perl

share
 show 1 more comment
25

The NerdDinner tutorial is a great way to start with ASP.NET MVC.

[Update] An even better tutorial is the official ASP.NET MVC Music Store Step-by-Step Tutorial.

share
 show 2 more comments
23
  • Programming in Emacs Lisp (Second Edition)
  • Programming in Lua (first edition)
  • How to Design Worlds: Imaginative Programming in DrScheme
share
 
23
  • Too Many Smalltalk books to list
share
 
23

Maíra Wenzel's Blog

MSDN Library is now featuring 44 chapters from 13 O’Reilly books on subjects such as C# 3.0, Visual Basic 2008, ADO.NET 3.5, .NET 3.5, the ADO.NET Entity Framework, WCF Services, and ASP.NET 3.5.

And here’s the list of the books that have some of their chapters featured on the library:

ASP.NET:

  • Building a Web 2.0 Portal with ASP.NET 3.5: Learn How to Build a State-of-the-Art Ajax Start Page Using ASP.NET, .NET 3.5, LINQ, Windows WF, and More
  • Learning ASP.NET 3.5, Second Edition: Build Web Applications with ASP.NET 3.5, AJAX, LINQ, and More
  • Programming ASP.NET 3.5, Fourth Edition

Visual Studio 2008:

  • C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers
  • C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems
  • C# 3.0 in a Nutshell, Third Edition: A Desktop Quick Reference
  • Learning C# 3.0: Master the fundamentals of C# 3.0
  • Programming Visual Basic 2008: Build .NET 3.5 Applications with Microsoft's RAD Tool for Business

.NET Development:

  • ADO.NET 3.5 Cookbook, Second Edition
  • Programming .NET 3.5: Build N-Tier Applications with WPF, AJAX, Silverlight, LINQ, WCF, and More
  • Programming Entity Framework: Building Data Centric Apps with the ADO.NET Entity Framework
  • Programming WCF Services, Second Edition: Building Service Oriented Applications with Windows Communication Foundation
  • RESTful .NET: Build and Consume RESTful Web Services with .NET 3.5
share
 
1 
looks like someone is desperately clutching at straws in a losing battle for market. I wondered when would MS eventually start taking these steps. – Peter Perháč Jul 2 '10 at 8:18
1 
@Peter: Hmm, what makes you say this ? – ram Jul 2 '10 at 13:46
1 
@Peter Perháč: I agree with "the rebooter", you comments seems out of context. – AMissico Jul 2 '10 at 14:39
20

EJB

EJB Design Patterns
Mastering Enterprise Java Beans, 3rd Edition
Enterprise Java Beans
Mastering Enterprise Java Beans
Bitter Java
The J2EE Architect's Handbook

Other Java

Java Testing and Design

share
 
18

Have a look at theassayer.org.

share
 
18

As posted in my thread:

Ballard and Brown's Computer Vision and A Field Guide to Genetic Programming

share
 
18

OpenGL

  • http://www.glprogramming.com/red/

  • http://www.glprogramming.com/blue/

  • http://www.scribd.com/doc/23602872/opengl-es-2-0-programming-guide-opengl

  • http://http.developer.nvidia.com/GPUGems/gpugems_pref02.html

  • http://http.developer.nvidia.com/GPUGems2/gpugems2_part01.html

  • http://http.developer.nvidia.com/GPUGems3/gpugems3_pref01.html

share

原创粉丝点击