<Back to Z-Degrees

K-12 Computer Science Curriculum

So you're thinking of holmschooling

If you are a K-12 student interested in learning how to code, I suggest first trying out the books at your public library. The public library computer science books are Dewey Decimal system 0-100. Perhaps your public library has an online Lynda subscription for you (most do). Lynda.com teaches many programming languages starting at a basic level. I suggest Python or JavaScript. If you really want to become an employable programmer, get your parents to buy you a teamtreehouse.com subscription so that you graduate high school knowing how to program. You can probably teach yourself a lot of stuff with Lynda too. I suggest getting a Raspberry Pi if you can, so that you can practice with linux (a highly employable skill).

Unschooling

Author Book
Grace Llewellyn The Teenage Liberation Handbook - How to quit school and get a real life and education
Seth Godin Stop Stealing Dreams

Personal Finance

If you teach yourself how to be a full stack developer using Treehouse or Lynda while you're a high schooler, you could possibly find a job at 18 instead of going $60,000 in debt going to university for four years. With no debt, you could work at max out your 401k and IRA for $25,000 a year ($19k per year limit in your 401k, $6k per year limit for your traditional IRA at Vanguard) and invest in index funds (S&P500 index fund or Total Stock Market index fund) from age 18-22. Having $100,000 in retirement at age 22 ($25k * 4) would compound over 38 years (assuming 8% interest) to be worth $1,862,527 by the age of 60. That's the opportunity cost of college if you taught yourself to program in high school instead of college. Assuming a 4% withdrawal rate of your retirement account at age 60, just working as a programmer from age 18-22 and maxing out your 401k and IRA would permit for a $74,501 a year salary when you retire ($1862527 * .04). That's a healthy retirement, in my opinion. Obviously you have to account for inflation, but that's not bad for just four years of work. That's the magic of compound interest multiplied by long lengths of time invested in index funds. You could even, I daresay, work longer and sock more money into retirement, or start saving in a post-tax account (also invested in index funds at Vanguard) and accumulate enough to cover your expenses per year to become financially independent and retire early if you live frugally and save more than 50% of your take-home pay. Even if you go to college, maxing out your 401k and IRA from age 22-32 is another great way to ensure a comfortable retirement: $250,000 (10 years * $25k) compounding at 8% for 28 years (age 32-60) is $3,374,382 at age 60. That's probably more than you need, which means you can switch to focusing on saving for a post-tax account so that you can fund an early retirement until you hit 60 and can withdrawal from your 401k/IRA. Having an above-50% savings rate is easy if you live frugally and don't have college debt.

Topic Book
Financial Independence JL Collins - The Simple Path to Wealth (Stock Series)
FIRE Mr. Money Mustache
Index Funds Holm School/free-index-funds-books

OER

Open Educational Resources are books that have an open source license. That means that you can read them free online. Because computer scientists basically invented open source, computer science books are frequently open sourced. That's a good thing, it means there are ample opportunities to learn and study computer science for free online. Know what type of open educational resources are out there to discover is a good way to ensure that there are no limitations to your quest for knowledge. Money is less of a hindrance. By relying on open education instead of having to purchase expensive textbooks, you'll save money while still learning the material just as well as with a paid book. Many computer scientists are happy to open source their books in the hope that it fuels an education for people without income, so as a K-12 student, studying open educational resources for a little while so that you can find them online through google is a good way to protect your ability to learn computer science for the foreseeable future.

Topic Book
OER EbookFoundation/free-programming-books/
OER OER Wikipedia entry

Python

Now that we're aware of the benefits of a computer science job, let's start the journey of learning how to program!

Topic Book
Python Computer Science Academy - CMU
Python Al Sweigert - Automate the Boring Stuff
Python Al Sweigert - Cracking Codes with Python
Python Al Sweigert - Invent Your Own Computer Games with Python, 4th Edition
Python Al Sweigert - Making Games with Python & Pygame
Python A Byte of Python
Python Allen B. Downey - How to Think Like a Computer Scientist

Scratch

Topic Book
Scratch Al Sweigert - Scratch Programming Playground & mooc
Scratch Michal Armoni and Moti Ben-Ari - Computer Science Concepts in Scratch
Scratch CSFirst

Snap!

Topic Book
Snap! CS10 - Beauty & Joy of Computer - Part 1 & Part 2
Snap! Tutorial
Snap! Labs & Solutions
Snap! Culturally Situated Design Tools

JavaScript

Topic Book
p5.js Dan Shiffman - Code! Programming with p5.js for Beginners
p5.js Dan Shiffman - Programming With Text
HTML/CSS/JS Khan Academy - Programming
p5.js Dan Shiffman - Coding Challenges (p5.js)
JS Marijn Haverbeke - Eloquent JavaScript

TypeScript as a segue into Java

Topic Book
TypeScript Want to learn TypeScript? Here’s our free 22-part course.

Java

Topic Book
Processing Dan Shiffman - Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction
Processing Dan Shiffman - The Nature of Code: Simulating Natural Systems with Processing & Free Book
Java Yakov Fain - Java Programming for Kids
Java Bradley Kjell - Introduction to Computer Science using Java
Java AP Computer Science A: Java Programming - Purdue (edX) - Part 1 & part 2 & part 3 & part 4

Computer Science

Topic Book
CS Crash Course - Computer Science
CS Khan Academy - Computer Science
p5.js Dan Shiffman - Neural Networks and Machine Learning

Web Development

Topic Book
HTML/CSS/JS freeCodeCamp.org

Functional Programming

Now we're cooking with gas!

Topic Book
Pyret Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz - Programming and Programming Languages
Racket Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi - How to Design Programs

Continuing on

At this point you're reading college level beginning programming textbooks. You can probably move on to a common college curriculum, starting at the very beginning and reading some more complicated OER texts on Python/JS/Java to get a more thorough hold on them. Each of those three languages can be used for backend programming languages for web development (Django/Flask, Node.js, and Spring).

Additional Resources

Link
Holm School
You can get a B.S. in Computer Science online for only $4000 total - University of the People
You can get a masters in Computer Science for only $7000 total - Georgia Tech OMSCS Degree

This Z-Degree of open source educational resources is 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