# 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. ## General knowledge courses #### CS101. Computer architectures: general intro - Coursera: [From NAND to Tetris part I](https://www.coursera.org/learn/build-a-computer/home/welcome) #### CS102. Networking: general intro - Coursera [computer networking](https://www.coursera.org/learn/computer-networking/home/welcome) - Stanford course [youtube playlist](https://www.youtube.com/playlist?list=PLvFG2xYBrYAQCyz4Wx3NPoYJOFjvU7g2Z) - parrt cs601 [Sockets](https://github.com/parrt/cs601/blob/master/lectures/sockets.md) - parrt cs601 [Network programming](https://github.com/parrt/cs601) - [Socket programming in Python, 5 videos](https://pythonprogramming.net/sockets-tutorial-python-3/) #### CS103. Operating systems: general intro - **[Udacity course](https://classroom.udacity.com/courses/ud923)** - Coursera: [From NAND to Tetris part II](https://www.coursera.org/learn/nand2tetris2) #### CS201. Database: general intro - Architecture of a Database System [Paper](https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf) - Berkeley [Course Playlist](https://www.youtube.com/user/CS186Berkeley/playlists) #### CS401. System Design - **Book: Designing Data Intensive Applications** - **[Course: MIT course playlist](https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)** - Grokking the System Design Interview - [Gaurav Sen Playlist](https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX) - [Uber engineering blog series](https://eng.uber.com/tech-stack-part-one-foundation/) #### CS403. Design Patterns - Python Factory pattern and Message Queue - Book: Design Patterns by Gamma et al #### CS405. Software Engineering Fundamentals - **Course**: [Software Development Process](https://classroom.udacity.com/courses/ud805) - [Prof. Terence Parr, USF **CS601**](https://github.com/parrt/cs601) - [Gaurav Sen](https://www.youtube.com/playlist?list=PLMCXHnjXnTntYbKsUs6Pj8_BO_8ou4y07) #### CS406 DevOps with Docker - [Udemy Docker course](https://www.udemy.com/course/learn-docker/) - [Deploy ML/DL using Docker](https://youtu.be/0qG_0CPQhpg) #### CS503 [fastai: Computation Linear Algebra by Rachel Thomas](https://github.com/fastai/numerical-linear-algebra/blob/master/README.md) #### CS504. 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: - [MLOps overview by Huyen Chip](https://huyenchip.com/2020/06/22/mlops.html) - [TDS Article: Big picture architecture of ML system](https://towardsdatascience.com/architecting-a-machine-learning-pipeline-a847f094d1c7) - [Challenges](https://eugeneyan.com/writing/challenges-after-deploying-machine-learning/) and [practical guide to maintaining machine learning](https://eugeneyan.com/writing/practical-guide-to-maintaining-machine-learning/) by Eugene Yan #### CS505 Natural Language Understanding Stanford - [Course page](https://web.stanford.edu/class/cs224u/2019/index.html) - [Playlist](https://www.youtube.com/playlist?list=PLoROMvodv4rObpMCir6rNNUlFAn56Js20) #### CS506 [Natural Language Processing using Deep Learning CMU](https://www.youtube.com/playlist?list=PL8PYTP1V4I8CJ7nMxMC8aXv8WqKYwj-aJ) #### CS507 [Full Stack Deep Learning](https://course.fullstackdeeplearning.com/) - [Project template](https://github.com/DanielhCarranza/ml-production-template) #### CS508 [Deep Learning for Computer Vision](https://www.youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r) #### CS509 [Yannic Kilcher Youtube series](https://www.youtube.com/c/YannicKilcher/playlists) #### CS510 [Luigi SageMaker course](https://mlinproduction.teachable.com/p/build-deploy-and-monitor-ml-models-with-amazon-sagemaker) - Great blog for prodML: [mlinproduction.com](http://mlinproduction.com/) #### CS511 MLOps with GitHub Action - [MLOps youtube playlist](https://www.youtube.com/playlist?list=PL7WG7YrwYcnDBDuCkFbcyjnZQrdskFsBz) - MLOps: Setup Github Actions CI/CD for NLP project - [Weights & Biases Youtube video with Hamel Husain](https://youtu.be/S-kn4mmlxFU) - [Blog post](https://github.blog/2020-06-17-using-github-actions-for-mlops-data-science/) ## Project courses #### CS301. Coding Interview - EPI book #### CS302 Python 3 - Basics: [Practical Python course](https://dabeaz-course.github.io/practical-python/Notes/Contents) - [Eugene Yan's Python project setup](https://eugeneyan.com/writing/setting-up-python-project-for-automation-and-collaboration/) - RestAPI with [FastAPI guide](https://fastapi.tiangolo.com/tutorial/first-steps/) - FastAPI MadeWithML example - Project: DoverChat, poetry, Docker, deployed on Heroku and AWS EB #### CS303 Nature of Code youtube series - [JS Prototype](https://youtu.be/hS_WqkyUah8) - [Topics of ES6-ES8, promise, async await (20 vids)](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YgpA3Oht-7B4NBQwFVe3pr) - Nature of Code - [Physics Engine, matter.js simulation project (10 vids)](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6akvoNKE4GAxf6ZeBYoJ4uh) - [Autonomous Agents (10 vids)](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YHt0dtyf4uiw8tKOxQLvlW) - [Cellular Automata (4 vids)](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YrWXvEQFOGbCt6cX83Xunm) - [Fractals (10 vids)](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6bXUJvjnMWGU5SmjhI-OXef) - 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 - [Streamlit get started](https://docs.streamlit.io/en/stable/) #### CS402 Full-Stack Web Development, ReactJS - **Udemy [the complete junior to senior web developer roadmap](https://www.udemy.com/course/the-complete-junior-to-senior-web-developer-roadmap/)** #### 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/](https://course.fast.ai/)** - **[fastbook](https://github.com/fastai/fastbook)** - **Document all answers to questionnaires** - [FastAI2 design paper](https://arxiv.org/abs/2002.04688) - [Deep Tutorials for PyTorch](https://github.com/sgrvinod/Deep-Tutorials-for-PyTorch) - Official PyTorch book: Deep Learning with PyTorch #### CS502 NLP: projects - **[fastai NLP course](https://www.fast.ai/2019/07/08/fastai-nlp/)** - **[Awesome visual course](https://lena-voita.github.io/nlp_course.html#main_page_content)** - **Book: [Practical NLP](https://github.com/practical-nlp/practical-nlp)** - Survey - [Eugene Yan: NLP Survey](https://eugeneyan.com/writing/nlp-supervised-learning-survey/) - [Pratik Bhavsar: Pytorch for NLP](https://medium.com/modern-nlp/get-pro-in-pytorch-for-nlp-60352b51fa1e) - Other resources - [Fast AI course v4 NLP lecture](https://course.fast.ai/videos/?lesson=8) - [@amitness: How to Learn Transformers](https://twitter.com/amitness/status/1297471740012982273) - [Advanced course](https://www.coursera.org/learn/language-processing/home/welcome) - [NLP Masterclass: Modeling Fallacies in NLP](https://youtu.be/f2m6Mon0VE8?t=316) - [NLP Datasets](https://datasets.quantumstat.com) - Book: NLP with Pytorch - MadewithML and [dair.ai](http://dair.ai) chatbot materials - [Survey paper](https://arxiv.org/abs/2004.03705) - [MadeWithML topic curation](https://madewithml.com/topics/conversational-ai/) - [Future of NLP](https://youtu.be/G5lmya6eKtc) - [Level 3 AI Conference 2020](https://www.youtube.com/playlist?list=PL75e0qA87dlGP51yZ0dyNup-vwu0Rlv86) - Full stack ML prototype stack: FastAPI, Streamlit, Docker, Heroku - [Project example 1: streamlit + fastapi](https://github.com/davidefiocco/streamlit-fastapi-model-serving/) - [Project example 2](https://github.com/abhimishra91/insight) #### 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](https://madewithml.com/courses/applied-ml-in-production/) - [MadeWithML youtube channel](https://www.youtube.com/c/MadeWithML/) #### CS602 Open Source Contributions of Your Choosing