<Back to Z-Degrees

Computer Science Curriculum

Little #96D7AF Books

A Free Computer Science Curriculum using OER (free textbooks) and OCW (free lectures)

License: Unlicense

Index

Why You Shouldn't Spend a Cent on Learning How to Program

Why is technology on Moore's Law but the cost of college rises many times faster than inflation? Because private university is a scam.

A computer science professor teaches a 4-course load each semester for $100,000 a year salary. A simple breakdown means a single class costs $13,000 to make. If that class is recorded and put on YouTube, 50 million people can watch the video. $13,000 / 50,000,000 = 0.00026. That means each viewing of the video costs the Professor 0.03% of a cent. This fee is easily covered by ad revenue for each viewing on YouTube. That is to say, by watching an ad before each class's video, you are paying the professor for the cost of producing that class. What used to cost hundreds of dollars (per class) in brick and mortar university now costs 0.03% of a cent. That is an example of how higher education is on Moore's Law, in which computer advances mean logarithmic changes to pricing. Computer Science college is now free, distributed amongst millions of online learners instead of amongst just a couple dozen students in a brick and mortar classroom. The lessons are the same, the materials and class content are the same, the only difference is instead of paying thousands of dollars per class you are watching an ad for five seconds before each lecture. There is no going back from this reality. Computer science education is now free by the very existence of the internet that computer science education created. If you pay for expensive college given this reality (especially with the mandatorily non-bankruptable student loans), you are squandering away money that could rather compound in your interest for 40+ years if invested in total stock market index funds while still college-aged. The redistribution of wealth, from your own net worth to the college's own net worth, is one of the reasons my generation faces having millions of dollars removed from our net worth. The next generation of students doesn't have to make that choice anymore, though. They can study online through free open source or affordable digital educational resources.

Since many computer scientists contribute to open source, there are many computer scientists who also use open source licenses on the textbooks they write. Because open source is so prominent in computer science, it is foolish to pay money at this point to learn how to program when there is such a ubiquity of free self-guided tutorials. People are literally pouring out free computer science educational resources at an staggering rate because they love to volunteer their time towards CS education. To ignore these resources would come at a great opportunity cost to you, because student loans at a young age actually cost 64 times the sticker price in lost retirement savings/net worth. Little #96D7AF Books teaches CS students in Topeka, KS to be frugal in regards to their education and exploit all the free resources Topeka has to offer before spending any money on learning to program. The rewards are immense: Maxing out your 401k and IRA on index funds can be a means of attaining financial independence in just your thirties.

Magic Multiple

The graph above shows how many times the principal (i.e. paying tuition) is at a certain age when retiring at 65 versus investing that money in index funds. As you can see, your college actually costs you more than 100x the sticker cost when you're not allowed to invest the money you earn at your first job at 22 because you're paying your student loans, instead of investing your salary in index funds. A $60,000 student loan would mean losing out on $6,000,000 from your retirement versus if you had invested that $60,000 at age 22. Obviously, keeping your college costs as low as possible so you don't have student debt is worth more than any diploma, professional development, graduate degree, or advanced certification. The formula is f(age) = 2^((65-age)/(72/11.3)) (using the Rule of 72).

College is really expensive, but your public library and online open source education is free. There is no sacrifice to choosing the open source model. The textbooks and learning resources are just as good. You will still have to study computer science for four years and dedicate yourself to lot of hard work and long study hours everyday. You will have to learn just as much as the people who are spending money on their education; learning for free doesn't mean you can avoiding learning the same subjects that people spend tuition money to learn. The Little #96D7AF Books curriculum is not a fast track to a programming job, it's goal is to mimic a four year computer science college curriculum. I realize that may turn people away, but the goal is to develop competent programmers that prove free open source education is just as opportunity-rich as traditional brick and mortar universities. If you feel certain aspects are missing, you can use other free computer science curricula to build your own classes. The point is, the sooner you integrate your computer science life into the world of open source (a good starting place is purchasing a Raspberry Pi and learning Debian), the more successful your computer science career will be. However, I don't think open source involvement should only be limited to source code. I also feel the sooner your integrate your educational life into the world of open source, the more successful your computer science career will be too. Most people don't go "that far", in fact promoting minimizing one's involvement with non-free university classes is a bit taboo in the United States where university is viewed as the great equalizer in society. But just read a few books about the student debt crisis and you'll discover that taking on debt at a young age is anathema to financial freedom, it permanently damages your net worth. Considering how robust the open source computer science educational community is, I think it seriously minimizes risk to pursue free education with OER. Many people disagree, but I hope to show you through this website that "Educating Yourself" is a great way to find success in computer science. The notion that the only way you'll be a successful computer scientist is by going to an expensive private university is more likely to wind you in the same place professionally, but with the financial hangover of hundreds of thousands of dollars of debt at age 22 instead of zero debt. When your salary goes to paying down a university loan instead of your 401k and IRA, where 38+ years of compounding rewards youthful frugality quite impressively, you are making an explicit trade off between prestige (a degree) and financial freedom (a maxed out 401k and IRA every year starting at age 22). In just my small time as a computer scientist, I find my explorations of frugality via open source education as enabled by the Topeka Public Library to be immensely rewarding. So I create Little #96D7AF Books to share my research. I wrote my undergraduate art history senior thesis at Reed College on the sociology of higher education, and as I have pursued that line of research even after graduating and moving on to a computer science career, and all indicators point to combining Mr. Money Mustache-level frugality with using public libraries and OER/OCW as educational springboard to be a great strategy for building a great computer science career. I am confident enough in this theory to share it publicly through Little #96D7AF Books to anyone willing to listen. Little #96D7AF Books is about educating yourself enough to be able to educate yourself. It is possible now to get a university education for free through open source resources on the internet. That wasn't true in the past, but it is now.

Note: Perlego is $12 a month for a "Spotify for Textbooks." Since that is so affordable, I have included it on the curriculum, assuming getting access to a University library for $12 a month is a worthwhile tradeoff for the subscription cost. If you do not want to use Perlego, do everything but the Perlego books. Hopefully within a couple years every book ever written will be online for an affordable monthly subscription. Perlego is a good attempt at that. Otherwise use your public library stacks.

Unschooling

Topic Book
Little #96D7AF Books Guide to Being a Not-Rich Computer Scientist
Public Libraries Mr. Money Mustache - Get Rich With: Your Local Public Library
Unschooling Grace Llewellyn - The Teenage Liberation Handbook - How to quit school and get a real life and education
Unschooling William Upski - No More Prisons - Homeschooling and Self-Education (Page 57-80)
DIY Edu Anya Kamenetz - DIY U
Critical Thinking 100 Reasons Not to Go to Grad School Blog
Education Seth Godin - Stop Stealing Dreams
Online Studying NPR - Comic: How To Turn Your Home Into A School Without Losing Your Sanity
Online Studying NPR - Tips For Homeschooling During Coronavirus
Online Studying UoPeople - How to Succeed in Online Classes
Online Studying UoPeople - How to Succeed as a Student
Online Studying UoPeople - Online Education Strategies- Univ 1001: Learning Materials
College Success OpenStax - College Success textbook
Critical Thinking Foundation for Critical Thinking - Public Library of Critical Thinking Resources
Open Source James Boyle - The Public Domain: Enclosing the Commons of the Mind
Open Source Rajiv S. Jhangiani & Robert Biswas-Diener - Open: The Philosophy and Practices that are Revolutionizing Education and Science
Open Source The Open Revolution: Rewriting the rules of the information age - Rufus Pollock

Financial Independence and Frugality

Fortunately, you can learn a lot about managing your money with open source/free simple investing explainers.

Topic Book
Little #96D7AF Books Personal Finance/Investing for Computer Scientists
Frugality JL Collins - Debt: The Unacceptable Burden
Financial Independence J.L. Collins - The Simple Path to Wealth
Index Funds Little #96D7AF Books/free-index-funds-books
Financial Independence Mr. Money Mustache
Frugality Mr. Money Mustache - Interview with a CEO: Ridiculous Student Loans vs. The Future of Education
Frugality Ryan Carson - Your college degree will cost you $2m
Frugality Ryan Carson - Educate Yourself Podcast - Mr. Money Mustache
Frugality ChooseFI - 074 - Ryan Carson - Learn to Code - Treehouse

Browser-based Programming

Don't have root access on your machine? Code in your browser! Great for high schoolers and beginners, as these sites usually have a community around them too!

Topic Book
p5.js Code! Programming for Beginners with p5.js - shiffman
JavaScript Khan Academy JS Tutorials - Part 1
JavaScript Khan Academy JS Tutorials - Part 2
JavaScript Khan Academy JS Tutorials - Hour of Code
JavaScript Khan Academy JS Tutorials - Programming Tutorials
JavaScript Khan Academy JS Tutorials - CS topics
JavaScript Khan Academy JS Tutorials - Nature of Code in JS
Snap! Snap!
Snap! Snap! mooc part 1
Snap! Snap! mooc part 2
Snap! Snap! tutorial
Snap! Snap! playlist
Snap! Snap! labs
Snap! Snap! lab solutions
Snap! Culturally Situated Design Tools
Scratch Scratch
Scratch Al Sweigart - Invent With Scratch
Scratch Al Sweigart - Invent With Scratch mooc
Scratch Make a Flappy Bird Game - freeCodeCamp
Scratch Michal Armoni and Moti Ben-Ari - Computer Science Concepts in Scratch
Scratch Harvey Mudd College - Programming in Scratch
Scratch Code Club - Book of Scratch
Scratch Raspberry Pi Foundation - Learn to Code With Scratch
HTML/CSS/JS freeCodeCamp
Perlego Scratch 2.0 Game Development HOTSHOT - Sergio van Pul, Jessica Chiang
Perlego Scratch Cookbook - Brandon Milonovich
Perlego Scratch 2.0 Beginner's Guide - Michael Badger

Cloud Programming

In case you find yourself without a laptop and have to learn to code at the public library or at school (and can't install software or programming languages), you can sign up for a free cloud IDE and have it host (and run) your code in the browser.

Topic Book
Cloud IDE Visual Studio Codespaces
Cloud IDE CodeTasty
JS Cloud IDE CodeSandBox
JS Cloud IDE StackBlitz
Cloud IDE Eclipse Che
Cloud Dev Env repl.it
Github Cloud IDE GitPod
Cloud Eclipse IDE Orion
Cloud IDE AWS Cloud9 (~$2 a month)
Cloud Docker Codenvy
Cloud IDE Theia

Raspberry Pi

Rapsberry Pis are the cheapest access to a linux box. Learning linux is essential if you want to be a successful computer scientist.

Topic Book
Raspberry Pi Gareth Halfacree - The Official Raspberry Pi Beginner's Guide
Raspberry Pi The Official Raspberry Pi Beginner's Book
Raspberry Pi Richard Smedley - Conquer the Command Line - The Raspberry Pi Terminal Guide
Raspberry Pi Linux Basics: The Command Line Interface (edX)
Raspberry Pi Introduction to Linux (edX)
Raspberry Pi All RPI MagPi Books
Raspberry Pi Introduction to the Command Line
Raspberry Pi Malcolm Maclean - Just Enough Linux
Raspberry Pi Mark Bates - Conquering the Command Line
Raspberry Pi Unix and Linux Visual Quickstart Guide - Deborah Ray, Eric Ray (Sample Excerpt)
(optional) CS 2043 Unix Tools & Scripting
(optional) 15-131 – Great Practical Ideas in CS
(optional) William Shotts - The Linux Command Line

Beginning Programming

Fun, accessible (visual or auditory) computer programming tutorials for absolute beginners.

Topic Book
Sonic Pi Sonic Pi Tutorial
Sonic Pi Sam Aaron - Code Music with Sonic Pi
Sonic Pi Introduction to Sonic Pi - Dave Conservatoire
Sonic Pi Davids Fiddle
Sonic Pi Getting Started With Sonic Pi - Raspberry Pi Foundation
Sonic Pi Creative programming workshop with Sonic Pi - mehackit
Processing Introduction to Processing - Raspberry Pi Foundation
Processing Hour of Code and other tutorials - Happy Coding
Processing Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction - shiffman
Processing The Nature of Code - Daniel Shiffman
Processing Ibid, playlist
p5.js Code! Programming with p5.js - shiffman
p5.js p5.js tutorials - JavaScript, HTML, and CSS - shiffman
p5.js Additional Topics - p5.js Tutorial - shiffman
p5.js Programming with Text - shiffman
p5.js Coding with Data - shiffman
p5.js p5.js Sound Tutorial - shiffman
p5.js Working with Data and APIs in JavaScript -shiffman
p5.js Topics of JavaScript/ES6 - shiffman
p5.js JavaScript Promises - shiffman
p5.js Array Functions in JavaScript - shiffman
p5.js Coding Challenges (p5.js) - shiffman
p5.js Git and GitHub for Poets - shiffman
p5.js ML5 Beginners Guide - shiffman
p5.js Working with Data and APIs - shiffman
Pyret Krishnamurthi, Lerner, and Gibbs Politz - Programming and Programming Languages
HTML/CSS/JS freeCodeCamp

Harvard's CS50 as an introduction to C, Python, and Javascript

A popular Open Courseware class that can get you started on more hard-core computer science studies and languages.

Topic Book
CS Crash Course - Computer Science
CS Khan Academy - AP Computer Science Principals
CS Khan Academy - Computer Science
CS CS50 - Harvard
CS How Computers Work - Ron White - v1 - v2
CS Learn Programming - Antti Salonen
C Simon Long - Learn to Code with C
C Simon Long - An Introduction to C & GUI Programming
C Banahan, Brady, & Doran - The C Book
C Beej's Guide to C Programming
C Mark Burgess and Ron Hale-Evans - The GNU C Programming Tutorial
Python Python for Everybody - Full Course with Dr. Chuck - freeCodeCamp
Python Python for Everybody - Charles R. Severance
Python Python for Everybody MOOC
Python Learn Python - Full Course for Beginners - freeCodeCamp
Python Practical Python Programming - @dabeaz
Python Automate the Boring Stuff - Al Sweigart
Python Allen B. Downey - How to Think Like a Computer Scientist
Python Python For You and Me - Kushal Das
Python Dive Into Python 3 - Mark Pilgrim
Python Udacity - Introduction to Python Programming
Python Hacking Secret Ciphers with Python - Al Sweigart
JavaScript Kyle Simpson - You Don't Know JS Series
JavaScript Marijn Haverbeke - Eloquent JavaScript
JavaScript Axel Rauschmayer - JavaScript for impatient programmers
JavaScript The JavaScript Way book

Further investigation of C, Python, and JS

You can go deeper into the CS50 topics.

Book Topic
C Jens Gustedt - Modern C
C C Programming: Modular Programming and Memory Management - Dartmouth
C C Programming Exercises, Practice, Solution
C Essential C - Nick Parlante
Python John DeNero - Composing Programs
Python Composing Programs Syllabus
Python Composing Programs YouTube
Python 15-112 Fundamentals of Programming and Computer Science
Python Introduction to Computer Science and Programming in Python
Python A Byte of Python - C.H. Swaroop
Python Introduction to Computational Thinking and Data Science
Python A Guide to Python's Magic Methods - Rafe Kettler
JavaScript Cody Lindley - JavaScript Enlightenment
JavaScript The Complete Guide to Modern JavaScript - Alberto Montalesi
JavaScript Nicholas C. Zakas - Understanding ECMAScript 6
JavaScript Axel Rauschmayer - Exploring ES6
JavaScript JavaScript Allongé - Reginald Braithwaite

Data Structures in C, Python, and JavaScript

You often learn data structures in your third semester of CS in college.

Topic Book
C Al Aho, Jeff Ullman - Foundations of Computer Science
Python Allen B. Downey - Think Complexity
Python Problem Solving with Algorithms and Data Structures using Python
JavaScript Data Structures in JavaScript
JavaScript trekhleb/javascript-algorithms
Data Structures OpenDSA

TypeScript as a segue into Java

Learn about typed JavaScript.

Topic Book
TypeScript TypeScript docs
TypeScript TypeScript Basics
TypeScript Want to learn TypeScript? Here’s our free 22-part course.
TypeScript TypeScript Accelerated
TypeScript Introduction to TypeScript 2
TypeScript The Complete TypeScript Programming Guide for Web Developers
TypeScript Derek Banas - TypeScript Tutorial
TypeScript TypeScript Tutorial
TypeScript TypeScript Succinctly
TypeScript TypeScript Deep Dive
TypeScript Clean Code concepts adapted for TypeScript
TypeScript TypeScript Essentials

Java Programming

Learn a strongly typed language.

Topic Book
Java freeCodeCamp - Intro to Java Programming - Course for Absolute Beginners
Java Yakov Fain - Java Programming for Kids
Java Robert Sedgewick, Kevin Wayne - Computer Science: An Interdisciplinary Approach
Java Computer Science: Programming with a Purpose - Coursera
Java Computer Science: Programming with a Purpose - Part 2: Computer Science: Algorithms, Theory, and Machines
Java Bradley Kjell - Introduction to Computer Science using Java
Java AP Computer Science A: Java Programming - Purdue (edX) - Part 1
Java Part 2
Java Part 3
Java Part 4
Java David J. Eck - Introduction to Programming Using Java
OOP Object-Oriented programming with Java, part I
OOP Part 2
Data Structure Allen B. Downey - Think Data Structures
Data Structures Berkeley website with videos
Data Structures CS 61B Archive Video
Data Structures Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer - freeCodeCamp
Data Structures Pat Morin - Open Data Structures

Algorithms

Algorithms are the tofu and potatos of computer science.

Topic Book
Algorithsm Algorithms - Jeff Erickson
Algorithms Robert Sedgewick - Algorithms
Algorithms Ibid, coursera part 1
Algorithms Ibid, part 2
Algorithms Ibid, Github
Algorithms The Algorithm Design Manual
Algorithms CSE 373 - Curriculum
Algorithms CSE 373 - Videos
Algorithms CSE 373 - OpenCourseWare
Algorithms Analysis of Algorithms
Algorithms Ibid, Coursera

Discrete Mathematics

Discrete Math is a fun subject, so I'm going to load a lot on you, and through repetition make you a discrete math master!

Topic Book
Proofs MTH 210: Communicating in Mathematics
Proofs Book of Proof - Richard Hammack
Proofs Introduction to Proofs - Jim Hefferon
Proofs Ted Sundstrom - Mathematical Reasoning: Writing and Proof
Discrete Discrete Mathematics (Coursera)
Discrete Introduction to Discrete Mathematics for Computer Science Specialization
Discrete CS202: Discrete Structures
Discrete Michiel Smid - Discrete Structures for Computer Science: Counting, Recursion, and Probability
Discrete Harris Kwong - A Spiral Workbook for Discrete Mathematics
Discrete Computer Science 70, 001 - Spring 2015
Discrete Discrete Mathematics - Arsdigita
Discrete Discrete Math - trevtutor - part 1
Discrete Ibid, Part 2
Discrete Graph Theory - Sarada Herke
Discrete Discrete Math Video Lectures - NCS CSC-226 Fall 2013
Discrete CSC224 Lectures 10-24
Discrete MIT -Mathematics for Computer Science (2015) (Free Textbook)
Discrete MIT - Mathematics for Computer Science (OCW)
Discrete Ibid, 2015 version
Discrete Gregory V. Bard - Discrete Structures in Mathematics: a Problem-Solving Approach
Discrete Edward A. Bender and S. Gill Williamson - Lectures in Discrete Mathematics
Discrete Notes on Discrete Mathematics - James Aspnes

Computer Architecture

Architecture focuses on the hardware, instead of the software for once! Learn how a computer works!

Topic Book
Digital Electronics Introduction to Digital Electronics - Neso Academy
Digital Electronics Electronics Computation Structures - Part 1: Digital Circuits - MIT
Logic forall x - P.D. Magnus
Logic Open Logic Text
Logic Symbolic Logic - Lewis Carroll
Architecture Code: The Hidden Language of Computer Hardware and Software - Charles Petzold
Architecture The essentials of computer organization and architecture - Null & Lobur
Architecture Computer Science 61C - Berkeley
Architecture Computer Architecture - Carnegie Mellon & slides
Architecture Computation Structures 2: Computer Architecture - MIT
Architecture Computer Architecture - Princeton
Assembly Assembly Language Tutorial - Derek Banas
Assembly Introduction to Computer Organization: ARM Assembly Language Using the Raspberry Pi - Robert G. Plantz
Assembly Jonathan Bartlett - Programming from the Ground Up
Assembly Raspberry PI Assembler - Roger Ibanez, William Pervin
Architecture NAND2Tetris
Architecture Ibid, textbook
Architecture Ibid, Coursera 1
Architecture Ibid, Coursera 2
(optional) Donald Knuth - Introduction to MMIX
(optional) Donald Knuth - MMIX
(optional) Donald Knuth - MMIXware : a RISC computer for the third millennium

HTML/CSS

Essential if you want to make webpages.

Topic Book
HTML Khan Academy HTML Tutorials - Part 1
HTML Ibid, Part 2
HTML Ibid, Part 3
HTML HTML Beginner Tutorial
HTML/CSS How to Code in HTML5 and CSS3 - Damian Wielgosik
HTML/CSS A Free HTML & CSS Tutorial - MarkSheet.io
CSS Learn CSS Layout
HTML/CSS A beginner's guide to HTML&CSS - Shay Howe
HTML/CSS Learn to Code Advanced HTML & CSS - Shay Howe
HTML Dive Into HTML5 - Mark Pilgrim
HTML Introduction To Responsive Web Design - HTML & CSS Tutorial - freeCodeCamp

Databases

Essential if you want to engineer software or websites.

Topic Book
SQL Khan Academy SQL Tutorials
SQL Introduction to SQL - Launch School
SQL SQL Tutorial - Full course for beginners - freeCodeCamp
Databases Database Design - Adrienne Watt
Databases CS403: Introduction to Modern Database Systems
Databases CS410: Advanced Databases
Databases Stanford Online Databases
Databases Computer Science 186, Spring 2015 - UC Berkeley
Databases Readings in Database Systems
Databases Database Systems - Jens Dittrich
Databases Beginning database design : from novice to professional - Churcher, Clare
Postgres PostgreSQL Tutorial - Part 1
Postgres Ibid, part 2
Postgres PostgreSQL Tutorial
Postgres Learn PostgreSQL Tutorial - Full Course for Beginners - freeCodeCamp
Postgres The Internals of PostgreSQL for database administrators and system developers
Databases 15-445 Database Systems - CMU & Class Schedule
C Let's Build a Simple Database

College Mathematics

Brush up on college math.

Topic Book
Math Khan Academy - Math
Calculus Calculus I - OpenStax
Calculus Calculus II - OpenStax
Calculus Calculus III - OpenStax
Stats Introductory Statistics - OpenStax
Stats Probability and Statistics
Pure Math An Infinite Descent into Pure Mathematics
Pure Math Concrete Mathematics - Donald Knuth
Pure Math CSE 547 - Discrete Mathematics - Curriculum
Pure Math CSE 547 - Video Lectures
CS 15-251 Great Theoretical Ideas in Computer Science - YouTube Playlist
CS 15-251 Great Ideas in Theoretical Computer Science - Textbook & Notes
CS Probability and Computing Lecture Notes
(optional) 96D7AF/undergraduate-math-curriculum

Web Development

Learn some backend web development!

Topic Book
Web freeCodeCamp
Web The Odin Project
Node The definitive Node.js handbook - Flavio Copes
Node freeCodeCamp - Learn Node.js
Node Mixu's Node book
Node Node.js Succinctly - Emanuele DelBono
Node Node.js Guides
Express Express.js & Node.js Course for Beginners - freeCodeCamp
Express ExpressJS - TutorialsPoint India
Express Express Tutorial: The Local Library website - MDN
Express [Express.js Tutorial: Build RESTful APIs with Node and Express
Express ExpressJS Tutorial - TutorialsPoint
Express Learn Express - Codecademy
Webpack Learn Webpack - Full Tutorial for Beginners - freeCodeCamp
MERN Stack The Little MongoDB Book - Karl Seguin
MERN Stack Tutorial: Intro to React
MERN Stack Software Development Capstone Project - The University of British Columbia
MERN Stack Server-side Development with NodeJS, Express and MongoDB - The Hong Kong University of Science and Technology
MERN Learn React.js - Full Course for Beginners - Tutorial 2019 - freeCodeCamp
MERN Intro to React
MERN Tutorial: Intro to React
MERN Learn the MERN Stack - Full Tutorial (MongoDB, Express, React, Node.js) - freeCodeCamp
React The Road to learn React - Robin Wieruch
React React.js for the Visual Learner - Mike Mangialardi
React React Fundamentals - Full Course for Beginners - freeCodeCamp
React Full Stack React & Firebase Tutorial - Build a social media app - freeCodeCamp
React React Tutorial: Build an e-commerce site from scratch using React and Netlify - freeCodeCamp
React In-Depth React Tutorial: Build a Hotel Reservation Site (with Contentful and Netlify) - freeCodeCamp
React Build a Chat App - React Tutorial Course - freeCodeCamp
React How to Build Tetris in React - GameDev Tutorial (with React Hooks!) - freeCodeCamp
React React Project Tutorial - Game of Life - freeCodeCamp
React React Hooks Tutorial - A Crash Course on Styled Components, JSX, React Router, and HOC - freeCodeCamp
React Intermediate React and Firebase Tutorial - Build an Evernote Clone - freeCodeCamp
React Intermediate React Tutorial - Todoist Clone (with Firebase, Custom Hooks, SCSS, React Testing) - freeCodeCamp
Redux REACT JS TUTORIAL - learncode.academy
Redux The Soundcloud Client in React Redux - Robin Wieruch
Redux The Complete Redux Book - Ilya Gelman, Boris Dinkevich
Gatsby The Great Gatsby Bootcamp - Full Gatsby.js Tutorial Course - freeCodeCamp
Gatsby Gatsby - Full Tutorial for Beginners
GraphQL Fullstack GraphQL
GraphQL GraphQL Full Course - Novice to Expert - freeCodeCamp
GraphQL GraphQL Server Intermediate Tutorial - Boilerplate with Typescript, PostgreSQL, and Redis - freeCodeCamp

Introduction to Functional Programming

It's nerdy, it's fun, it's functional programming. More and more OOP languages are heading towards functional paradigms.

Topic Book
Python Functional Programming in Python - David Mertz
Pyret Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz - Programming and Programming Languages
Racket (optional) How to Code: Simple Data
Racket (optional) How to Code: Complex Data
Racket (optional) Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi- How to Design Programs
JS Mostly adequate guide to FP (in javascript)
JS getify - Functional-Light JavaScript

Networking

Learn about connecting computers together and sending data back and forth.

Topic Book
Networking An Introduction to Computer Networks - Peter L Dordal
Networking CS402: Computer Communications and Networks
Networking Computer Networking : Principles, Protocols and Practice - Olivier Bonaventure & 2nd source
Networking Introduction to Computer Networking - Stanford Online
Networking Introduction to Data Communications (2013) - Steven Gordon
Networking Larry Peterson and Bruce Davie - Computer Networks: A Systems Approach
Networking Ibid, solution manual
Networking Ibid, Github
Networking Wireshark Labs
Networking The TCP/IP Guide - Charles Kozierok

Machine Learning

Learn about neural networks.

Topic Book
ML How Deep Neural Networks Work - Full Course for Beginners - freeCodeCamp
ML Neural Networks and Machine Learning - shiffman
ML Neural Networks - 3brown1blue
ML Hal Daumé III - A Course in Machine Learning
ML A First Encounter with Machine Learning - Max Welling
ML Building Machine Learning Systems with Python - Willi Richert, Luis Pedro Coelho - Source Code
ML CSD474 - Machine Learning SP17
ML Machine Learning - Stanford University
ML mathematialmonk - Machine Learning (playlist)
ML TensorFlow 2.0 Full Tutorial - Python Neural Networks for Beginners - freeCodeCamp
ML Tensorflow 2.0 - Learn
(optional) mathematicalmonk - Machine Learning
(optional) Math Background for Machine Learning
(optional) A Brief Introduction to Machine Learning for Engineers - Osvaldo Simeone
(optional) More Machine Learning videos for those interested

Linear Algebra

Great for data analysis and machine learning.

Topic Book
Linear Algebra Essence of linear algebra - 3Blue1Brown
Linear Algebra Linear Algebra - Khan Academy
Linear Algebra Mathematics for Machine Learning: Linear Algebra
Linear Algebra Linear Algebra: Foundations to Frontiers - The University of Texas at Austin
Linear Algebra Linear Algebra - Jimm Hefferon
Linear Algebra Linear Algebra - As an Introduction to Abstract Mathematics
Linear Algebra Linear Algebra - MIT
Linear Algebra CS53 - Linear Algebra

Security

Need to make your computer software safe and secure.

Topic Book
Cryptography The Cryptoparty Handbook
Cryptography Crypto 101 - Laurens Van Houtven
Cryptography the cryptopals crypto challenges
Cryptography Cryptography - Stanford- Part 1
Cryptography Ibid, Part 2
Cryptography Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone - Handbook of Applied Cryptography
Cryptography Introduction to Cryptography by Christof Paar
Crytpography A Graduate Course in Applied Cryptography - Dan Boneh, Victor Shoup
Cryptography Practical Cryptography for Developers - Svetlin Nakov
Sec Professor Messer - Security+ Playlist
Sec Introduction to IT Security - Steven Gordon
Sec Security Engineering - Ross Anderson
Sec Security and Cryptography 2012 - Thammasat University
Sec Full Ethical Hacking Course - Network Penetration Testing for Beginners (2019) - freeCodeCamp
Sec Linux for Ethical Hackers (Kali Linux Tutorial) - freeCodeCamp
Sec Stanford - CS 253 - Web Security - Fall 2019
Sec (optional) More Security videos for those interested

Software Design/Architecture

Learn about how to organize your programming business for highest efficiency.

Topic Book
Software Design Software Architecture & Design - Georgia Tech
Software Design Software Construction in Java - MIT - Part 1
Software Design Ibid, Part 2
Software Design CS3: Design in Computing - UNSW
Python Clean Architectures in Python - Leonardo Giordani

Systems Programming

How to engineer computer systems.

Topic Book
Systems Computation Structures - MIT - part 1
Systems Ibid, Part 2
Systems Ibid, Part 3
Systems Computer System Engineering - MIT
Systems The Hardware/Software Interface Class - Luis Ceze and Gaetano Borriello
Systems 15-213 Intro to Computer Systems - CMU
Systems Ibid, Video Lectures

Operating Systems

How a computer runs its applications.

Topic Book
OS Computer Science from the Bottom Up
OS Think OS
OS Operating Systems: Three Easy Pieces - Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau
OS The little book about OS development
OS CS 162 Operating Systems, Spring 2015 - Berkeley
OS ops-class.org
OS CS401: Operating Systems - Saylor.org
OS Learning operating system development using Linux kernel and Raspberry Pi - Sergey Matyukevich
OS Building an Operating System for the Raspberry Pi
OS Max Hailperin - Operating Systems and Middleware: Supporting Controlled Interaction

Sociology of Programming

What do programmer do? Who are programmers?

Topic Book
Sociology “Beards, Sandals, and Other Signs of Rugged Individualism”: Masculine Culture within the Computing Professions - Nathan Ensmenger
Sociology The computer boys take over: computers, programmers, and the politiProgrammers of technical expertise - Ensmenger, Nathan
Sociology Recoding gender : women's changing participation in computing - Abbate, Janet
Sociology Unlocking the clubhouse: women in computing - Margolis, Jane; Fisher, Allan & v2
Sociology Stuck in the shallow end : education, race, and computing - Margolis, Jane

Functional Programming (optional)

Topic Book
Haskell Learn Haskell Fast and Hard - Yann Esposito
Haskell Learn You A Haskell For Great Good - Miran Lipovaca
Haskell Real World Haskell - Bryan O'Sullivan, Don Stewart, John Goerzen
Haskell Yet Another Haskell Tutorial - Hal Daume III
Haskell Introduction to Functional Programming - Delft University of Technology
Haskell Functional Programming in Haskell - IIT Madras
OCaml Allen Downey and Nicholas Monje - How to Think Like a (Functional) Programmer
OCaml CS3110 - Cornell
OCaml Ibid, Textbook
OCaml (optional) Real World OCaml
OCaml (optional) Functional Data Structures

Programming Languages

What makes you able to program code, exactly?

Topic Book
SML Programming Languages: Standard ML - 1 -> 8 - RU Computer Science
SML Programming in Standard ML '97: An On-line Tutorial - Stephen Gilmore
SML Introduction to Standard ML - Atsushi Ohori
SML Programming in Standard ML - Robert Harper
SML Effective ML
SML The Little MLer
SML PL Homework
PL CSE341: Programming Languages, Spring 2016
PL Practical Foundations for Programming Languages - Robert Harper
PL 15-312/15-652 Foundations of Programming Languages - Course Notes

Django

Python backend web server.

Topic Book
Flask Learn Flask for Python - Full Tutorial - freeCodeCamp
Flask Web Programming with Flask - Intro to Computer Science - Harvard's CS50 (2018)
Flask Full stack Python Flask tutorial - Build a social network - freeCodeCamp
Django Python Django Web Framework - Full Course for Beginners -freeCodeCamp
Django How to Build an E-commerce Website with Django and Python - freeCodeCamp
Django Python Django Framework Full Course - Learning with the Docs
Django Weather App - Django Tutorial (Using Python Requests) - freeCodeCamp
Django Django Rest Framework & React Tutorial: Learning Management System (Blackboard / Moodle Clone) - freeCodeCamp
Django Beginning Django Tutorial
Django Mastering Django: Table of Contents (free chapters)

Compilers

What makes your higher level code able to run on processors made up of circuits?

Topic Book
Compilers Compilers - Stanford
Compilers Compiler Design: Theory, Tools, and Examples - Seth D. Bergmann
Compilers Compiler Building Tutorial - Jack W. Crenshaw
Compilers CSE 131 - Compiler
Compilers Ibid, Lectures

Rust (optional)

Popular systems programming language.

Topic Book
Rust [Rust Tutorial
Rust [Rust Crash Course
Rust Jim Blandy - Why Rust?
Rust Rust by Example
Rust Steve Klabnik & Carol Nichols - The Rust Programming Language
Rust The Rust Programming Language - Nicholas Matsakis, Aaron Turon
Rust The Rustonomicon
Rust Implementing TCP in Rust

Computation

The theory and math behind computing as a science.

Topic Book
Computability Introduction to the Theory of Computation - ArsDigita
Computability Foundations of Computation - Carol Critchlow, David Eck
Computability Theory of Computation - UCDavis
Computability Introduction to Theory of Computation - Anil Maheshwari and Michiel Smid
Computability Models of Computation: Exploring the Power of Computing - John E. Savage
Computability Computational Complexity: A Modern Approach - Sanjeev Arora and Boaz Barak
Theory Delftse Foundations of Computation - Stefan Hugtenburg
Theory Theory Lectures (and all other videos) - Easy Theory
Theory Solutions for EVERY GATE Theory of Computation Question - Easy Theory

AI

Topic Book
AI The Quest for Artificial Intelligence: A History of Ideas and Achievements - Nils J. Nilsson
AI CS188 Intro to AI - Berkeley
AI Ibid, Video Playlist
AI Artificial Intelligence - Ravensburg-Weingarten University
AI CS405: Artificial Intelligence - Saylor
AI CS408: Advanced Artificial Intelligence - Saylor
AI Artificial Intelligence: Foundations of Computational Agents, 2nd Edition
AI Develop an AI to play Connect Four - Python Tutorial - freeCodeCamp
Lisp Paradigms of Artificial Intelligence Programming - Peter Norvig

Go (optional)

Topic Book
Go Learn Go Programming - Golang Tutorial for Beginners - freeCodeCamp
Go Go Bootcamp: Everything You Need to Know to Get Started with Go - Matt Aimonetti
Go An Introduction to Programming in Go - Caleb Doxsey
Go The Little Go Book - Karl Seguin
Go The Way To Go: A Thorough Introduction To The Go Programming Language - Ivo Balbaert
Go Go Programming - John P. Baugh
Go Go by Example - Mark McGranaghan
Go Building Web Apps with Go - Jeremy Saenz
Go Web apps in Go, the anti textbook - Suraj Patil

Robotics (optional)

How to integrate computers with machines.

Topic Book
Robotics Modern Robotics: Mechanics, Planning, and Control Specialization - Northwestern
Robotics Ibid, Curriculum
Robotics Elements of Robotics - Mordechai Ben-Ari and Francesco Mondada

Software Engineering

How do companies get coding projects done successfully?

Topic Book
SE Software Engineering: Introduction - The University of British Columbia
SE Agile Planning: From Ideas to Story Cards
SE CS302: Software Engineering - Saylor
SE Guide to the Software Engineering Body of Knowledge - IEEE
SE Computer Science 169 - Berkeley

Natural Language Processing

Have a computer understand human language.

Topic Book
NumPy Numpy beginner tutorial
NumPy Python NumPy Tutorial for Beginners - freeCodeCamp
NumPy An introduction to Numpy and Scipy
NumPy Numpy Tutorial
NumPy 100 numpy exercises
NumPy SciPy Lectures
PyTorch PyTorch - Tutorials
PyTorch Applied Deep Learning with PyTorch - Full Course
PyTorch Deep Reinforcement Learning in Python Tutorial - A Course on How to Implement Deep Learning Papers - freeCodeCamp
NLP Reference Texts for CS224n
NLP CS224n: Natural Language Processing with Deep Learning
NLP Ibid, class notes
NLP Natural Language Processing: Columbia
NLP Further videos for those interested (ML based Natural Language Processing and Computer Vision OpenCourseWare)

Statistics

Topic Book
Stats Statistics - A Full University Course on Data Science Basics - freeCodeCamp
Stats Statistics and Probability: Your first steps on the road to data science - freeCodeCamp
Stats OpenStax - Statistics
Stats Stanford - Probability and Statistics
Stats Probability and Statistics - UC Berkeley
Stats Stanford - Statistical Learning
Stats mathematicalmonk - Probability (playlist)
Stats Statistics and Probability: Harvard
Stats Computational Statistics with Python - Cliburn Chan
Stats Probabilistic Systems Analysis and Applied Probability: MIT
Stats Statistical Inference: Johns Hopkins
Stats Data Analysis and Statistical Inference: Duke
Stats Probabilistic Graphical Models via Coursera
Stats Allen B. Downey - Think Stats
Stats Allen B. Downey - Think Bayes
Stats Probability and Statistics
Stats Probability and Computing Lecture Notes
Stats Bayesian Statistics: Techniques and Models
Stats Introduction to Probability, Statistics, and Random Processes

Data Science

Topic Book
Data Science freeCodeCamp - Free 6-Hour Data Science Course for Beginners
Data Science Intro to Data Science - Crash Course for Beginners - freeCodeCamp
Data Science CSE 519 - The Data Science Design Manual - Steven Skiena
Data Science Ibid, Curriculum
Data Science Ibid, Videos
Data Mining Mining of Massive Datasets - Jure Leskovec, Anand Rajaraman, Jeff Ullman
Data Mining CS246 - Mining Massive Data Sets - Stanford
Data Mining Ibid, Videos
Data Mining Ibid, Coursera Videos
Data Mining Ibid, Lagunitas
Data Science Applied Data Science with Python
Data Science Data Science at Scale Specialization - Coursera
Data Science Data Science Essentials via edX
Data Science Introduction to Python for Data Science via edX
Data Science Process Mining: Data science in Action via Coursera
Analytics Introduction to Big Data via Coursera
Analytics Managing Data Analysis via Coursera
Analytics Exploratory Data Analysis via Coursera
Analytics Managing Big Data with MySQL via Coursera
Analytics Big Data Analysis with Apache Spark via edX
Analytics Big Data Integration and Processing via Coursera
Analytics Big Data: from Data to Decisions via FutureLearn
Analytics Big Data Modeling and Management Systems via Coursera
Analytics Graph Analytics for Big Data via Coursera
Data Getting and Cleaning Data via Coursera
Data Relational Database Support for Data Warehouses via Coursera
Data Pattern Discovery in Data Mining via Coursera
Data Framework for Data Collection and Analysis via Coursera
Data Data Manipulation at Scale: Systems and Algorithms via Coursera
Data Dealing With Missing Data via Coursera
Data Data Warehouse Concepts, Design, and Data Integration via Coursera
Data Data Visualization via Coursera
Data Research Data Management and Sharing
Data Communicating Data Science Results
Data Reproducible Research

Computer Vision

Topic Book
CV Jan Erik Solem - Programming Computer Vision with Python
CV Simon J.D. Prince - Computer Vision: Models, Learning, and Inference
CV Stanford University CS231n, Spring 2017
CV Image Processing and Computer Vision OpenCourseWare

Information Theory

Topic Book
Info Theory Khan Academy - Information Theory
Info Theory Introduction To Information Theory - Masud Mansuripur
Info Theory mathematicalmonk - Information Theory (playlist)

Scientific Computing

Topic Book
SciComp Coursera - Julia Scientific Programming
SciComp Introduction To High Performance Scientific Computing
SciComp Coursera - High Performance Scientific Computing (University of Washington)
SciComp https://github.com/numerical-mooc/numerical-mooc
SciComp Computers, Waves, Simulations: A Practical Introduction to Numerical Methods using Python
SciComp Introduction to numerical analysis
SciComp Scientific Programming and Computer Architecture - Divakar Viswanath
SciComp Coursera Scientific Computing (University of Washington)
SciComp Introduction To Numerical Analysis And Scientific Computing
SciComp Numerical Recipes The Art Of Scientific Computing Third Edition
SciComp Fundamentals Of Scientific Computing
SciComp Numerical Methods In Scientific Computing Volume 1
SciComp Introduction To Scientific Computing And Data Analysis

Further Studies

I hope by now you have a hunch of how to make your own curriculum for your independent, online, free studies. I have compiled all the sources I used in the creation of Little #96D7AF Books. Teach yourself how to teach yourself computer science!

Computer Science

Machine Learning

Web Development

Cheap Accredited Computer Science Degrees

Get a junior dev job (without a degree) as quickly as possible by unschooling the above curriculum for free, then use your tuition reimbursement job benefit to earn these degrees at zero cost to you while you're working! Have a high savings rate (50-70%) and invest in index funds while working and studying as a programmer to reach financial independence in your thirities and retire early. It's kind of easy if you stay frugal as a student and as a employed programmer.


This Z-Degree is an open source educational resources and public domain. You can use it and remix is however you wish! You can also contribute your own discoveries to it by making a Pull Request on Github. Contributions are appreciated, including just making an Issue on Github with the book you want added. If you need a guide to Github, check this out.