Time to do Something New

JP Miller
3 min readJan 18, 2018

Roughly four years ago I started bringing a video recorder to work with me. In moments of privacy I’d record messages to myself. The gist of my monologues: “If you want something you’ve never had then you’ve got to do something you’ve never done.”

Me as a Fresh Udacity Grad

I was delivering auto parts around my state. A mindless, often thankless job. Naturally curious, I found myself languishing and knew a change had to take place. It was about that time that I found Udacity’s Front-end Nanodegree, enrolled in the first cohort and completed it eight months later. Before the end of 2015 I connected with another developer and we began co-freelancing together. It turned into Skragglies, a web design and digital marketing agency with a physical office and clients that loved our work.

It was great, but I desired to take part in more challenging projects. The old mantra began to play in my mind. “If you want something you’ve never had then you’ve got to do something you’ve never done.”

So it’s time to go full circle and teach myself the principles of computer science. I hope this will give me a stronger foundation of software engineering and pave the way to more challenging projects that promise to change the way businesses and customers interact with one another.

So here’s the plan. Take an accelerated pace through what I’d expect to learn in a BSCS program and then enroll in Georgia Tech’s OMS CS program. These are the courses I’m putting myself through. I’ll use Class Central to help me find the courses. Note that this list is greatly inspired by aGupieWare. (Thanks for putting this resource together).

Introduction to Computer Science MIT
Programming Abstraction Stanford
Discrete Mathematics ArsDigita
Principles of Computing Rice
Introduction to Data Structures and Algorithms UNSW
Theory of Computation UC Davis
Efficient Algorithms and Intractable Problems Berkeley
Data Structures Berkeley
Linear Algebra Through C.S. Applications Brown
OS and Systems Programming Berkeley
Introduction to Linux EdX
Programming Paradigms Standford
Object Oriented Programming MIT
Functional Programming MIT
Software Engineering Berkeley
Elements of Software Construction MIT
Computer Architecture Carnegie Melon
Introduction to Databases Stanford
Fundamentals of Computer Networks Manhattan College
Introduction to Cryptography Ruhr University
Introduction to IT Security Thummasat University
Introduction to AI Berkeley

Advanced Data Structures MIT
Analytic Combinators Princeton
Computer System Engineering MIT
The Hardware/Software Interface UW
Design in Computing UNSW
Principles of Programming Languages IIT
Compilers Standford
Cryptography 1 Standford
Cryptography 2 Standford
Bilinear Pairings in Cryptography BIU
Machine Learning Stanford
Statistics and Probability Harvard
Probabilistic Systems Analysis and Applied Probability MIT
Statistical Inference John Hopkins

So that’s the start of it. I’ve also rented a small library from my local inter-library loan system.

My Small Library

These titles include:
Concrete Mathematics
Gray Hat Hacking
Head First Python
Artificial Intelligence
Natural Computing
Becoming a Better Programmer
Python Cookbook
Algorithms to Live By
Database Design for Mere Mortals
Ada’s Algorithm
Algoirthms
Algorithms for Dummies
The Developer’s Code
Scrum in Action
Srum: The Art of Doing Twice the Work in Half the Time
Sam’s Teach Yourself Unix in 24 Hours
Encyclopedia of Computer Science
The Art of Computer Programming

and for pleasure I’m reading Cryptonomicon by Neal Stephenson

I’ll keep a weekly update of my progress.

--

--