Learning Resource Recommendations
Revision as of 06:06, 25 January 2013 by imported>Mjh (→Non-technical)
This page contains recommendations for learning technical information on a variety of subjects.
Contents
Reference Cards
External Lists
- Free Programming Books
- Linux and Unix Bibliography - Eric S. Raymond
Non-technical
| Topic | Title | Author | Notes |
|---|---|---|---|
| Hacking | How To Become a Hacker | Eric Raymond | Introduction to hacking |
| Hacking | The Word "Hacker" | Paul Graham | Another introduction |
| Hacking | Hackers: Heroes of the Computer Revolution | Steven Levy | Book on the history of hacking |
Productivity
| Topic | Title | Author | Notes |
|---|---|---|---|
| Shell | Learning the Bash Shell | ||
| Shell | From Bash to Z Shell: Conquering the Command Line | ||
| Version Control | Version Control with Git |
Software Engineering
- Beautiful Code
- The Art Of Readable Code
- Code Simplicity
- Design Patterns
- The Practice of Programming
Programming
| Topic | Title | Author | Notes |
|---|---|---|---|
| ASM | PC Assembly Language * | ||
| C | The C Programming Language | Kerninghan & 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 | ||
| Perl | Learning Perl | ||
| R | R Language Definition * | ||
| R | An Introduction to R * | ||
| Ruby | Ruby on Rails Tutorial: Learn Web Development with Rails (2nd edition) |
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 |
Unix
- The Design and Implementation of the 4.4 BSD Operating System
- Berkeley Unix: A Simple and Comprehensive Guide
- Unix Made Easy
- The Unix Programming Environment
- Advanced Programming in the Unix Environment (2nd Edition)
- The Art of Unix Programming
- Unix Systems for Modern Architectures
- UNIX Power Tools
- Using C on the UNIX System
Security
- The Art of Software Security Assessment
- The Book of PF (2nd edition)
- Applied Cryptography
- Handbook of Applied Cryptography *
- Applied Cryptography: Protocols, Algorithms, and Source Code in C
Misc
- Checking C Programs with lint
- Mastering Regular Expressions
- Eloquent JavaScript *
- JavaScript: The Good Parts
- WebGL: Up and Running
- Node: Up and Running
- HTML & CSS: The Good Parts
- PDF Explained
- PostScript Language *
* denotes digital-only format