So You Wanna Code Course Outline
Course areas
PROG - Programming
PRAG - Pragmatics
DB - Databases
SOC - Social stuff
PROJ - Project Management
NERD - Nerd culture and support stuff
Program Sequence
Preparation
Semester 1
Semester 2
PRAG 102
PROG 102
PROG 103 or 104 or 105 (pick 1 or 2)
SOC 102
NERD 102
Semester 3
PRAG 201
PROJ 201 (elective)
PROG 201 or 202 (elective)
DB 201
DB 202 (elective)
TODO: Probably define specific “tracks” for Web Dev and Data Science.
Preparation
PROG 001: Preparation for Noobs / Summer Reading
Time: 3 days
Read through this whole Course Outline
Write an Expectations Essay and send it to Andrew
Read:
Code by Charles Petzold
Coders by Clive Thompson
Optional: Microserfs by Douglas Coupland
Take the HarvardX “CS50’s Understanding Technology” course
Join the “Lovelace Cafe” Discord
Email Andrew for an invite
Get an okay Mac or Windows computer
Or, if you have a crappy computer and need to save money, wait 3 months on this; you won’t really need any power until Semester 2. Talk to Andrew if unsure.
Semester 1
PRAG 101: Setting up as a Dev
Read my Practical OpSec page and follow its advice
Set up your online identity
Pick a handle
Get a domain
Create accounts on dev-related services
Install dev stuff on your computer and devices
Set up your learning stream
Set up your dev meatspace
See the PRAG-101 page for details.
PROG 101: Beginning Programming
Time: 8 weeks
Look in to online programming courses
Take a look at the HarvardX CS50 programs on edX so you can see what learning tracks are available
Take an “Intro to Programming” online course.
Read The Little Schemer and work all the exercises
Read through Introducing Python and work all the exercises
Read The Pragmatic Programmer topics 1-22
At the end of the class, do a couple dozen of the HackerRank Python challenges
SOC 101
TODO: Come up with some material on:
Isms in the tech industry
Sexism, ageism, racism, and how this will affect you
Computer ethics
Social justice issues in tech
This is an issue because Andrew is totally unqualified to teach this stuff, or even pick out classes or a reading curriculum that would.
NERD 101
Time: 2 weeks
Read some:
Watch:
Read:
William Gibson, Neuromancer
Ursula K. LeGuin, A Wizard of EarthSea
Enrichment:
Play Rez Infinite (PlayStation game)
Watch:
The Matrix (1999 movie)
Ghost in the Shell (the original 1995 anime film)
Read:
Vernor Vinge, A Fire Upon the Deep
Semester 2
Time: 3 weeks
Set up SSH keys
Set up some local VMs
Make a Mac VM
Install basic dev tools and Homebrew on it
Sync your Google Cloud drive to it
Make a Linux VM
Use the latest Ubuntu LTS
Set up a cloud VM
Provision a Linux VM on GCP
Log in to it remotely with SSH
TODO: Some stuff on learning the Unix command line
Read The Pragmatic Programmer topics 23-32 and 37-44
Start doing HackerRank
Set up a HackerRank account
Do a few challenges from each of the languages learned in PROG 101
Set up a time tracking system
Use an actual time tracking tool
Learn Markdown and Jekyll
Create a GitHub Pages site using them
Research computer ergonomics
Consider your posture, typing habits, and break time practices
Learn about dev conferences
Have a look at PyCon, PyGotham, !!Con, Apache conferences, WWDC, and so on
PROG 102: Next Steps
Read The Practice of Programming
Read Database In Depth
Read “No Silver Bullet” by Fred Brooks
PROG 103: Web Development
Time: 6 weeks
PROG 104: Data Science and Analysis
Time: 6 weeks
PROG 105: Cloud Stuff, Sysadminning, and DevOps
TODO: Find some material on GCP training and certification
SOC 102
The FLOSS movement
The Free Software movement
The Open Source movement
Read:
NERD 102
Learn about mechanical keyboards
Get a programming t-shirt
Semester 3
PRAG 201: The Job Search
Update your resume
And post it on your website
Join Triplebyte , learn about their process, and prepare to do their interview
Join TopCoder
Update your “professional” profiles
Read:
PROG 201: Getting Lower Level with Java
Read O’Reilly’s Learning Java and work all the exercises
TODO: Find a Java programming MOOC course
Read 21st Century C and work all the exercises
Start with the tutorial from the Appendix!
Do as many of the HackerRank C challenges as you can
This won’t be all of them, by any means. They get tough!
PROJ 201: Intro to Project Management
Read The Mythical Man-Month
Read The Manager’s Path
Get a PMI CAPM certification
Take a CAPM preparation course
Take the CAPM certification exam
DB 201: Using SQL
Learn how to write basic SQL
SQL queries
Basic schema design
TODO: Pick book/course/curriculum
Learn basic SQL Server use and administration
Take these Stanford Online Databases courses:
Get a Microsoft SQL certification
TODO: Specify exactly which cert(s)
DB 202: Relational Theory
Prereq: DB 201
Read An Introduction to Database Systems
And work the exercises
If you’re short on time, just do the Relational Algebra part, and skip Relational Calculus
Take these Stanford Online Databases courses: