My CS Degree - Full-Stack ML Engineering (2020)
Being a machine learning 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.
If you are interested in the philosophy of the creation of this curriculum, I wrote an article about it:
How I Designed My Own Full-Stack ML Engineering Degree
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
CS501 Deep Learning with PyTorch by Yann LeCun & Alfredo Canziani: knowledge
- Highly recommended deep learning course!!
- Course site
- Youtube playlist
fastai: Computation Linear Algebra by Rachel Thomas
CS503CS504. Overview of Production Machine Learning and MLOps
- Book: Building ML Powered Applications
- Suggestion: take project course CS512 for hands-on practice after this course
- Other readings:
CS505 Natural Language Understanding Stanford
Natural Language Processing using Deep Learning CMU
CS506CS507 Full Stack Deep Learning (Updated 2021)
Deep 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
CS513 Machine Learning System Design
CS514 Machine Learning Interview
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 Full-Stack Web Development, ReactJS
CS404 AWS Services
- Book: The Good Parts of AWS by Daniel Vassallo
CS407 iOS Development with Swift and SpriteKit
- Optional course for mobile game development
- youtube video: https://youtu.be/467Doas5J6I
- Project: A sound game for instruments
CS500 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
- Awesome visual course
- Book: Practical NLP
- Survey
- Other resources
- Fast AI course v4 NLP lecture
- @amitness: How to Learn Transformers
- Advanced course
- NLP Masterclass: Modeling Fallacies in NLP
- NLP Datasets
- Book: NLP with Pytorch
- MadewithML and dair.ai chatbot materials
- Full stack ML prototype stack: FastAPI, Streamlit, Docker, Heroku
CS512 Applied ML in Production by MadeWithML
- Quote the course description: "This course isn't just about ML. In fact, it's mostly about clean software engineering! We'll cover important concepts like versioning, testing, logging, etc. that really makes this a production-grade product."
- course page
- MadeWithML youtube channel