If you follow me on Twitter, you might have noticed me expressing something of a desire for a PhD in computer science. While the tweet wasn’t really all that serious (I love what I’m currently doing), I got a lot of advice on the topic from some people whose opinion and experience I respect. Most suggested that the advanced degree probably wasn’t what I really wanted, since my interests tend towards the cutting edge (complexity theory, etc.), and new theories don’t get incorporated into academic programs until well after they’re accepted in the market.
Instead, learning from practitioners and, even better, learning by doing should prove more valuable in both knowledge and in actually creating something meaningful. That said, I do think there is value in building a stronger base on which to evaluate new theories (and possibly to generate some of my own).
My biggest impediments, though, are time and a predilection for procrastination. Addressing those issues would be the main advantage to a formal academic program – while introducing a whole host of other issues.
So instead, I’m going to create my own evolving curriculum to study the topics I find interesting and useful. The goals are to provide a guidepost for my learning (for both subjects and, more importantly, time), and to garner recommendations on sources (hopefully).
This will be a living post – updating as I find new sources, or new interests. And hopefully whoever reads this can learn something as well.
DLT-999: Independent Study
Last Updated: 7/17/2013
- Distributed Systems
- Primer (collection of useful papers) Part 1. Part 2. (note: for any collections of links, I’ll call out and categorize the relevant ones as I tackle them)
- Reading List (collection of useful references)
- Notes on Distributed Systems
- CAP Theorem
- Consensus Algorithms
- Knowledge within Distributed Systems
- Patterns of Learning
- Concurrency Patterns
- Architectual Patterns