The Self-Taught Degree¶
I'm Tim MacKay, a self-taught software developer committed to expanding my knowledge. I've opted for a self-directed learning path over a traditional degree, aiming for a mix of practical software skills, computer science fundamentals, and vital life skills like leadership and personal finance. I'll share my journey online, providing a resource for both myself and others.
My curriculum, featuring both structured and unstructured learning, will evolve with my discoveries, especially regarding online resources and third-party books. The only potential hiccup could be the Open University modules, for which I plan to purchase second-hand textbooks. This approach ensures a tailored education aligned with my professional goals.
Disclosure
This page contains affiliate links. If you click through and make a purchase, I may earn a commission, at no additional cost to you. This helps support my site and allows me to continue providing valuable content. Thank you for your support!
Legend/Key
Symbols used in the rest of this page.
- : Published Book
- : Open University Module
- : YouTube Playlist or Video
- : Other Online Resources
-
- : Unfinished Module/Resource
-
- : Finished Module/Resource
Stage 1¶
Introduction to Computing¶
-
Introduction to computing and information technology 1 (TM111)
-
Introduction to computing and information technology 2 (TM112)
-
Think Like a Programmer: An Introduction to Creative Problem Solving
Programming¶
Software Design¶
-
Modern Software Engineering: Doing What Works to Build Better Software Faster
-
Code Complete: A Practical Handbook of Software Construction
Software Testing¶
-
Python Testing with pytest: Simple, Rapid, Effective, and Scalable
-
Agile Testing: A Practical Guide for Testers and Agile Teams
Mathematics¶
-
Discovering Mathematics (MU123)
-
Essential Mathematics 1 (MST124)
Computer Architecture¶
-
The Elements of Computing Systems: Building a Modern Computer from First Principles
-
Companion Coursera Course: Building a Modern Computer from First Principles
Stage 2¶
Algorithms & Data Structures¶
-
Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People
-
A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1
-
Algorithms, Data Structures and Computability (M269)
Security¶
Object-Oriented Programming¶
Wrangling Existing Code¶
Managing IT¶
Stage 3¶
Other OU Modules¶
-
Communication and information technologies (TM255)
-
Software engineering (TM354)
-
Communications technology (TM355)
Operating Systems¶
Computer Networking¶
Databases¶
Languages and Compilers¶
Distributed Systems¶
Stage 4 — A Stage Unstructured¶
Every resource in this stage is independent and can be completed at any time.
Study Skills¶
Personal Development¶
Motivation¶
-
The Obstacle is the Way: The Ancient Art of Turning Adversity to Advantage
-
The 10X Rule: The Only Difference Between Success and Failure
Agile¶
Leadership¶
-
Turn The Ship Around!: A True Story of Turning Followers Into Leaders
-
Leaders Eat Last: Why Some Teams Pull Together and Others Don't