We are still actively working on the spam issue.
Difference between revisions of "Programming resources"
m (→God-tier books: Changed the edition of Advanced UNIX programming) |
m (→God-tier books: Added some book descriptions) |
||
Line 16: | Line 16: | ||
These books are essential books that people should have, or at least have read or know about: | These books are essential books that people should have, or at least have read or know about: | ||
− | * [http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools Compilers: Principles, Techniques and Tools] (a.k.a The Dragon Book) | + | * [http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools Compilers: Principles, Techniques and Tools] (a.k.a The Dragon Book). This book is loaded with all the theory and concepts needed to design, implement and optimise a compiler. It's the go-to compiler book. |
* [http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation Operating Systems: Design and Implementation] (a.k.a the MINIX book). This is one of the books [[Linus Torvalds]] used to write the original Linux kernel. | * [http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation Operating Systems: Design and Implementation] (a.k.a the MINIX book). This is one of the books [[Linus Torvalds]] used to write the original Linux kernel. | ||
− | * [http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming The Art of Computer Programming] by Donald Knuth (essentially the holy grail of [[Computer Science]] literature. | + | * [http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming The Art of Computer Programming] by Donald Knuth (essentially the holy grail of [[Computer Science]] literature). Bill Gates said that if anyone can read every volume in TAOCP from cover to cover, then they should definitely send him their CV/Resume. |
− | + | * [http://books.cat-v.org/computer-science/mythical-man-month/tmmm.pdf The Mythical Man Month: Essays on Software Engineering]. A compilation of essays on what experienced software engineers and programmers have learned from their successes and failures over many years. | |
− | * [http://books.cat-v.org/computer-science/mythical-man-month/tmmm.pdf The Mythical Man Month: Essays on Software Engineering] | + | * [http://en.wikipedia.org/wiki/Design_Patterns Design Patterns: Elements of Reusable Object-Oriented Software]. Design patterns and principles designed to help object-oriented software. |
− | * [http://en.wikipedia.org/wiki/Design_Patterns Design Patterns: Elements of Reusable Object-Oriented Software] | + | * [http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar The Cathedral and the Bazaar]. Eric S. Raymond's book on Closed-house development (cathedral) vs open-source, distributed development (bazaar), and how the latter is much more effective. |
− | * [http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar The Cathedral and the Bazaar] | ||
* The C Programming Language, mentioned below. Also known as K&R because it was written by the founders of C, Brian '''K'''ernighan and Dennis '''R'''itchie. | * The C Programming Language, mentioned below. Also known as K&R because it was written by the founders of C, Brian '''K'''ernighan and Dennis '''R'''itchie. | ||
* Structure and Interpretation of Computer Programs, listed below | * Structure and Interpretation of Computer Programs, listed below | ||
− | * [http:// | + | * [http://books.cat-v.org/computer-science/unix-programming-environment/ The UNIX Programming Environment, 2nd edition] An excellent introductory *nix book. Written by Brian Kernighan (of K&R) and Rob Pike (invented Golang), both of whom were involved with the creation of UNIX. |
* [http://basepath.com/aup/ Advanced UNIX Programming, 2nd Edition] Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls. | * [http://basepath.com/aup/ Advanced UNIX Programming, 2nd Edition] Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls. | ||
Revision as of 05:04, 18 February 2014
The following is a list of recommended books for learning how to program:
First, check GitHub's extensive list of free programming books: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
Second, a very comprehensive list: http://programming-motherfucker.com/
The gentoomen have also provided a torrent at http://books.gentoomen.org/ which has a metric fuckton of books, and if you prefer actual physical books, you can get them for really cheap from http://abebooks.com
If you don't see the book you're looking for listed, search the following lists for other sources of books:
Contents
God-tier books
These books are essential books that people should have, or at least have read or know about:
- Compilers: Principles, Techniques and Tools (a.k.a The Dragon Book). This book is loaded with all the theory and concepts needed to design, implement and optimise a compiler. It's the go-to compiler book.
- Operating Systems: Design and Implementation (a.k.a the MINIX book). This is one of the books Linus Torvalds used to write the original Linux kernel.
- The Art of Computer Programming by Donald Knuth (essentially the holy grail of Computer Science literature). Bill Gates said that if anyone can read every volume in TAOCP from cover to cover, then they should definitely send him their CV/Resume.
- The Mythical Man Month: Essays on Software Engineering. A compilation of essays on what experienced software engineers and programmers have learned from their successes and failures over many years.
- Design Patterns: Elements of Reusable Object-Oriented Software. Design patterns and principles designed to help object-oriented software.
- The Cathedral and the Bazaar. Eric S. Raymond's book on Closed-house development (cathedral) vs open-source, distributed development (bazaar), and how the latter is much more effective.
- The C Programming Language, mentioned below. Also known as K&R because it was written by the founders of C, Brian Kernighan and Dennis Ritchie.
- Structure and Interpretation of Computer Programs, listed below
- The UNIX Programming Environment, 2nd edition An excellent introductory *nix book. Written by Brian Kernighan (of K&R) and Rob Pike (invented Golang), both of whom were involved with the creation of UNIX.
- Advanced UNIX Programming, 2nd Edition Recommended as a follow on book from The UNIX Programming Environment. Contains information on over 300 syscalls.
C
- The C Programming Language by Brian Kernighan and Dennis Ritchie
- O'Reilly - Practical C Programming
C++
C#
Forth
- Thinking Forth (PDF download)
Haskell
Lisp
Scheme
- Structure and Interpretation of Computer Programs (Read it online)
- The Little Schemer
- The Seasoned Schemer
- The Reasoned Schemer
Common Lisp
- Common Lisp: A Gentle Introduction to Symbolic Computation (PDF download)
- Practical Common Lisp (Read it Online)
- On Lisp (PDF and Postscript download)
- Let Over Lambda
Pascal
Ruby
- The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto
- Ruby In A Nutshell by Yukihiro Matsumoto
- Programming Ruby 1.9 & 2.0 (4th edition) (a.k.a. The Pickaxe) by Dave Thomas, Chad Fowler and Andy Hunt
- Metaprogramming Ruby by Paolo Perrotta
- Eloquent Ruby by Russ Olsen
- The Well-Grounded Rubyist by David A. Black