My CS Degree (2020)
Being a software engineer with a background in Physics, I felt the lack of a CS degree had been a limiting factor in my long-term growth. To tackle it head-on, I designed this curriculum for myself with the best resources I found online, focusing on CS basics as well as full-stack development, deep learning and natural language processing.
There are general knowledge courses and project courses.
General knowledge courses are for indexing knowledge in the brain into an organized system. When facing a new problem, at least you know what relevant info to look for.
Project courses are the real learning process. Learning by doing is the only way to learn.
General knowledge courses
CS101. Computer architectures: general intro
- Coursera: From NAND to Tetris part I
CS102. Networking: general intro
- Coursera computer networking
- Stanford course youtube playlist
- parrt cs601 Sockets
- parrt cs601 Network programming
- Socket programming in Python, 5 videos
CS103. Operating systems: general intro
- Udacity course
- Coursera: From NAND to Tetris part II
CS201. Database: general intro
- Architecture of a Database System Paper
- Berkeley Course Playlist
CS401. System Design
- Book: Designing Data Intensive Applications
- Course: MIT course playlist
- Grokking the System Design Interview
- Gaurav Sen Playlist
- Uber engineering blog series
CS403. Design Patterns
- Python Factory pattern and Message Queue
- Book: Design Patterns by Gamma et al
CS405. Software Engineering Fundamentals
CS406 DevOps with Docker
fastai: Computation Linear Algebra by Rachel Thomas
CS503CS504. Production Machine Learning and MLOps
- Book: Building ML Powered Applications
- MLOps overview by Huyen Chip
- TDS Article: Big picture architecture of ML system
- Challenges and practical guide to maintaining machine learning by Eugene Yan
CS505 Natural Language Understanding Stanford
Natural Language Processing using Deep Learning CMU
CS506Full Stack Deep Learning
CS507Deep Learning for Computer Vision
CS508Yannic Kilcher Youtube series
CS509Luigi SageMaker course
CS510- Great blog for prodML: mlinproduction.com
CS511 MLOps with GitHub Action
- MLOps youtube playlist
- MLOps: Setup Github Actions CI/CD for NLP project
Project courses
CS301. Coding Interview
- EPI book
CS302 Python 3
- Basics: Practical Python course
- Eugene Yan's Python project setup
- RestAPI with FastAPI guide
- FastAPI MadeWithML example
- Project: DoverChat, poetry, Docker, deployed on Heroku and AWS EB
CS303 Nature of Code youtube series
- JS Prototype
- Topics of ES6-ES8, promise, async await (20 vids)
- Nature of Code
- Physics Engine, matter.js simulation project (10 vids)
- Autonomous Agents (10 vids)
- Cellular Automata (4 vids)
- Fractals (10 vids)
- Fractal trees, space colonization project
CS304 Weather Comparison App
- Build API using FastAPI to get daily and hourly weather for cities
- Frontend based on Streamlit, a Python framework for building UI for prototype projects
CS402 ReactJS
CS404. AWS Services
- Book: The Good Parts of AWS by Daniel Vassallo
CS501 Deep Learning with FastAI & Pytorch: projects
- Course v4: https://course.fast.ai/
- fastbook
- Document all answers to questionnaires
- FastAI2 design paper
- Deep Tutorials for PyTorch
- Official PyTorch book: Deep Learning with PyTorch
CS502 NLP: projects
- fastai NLP course
- Fast AI course v4 NLP lecture
- Research-focused course
- Advanced course
- NLP Masterclass: Modeling Fallacies in NLP
- NLP Datasets
- Survey
- Book: NLP with Pytorch
- MadewithML and dair.ai chatbot materials
- Full stack ML prototype stack: FastAPI, Streamlit, Docker, Heroku