I finally graduated. But not really. I’m done with coursework, but I have to complete a project or thesis before graduating in September. In lieu of taking the project class (which was only offered in the fall), I am working on an MS Project. That will take up at least 16 hours per week, from May 24 to August 13, or roughly 12 weeks. The rest of the time will be spent working on projects, hobbies, applying to jobs, and practicing for interviews. This post will serve as a list of resources as well as a timeline for my studying.
Organizing all this has become so much better with the Raindrop.io bookmarks manager. Previously, I used Instapaper but searching is not free and organization/tagging is slow. I’m planning to keep this short so I’m not overwhelmed by the amount of resources.
Resources
Learn Go
I have two weeks before starting the project to ramp up Go and become productive.
Intro to Distributed Tracing
The entire project is about distributed tracing, so I’ll need a primer on the topic.
- Mastering Distributed Tracing
- Distributed Tracing in Practice
- Cloud Native Distributed Tracing Labs
- OpenTracing Tutorials
- Uber article on Jaeger
Tools
Linux
- Linux Bible - This is an excellent resource because for this edition, the author added chapters on Ansible, K8s, and OpenShift. It’s also good to fill in gaps in my Linux knowledge.
- How to learn Unix tools
- Learn Enough Command Line to be Dangerous
Vim
My goal this summer is to get even better with Vim, so that I can use it in VSCode, Chrome (Vimium). I might end up moving to Doom Emacs to make use of evil mode and org-mode.
- Learn Vim For the Last Time
- A Vim Guide for Advanced Users
- ShortcutFoo - Spaced repition for various tools
Webdev
Mainly it’s React and Node. But also Elixir and Phoenix.
- Full Stack Open - React, Redux, Node.js, MongoDB, GraphQL and TypeScript
- p1xt-guides
Interviewing and Leetcode
Same resources as previous study plans. I’ll focus on only a few resources this summer. The level of competency I should aim for is the Roblox OA and onsite.
- Tech Interview Handbook
- Maybe buy AlgoExpert to save time organizing resources
- EPI, CTCI, CLRS
Todo
The todo list that drives the things I want to accomplish.
- Learn Go with Tests
- Distributed tracing
- Get comfortable with Vim
- Leetcode everyday
- Work on my homelab, self-hosting, home-automation
- Dotfiles, for Docker, ssh, and try cloning on fresh WSL
- Full Stack Open, Node and React
- Improve and/or rewrite personal website (in Hugo, Gatsby, Stackbit, Pelican, Lektor, or 11ty)
- Organize my notes then publish them on the website (Zettelkasten, Obsidian, Dendron, Notion, or Inkdrop)
- Make clones of popular websites to build portfolio (Go, Elixir, Node, React, Vue, Svelte)
- Serverless, AWS, Terraform
- Finish books: Linux Bible, Crafting Interpreters, nand2tetris
- Use a separate Youtube/Reddit account for strictly learning
DevOps Stack
Based on the DevOps Roadmap, these are the tools and platforms that I’ve decided to focus on.
- CICD: GitHub Actions, Jenkins, GitLab CI, CircleCI
- Cloud: AWS
- Scripting: Python and Go
- Containers: Docker
- Config Management: Ansible
- Orchestration: Kubernetes, OpenShift
- Infrastructure Monitoring: Prometheus, Grafana
- App Monitoring: Jaeger, New Relic
- Infrastructure Provisioning: Terraform
- Version Control: Git