This page contains recommendations for learning technical information on a variety of subjects. Note that "*
" denotes a resource unavailable on dead-tree format.
Others' Lists
Reference Cards
RFCs
Non-technical
Productivity
Topic |
Title |
Author |
Notes
|
Regex |
Mastering Regular Expressions |
|
|
Shell |
Learning the Bash Shell |
|
|
Shell |
From Bash to Z Shell: Conquering the Command Line |
|
|
Version Control |
Version Control with Git |
|
|
Programming
Topic |
Title |
Author |
Notes
|
ASM |
PC Assembly Language * |
|
|
C |
The C Programming Language |
Brian Kernighan, Dennis Ritchie |
|
C |
C: A Reference Manual |
|
|
C |
The Standard C Library |
|
|
C |
The Elements of C Programming Style |
|
|
C |
21st Century C |
|
|
C |
Mastering Algorithms with C |
|
|
C++ |
The C++ Programming Language |
|
|
C++ |
C++ The Core Language |
|
|
C++ |
Practical C++ Programming |
|
|
C++ |
Safe C++ |
|
|
C++ |
Effective STL |
|
|
C++ |
C++: The Good Parts |
|
Still being written as of Dec. 2012
|
Haskell |
Learn You a Haskell for Great Good |
|
|
Java |
Thinking in Java * |
|
|
Java |
Effective Java |
|
|
Lisp |
Structure and Interpretation of Computer Programs |
Harold Abelson, Gerald Sussman |
|
Perl |
Learning Perl |
|
|
R |
R Language Definition * |
|
|
R |
An Introduction to R * |
|
|
Ruby |
Ruby on Rails Tutorial: Learn Web Development with Rails (2nd edition) |
|
|
Software Engineering |
Beautiful Code |
|
|
Software Engineering |
The Art Of Readable Code |
|
|
Software Engineering |
Code Simplicity |
|
|
Software Engineering |
Design Patterns |
Gang of Four |
Classic book on OOP design paradigms
|
Software Engineering |
The Practice of Programming |
Brian Kernighan |
|
Software Engineering |
Write Great Code, Volume 2 |
Randall Hyde |
About how to choose the best high level constructs that translate into efficient low-level code.
|
Computer Science
Topic |
Title |
Author |
Notes
|
Algorithms |
Intro to Algorithms |
Corman, Leiserson, Rivest, Stein |
|
Algorithms |
The Art Of Computer Programming: Fundamental Algorithms |
Knuth |
|
Algorithms |
The Art Of Computer Programming: Seminumerical Algorithms |
Knuth |
|
Algorithms |
The Art Of Computer Programming: Sorting and Searching |
Knuth |
|
Algorithms |
The Art Of Computer Programming: Combinatorial Algorithms, Part 1 |
Knuth |
|
Compilers |
The Art of Compiler Design |
|
|
Computer Architecture |
What Every Programmer Should Know About Memory * |
|
|
Computer Vision |
Learning OpenCV |
|
|
Machine Learning |
Machine Learning for Hackers |
|
|
Networking |
TCP/IP Illustrated, Volume 1 |
|
|
Operating Systems |
Mac OS X Internals |
|
|
Electrical and Computer Engineering
Topic |
Title |
Author |
Notes
|
General |
All About Circuits |
|
Free online intro-level circuits textbook.
|
DIY |
ladyada wiki |
Limor Fried, et al |
Good reference for hobbyists
|
DIY |
Partfinder |
Limor Fried, et al |
Wiki page with links to distributors of various parts (including sampling)
|
DIY |
Arduino Playground |
Arduino |
Official Arduino wiki
|
ICs |
74 Series Logic ICs |
John Hughes |
Broad overview of the IC family and summary of the more common chips
|
General |
The Art of Electronics |
Paul Horowitz |
Excellent textbook and reference for both analog and digital circuits
|
General |
Electronics Tutorials |
Wayne Storr |
Basic tutorials on a variety of circuit elements
|
Operating Systems
Topic |
Title |
Author |
Notes
|
BSD |
The Design and Implementation of the 4.4 BSD Operating System |
|
|
BSD |
Berkeley Unix: A Simple and Comprehensive Guide |
|
|
Linux |
Learn Linux the Hard Way |
|
|
Unix |
UNIX Tutorial for Beginners |
|
|
Unix |
Unix Made Easy |
|
|
Unix |
The Unix Programming Environment |
|
|
Unix |
Advanced Programming in the Unix Environment (2nd Edition) |
|
|
Unix |
The Art of Unix Programming |
Eric S. Raymond |
|
Unix |
Unix Systems for Modern Architectures |
|
|
Unix |
UNIX Power Tools |
|
|
Unix |
Using C on the UNIX System |
|
|
Unix |
The TTY Demystified |
Linus Akesson |
|
Security
Web Development
See Recommended Web Design Reference Documentation.
Other