Difference between revisions of "Learning Resource Recommendations"
imported>Mjh (→Non-technical) |
imported>Pew |
||
(30 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | This page contains recommendations for learning technical information on a variety of subjects. | + | ''fwiw this information is 5 years old, so don't expect to see any guides to learn rust or anything |
+ | |||
+ | This page contains recommendations for learning technical information on a variety of subjects. Note that "<code>*</code>" denotes a resource unavailable on dead-tree format. | ||
+ | |||
+ | ==Others' Lists== | ||
+ | * [http://creativecodeworks.com/blog/programacion/libros-gratuitos-sobre-programacion.html Free Programming Books] | ||
+ | * [http://en.tldp.org/HOWTO/Reading-List-HOWTO/b80.html Linux and Unix Bibliography] - Eric S. Raymond | ||
+ | * [http://www.tldp.org/ The Linux Documentation Project] | ||
==Reference Cards== | ==Reference Cards== | ||
Line 11: | Line 18: | ||
* [http://www.dayid.org/os/notes/tm.html Screen/Tmux cheat sheet] | * [http://www.dayid.org/os/notes/tm.html Screen/Tmux cheat sheet] | ||
− | == | + | ==RFCs== |
− | * [ | + | * '''[https://tools.ietf.org/html/rfc2119 RFC 2119: Key words for use in RFCs to Indicate Requirement Levels] (short, must read) |
− | * [ | + | * [https://tools.ietf.org/html/rfc1178 RFC 1178: Choosing a Name for Your Computer] |
+ | * [https://tools.ietf.org/html/rfc1918 RFC 1918: Address Allocation for Private Internets] | ||
+ | * [https://tools.ietf.org/html/rfc1459 RFC 1459: Internet Relay Chat Protocol] | ||
+ | * [https://tools.ietf.org/html/rfc2812 RFC 2812: Internet Relay Chat: Client Protocol] | ||
+ | * [https://tools.ietf.org/html/rfc1149 RFC 1149: A Standard for the Transmission of IP Datagrams on Avian Carriers] | ||
+ | * [https://tools.ietf.org/html/rfc2324 RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)] | ||
==Non-technical== | ==Non-technical== | ||
Line 21: | Line 33: | ||
|- | |- | ||
|Hacking || [http://www.catb.org/esr/faqs/hacker-howto.html How To Become a Hacker] || Eric Raymond || Introduction to hacking | |Hacking || [http://www.catb.org/esr/faqs/hacker-howto.html How To Become a Hacker] || Eric Raymond || Introduction to hacking | ||
+ | |- | ||
+ | |Hacking || [http://www.catb.org/jargon/html/index.html The Jargon File] || Eric Raymond || Glossary of hacker jargon with historical background | ||
|- | |- | ||
|Hacking || [http://paulgraham.com/gba.html The Word "Hacker"] || Paul Graham || Another introduction | |Hacking || [http://paulgraham.com/gba.html The Word "Hacker"] || Paul Graham || Another introduction | ||
|- | |- | ||
|Hacking || [http://www.amazon.com/Hackers-Heroes-Computer-Revolution-Anniversary/dp/1449388396 Hackers: Heroes of the Computer Revolution] || Steven Levy || Book on the history of hacking | |Hacking || [http://www.amazon.com/Hackers-Heroes-Computer-Revolution-Anniversary/dp/1449388396 Hackers: Heroes of the Computer Revolution] || Steven Levy || Book on the history of hacking | ||
+ | |- | ||
+ | |History || [http://pthree.org/2009/12/31/the-meaning-of-su/ The Meaning of 'su'] || Aaron Toponce || | ||
+ | |- | ||
+ | |LUGs || [http://www.tldp.org/HOWTO/User-Group-HOWTO.html Linux Users Group HOWTO] || Rick Moen || TLDP page on starting or running a LUG | ||
+ | |- | ||
+ | |Support || [http://www.catb.org/~esr/faqs/smart-questions.html How to Ask Questions the Smart Way] || Eric S. Raymond || | ||
|} | |} | ||
Line 31: | Line 51: | ||
|- | |- | ||
! Topic !! Title !! Author !! Notes | ! Topic !! Title !! Author !! Notes | ||
+ | |- | ||
+ | | Regex || Mastering Regular Expressions || || | ||
|- | |- | ||
| Shell || Learning the Bash Shell || || | | Shell || Learning the Bash Shell || || | ||
Line 39: | Line 61: | ||
|- | |- | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Programming== | ==Programming== | ||
Line 54: | Line 69: | ||
| ASM || PC Assembly Language * || || | | ASM || PC Assembly Language * || || | ||
|- | |- | ||
− | | C || The C Programming Language || | + | | C || The C Programming Language || Brian Kernighan, Dennis Ritchie || |
|- | |- | ||
| C || C: A Reference Manual || || | | C || C: A Reference Manual || || | ||
Line 83: | Line 98: | ||
|- | |- | ||
| Java || Effective Java || || | | Java || Effective Java || || | ||
+ | |- | ||
+ | | Lisp || [http://mitpress.mit.edu/sicp/ Structure and Interpretation of Computer Programs] || Harold Abelson, Gerald Sussman || | ||
|- | |- | ||
| Perl || Learning Perl || || | | Perl || Learning Perl || || | ||
Line 91: | Line 108: | ||
|- | |- | ||
| Ruby || [http://ruby.railstutorial.org/ Ruby on Rails Tutorial: Learn Web Development with Rails (2nd edition)] || || | | Ruby || [http://ruby.railstutorial.org/ 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. | ||
|- | |- | ||
|} | |} | ||
Line 123: | Line 152: | ||
|} | |} | ||
− | == | + | ==Electrical and Computer Engineering== |
− | + | {| class="wikitable sortable" | |
− | + | |- | |
− | + | ! Topic !! Title !! Author !! Notes | |
− | + | |- | |
− | + | | General || [http://www.allaboutcircuits.com/ All About Circuits] || || Free online intro-level circuits textbook. | |
− | + | |- | |
− | + | | DIY || [http://www.ladyada.net/wiki/start ladyada wiki] || Limor Fried, et al || Good reference for hobbyists | |
− | + | |- | |
− | + | | DIY || [http://www.ladyada.net/wiki/partfinder Partfinder] || Limor Fried, et al || Wiki page with links to distributors of various parts (including sampling) | |
+ | |- | ||
+ | | DIY || [http://playground.arduino.cc/ Arduino Playground] || Arduino || Official Arduino wiki | ||
+ | |- | ||
+ | | ICs || [http://www.kpsec.freeuk.com/components/74series.htm 74 Series Logic ICs] || John Hughes || Broad overview of the IC family and summary of the more common chips | ||
+ | |- | ||
+ | | General || [http://www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521370957 The Art of Electronics] || Paul Horowitz || Excellent textbook and reference for both analog and digital circuits | ||
+ | |- | ||
+ | | General || [http://www.electronics-tutorials.ws/ Electronics Tutorials] || Wayne Storr || Basic tutorials on a variety of circuit elements | ||
+ | |- | ||
+ | | PCB Design || [http://www.ece.vt.edu/cel/docs/PC_Board_Design_Example_v2.pdf CEL PCB Design Example] || The Bob Lineberry || For ECE 4534 | ||
+ | |- | ||
+ | | Soldering || [http://workmanship.nasa.gov/lib/insp/2%20books/frameset.html NASA Soldering Standards] || NASA || A good pictorial reference on soldering quality | ||
+ | |- | ||
+ | | Soldering || [http://filebox.ece.vt.edu/%7Elineb/Soldering_Prototypes.html CEL Soldering Videos] || The Bob Lineberry || | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==Operating Systems== | ||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
+ | ! 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 || [http://nixsrv.com/llthw Learn Linux the Hard Way] || || | ||
+ | |- | ||
+ | | Unix || [http://ardensdd.com/ 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 || [http://www.linusakesson.net/programming/tty/ The TTY Demystified] || Linus Akesson || | ||
+ | |- | ||
+ | |} | ||
==Security== | ==Security== | ||
− | + | {| class="wikitable sortable" | |
− | + | |- | |
− | + | ! Topic !! Title !! Author !! Notes | |
− | + | |- | |
− | + | | Cryptography || Handbook of Applied Cryptography* || || | |
+ | |- | ||
+ | | Cryptography || Applied Cryptography: Protocols, Algorithms, and Source Code in C || || | ||
+ | |- | ||
+ | | Cryptography || [https://www.coursera.org/course/crypto Cryptography I] || Dan Boneh || Stanford's crypto class, all materials are freely available | ||
+ | |- | ||
+ | | General || [https://www.schneier.com/ Schneier on Security Blog] || Bruce Schneier || Security blog and rants about the TSA | ||
+ | |- | ||
+ | | OpSec || [https://ssd.eff.org/ Surveillance Self-Defense] || EFF || Guide to protecting your data from the Powers That Be | ||
+ | |- | ||
+ | | OpSec || [http://www.cypherpunks.to/faq/cyphernomicron/cyphernomicon.html Cyphernomicon] || Timothy May || | ||
+ | |- | ||
+ | | OpSec || [https://cryptoparty.org/wiki/CryptoPartyHandbook CryptoParty Handbook] || (crowd-sourced) || Guide to running a CryptoParty and using basic tools (Tor, Truecrypt, PGP, etc) | ||
+ | |- | ||
+ | | OpSec || [http://youtu.be/6wXkI4t7nuc Don't Talk to Police] || James Duane || Youtube video from US attorney on dealing with police encounters | ||
+ | |- | ||
+ | | OpSec || [https://encrypteverything.ca/index.php/Main_Page Encrypt Everything] || Pirate Party of Canada || | ||
+ | |- | ||
+ | | PGP || [https://we.riseup.net/riseuplabs+paow/openpgp-best-practices#dont-use-pgp-mit-edu OpenPGP best practices] || Riseup Labs || | ||
+ | |- | ||
+ | | PGP || [http://cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html Keysigning Party HOWTO] || V. Alex Brennen || Guide to efficient group keysigning | ||
+ | |- | ||
+ | | PGP || [http://biglumber.com/x/web Biglumber] || || Coordinates keysigning parties by geographical area | ||
+ | |- | ||
+ | | PGP || [http://www.uk.pgp.net/pgpnet/pgp-faq/ comp.security.pgp FAQ] || Wouter Slegers || | ||
+ | |- | ||
+ | | PGP || [http://cryptnet.net/mirrors/rfcs/rfc4880.txt RFC 4880] || J. Callas, et al || OpenPGP message format | ||
+ | |- | ||
+ | | PGP || [http://www.heureka.clara.net/sunrise/pgpsign.htm Always sign your PGP key] || Keith Parkins || | ||
+ | |- | ||
+ | | PGP || [http://www.gnupg.org/faq/GnuPG-FAQ.html GnuPG FAQ] || || | ||
+ | |- | ||
+ | | Software || The Art of Software Security Assessment || || | ||
+ | |- | ||
+ | | Software || The Book of PF (2nd edition) || || | ||
+ | |- | ||
+ | |} | ||
− | == | + | ==Other== |
* Checking C Programs with lint | * Checking C Programs with lint | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* PDF Explained | * PDF Explained | ||
* PostScript Language * | * PostScript Language * | ||
+ | * [http://fileformats.archiveteam.org/wiki/Main_Page File Formats Wiki] - Archive Team | ||
+ | * [https://help.ubuntu.com/community/PXEInstallMultiDistro PXE Install Multiple Distros] | ||
− | + | [[Category:Software]] | |
+ | [[Category:Reference]] | ||
+ | [[Category:Featured content]] |
Latest revision as of 10:32, 6 January 2018
fwiw this information is 5 years old, so don't expect to see any guides to learn rust or anything
This page contains recommendations for learning technical information on a variety of subjects. Note that "*
" denotes a resource unavailable on dead-tree format.
Contents
Others' Lists
- Free Programming Books
- Linux and Unix Bibliography - Eric S. Raymond
- The Linux Documentation Project
Reference Cards
RFCs
- RFC 2119: Key words for use in RFCs to Indicate Requirement Levels (short, must read)
- RFC 1178: Choosing a Name for Your Computer
- RFC 1918: Address Allocation for Private Internets
- RFC 1459: Internet Relay Chat Protocol
- RFC 2812: Internet Relay Chat: Client Protocol
- RFC 1149: A Standard for the Transmission of IP Datagrams on Avian Carriers
- RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
Non-technical
Topic | Title | Author | Notes |
---|---|---|---|
Hacking | How To Become a Hacker | Eric Raymond | Introduction to hacking |
Hacking | The Jargon File | Eric Raymond | Glossary of hacker jargon with historical background |
Hacking | The Word "Hacker" | Paul Graham | Another introduction |
Hacking | Hackers: Heroes of the Computer Revolution | Steven Levy | Book on the history of hacking |
History | The Meaning of 'su' | Aaron Toponce | |
LUGs | Linux Users Group HOWTO | Rick Moen | TLDP page on starting or running a LUG |
Support | How to Ask Questions the Smart Way | Eric S. Raymond |
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 |
PCB Design | CEL PCB Design Example | The Bob Lineberry | For ECE 4534 |
Soldering | NASA Soldering Standards | NASA | A good pictorial reference on soldering quality |
Soldering | CEL Soldering Videos | The Bob Lineberry |
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
Topic | Title | Author | Notes |
---|---|---|---|
Cryptography | Handbook of Applied Cryptography* | ||
Cryptography | Applied Cryptography: Protocols, Algorithms, and Source Code in C | ||
Cryptography | Cryptography I | Dan Boneh | Stanford's crypto class, all materials are freely available |
General | Schneier on Security Blog | Bruce Schneier | Security blog and rants about the TSA |
OpSec | Surveillance Self-Defense | EFF | Guide to protecting your data from the Powers That Be |
OpSec | Cyphernomicon | Timothy May | |
OpSec | CryptoParty Handbook | (crowd-sourced) | Guide to running a CryptoParty and using basic tools (Tor, Truecrypt, PGP, etc) |
OpSec | Don't Talk to Police | James Duane | Youtube video from US attorney on dealing with police encounters |
OpSec | Encrypt Everything | Pirate Party of Canada | |
PGP | OpenPGP best practices | Riseup Labs | |
PGP | Keysigning Party HOWTO | V. Alex Brennen | Guide to efficient group keysigning |
PGP | Biglumber | Coordinates keysigning parties by geographical area | |
PGP | comp.security.pgp FAQ | Wouter Slegers | |
PGP | RFC 4880 | J. Callas, et al | OpenPGP message format |
PGP | Always sign your PGP key | Keith Parkins | |
PGP | GnuPG FAQ | ||
Software | The Art of Software Security Assessment | ||
Software | The Book of PF (2nd edition) |
Other
- Checking C Programs with lint
- PDF Explained
- PostScript Language *
- File Formats Wiki - Archive Team
- PXE Install Multiple Distros