Top-down learning path: Machine Learning for Software Engineers
Inspired by Coding Interview University.
Translations: Brazilian Portuguese | 中文版本 | Français | 臺灣華語版本
How I (Nam Vu) plan to become a machine learning engineer
What is it?
This is my multi-month study plan for going from mobile developer (self-taught, no CS degree) to machine learning engineer.
My main goal was to find an approach to studying Machine Learning that is mainly hands-on and abstracts most of the Math for the beginner.
This approach is unconventional because it’s the top-down and results-first approach designed for software engineers.
Please, feel free to make any contributions you feel will make it better.
Table of Contents
What is it?
Why use it?
How to use it
Follow me
Don't feel you aren't smart enough
About Video Resources
Prerequisite Knowledge
The Daily Plan
Motivation
Machine learning overview
Machine learning mastery
Machine learning is fun
Inky Machine Learning
Machine Learning: An In-Depth Guide
Stories and experiences
Machine Learning Algorithms
Beginner Books
Practical Books
Kaggle knowledge competitions
Video Series
MOOC
Resources
Becoming an Open Source Contributor
Games
Podcasts
Communities
Conferences
Interview Questions
My admired companies
Why use it?
I'm following this plan to prepare for my near-future job: Machine learning engineer. I've been building native mobile applications (Android/iOS/Blackberry) since 2011. I have a Software Engineering degree, not a Computer Science degree. I have an itty-bitty amount of basic knowledge about: Calculus, Linear Algebra, Discrete Mathematics, Probability & Statistics from university.
Think about my interest in machine learning:
Can I learn and get a job in Machine Learning without studying CS Master and PhD?
"You can, but it is far more difficult than when I got into the field." Drac Smith
How do I get a job in Machine Learning as a software programmer who self-studies Machine Learning, but never has a chance to use it at work?
"I'm hiring machine learning experts for my team and your MOOC will not get you the job (there is better news below). In fact, many people with a master's in machine learning will not get the job because they (and most who have taken MOOCs) do not have a deep understanding that will help me solve my problems." Ross C. Taylor
What skills are needed for machine learning jobs?
"First, you need to have a decent CS/Math background. ML is an advanced topic so most textbooks assume that you have that background. Second, machine learning is a very general topic with many sub-specialties requiring unique skills. You may want to browse the curriculum of an MS program in Machine Learning to see the course, curriculum and textbook." Uri
"Probability, distributed computing, and Statistics." Hydrangea
I find myself in times of trouble.
AFAIK, There are two sides to machine learning:
Practical Machine Learning: This is about querying databases, cleaning data, writing scripts to transform data and gluing algorithm and libraries together and writing custom code to squeeze reliable answers from data to satisfy difficult and ill-defined questions. It’s the mess of reality.
Theoretical Machine Learning: This is about math and abstraction and idealized scenarios and limits and beauty and informing what is possible. It is a whole lot neater and cleaner and removed from the mess of reality.
I think the best way for practice-focused methodology is something like 'practice — learning — practice', that means where students first come with some existing projects with problems and solutions (practice) to get familiar with traditional methods in the area and perhaps also with their methodology. After practicing with some elementary experiences, they can go into the books and study the underlying theory, which serves to guide their future advanced practice and will enhance their toolbox of solving practical problems. Studying theory also further improves their understanding on the elementary experiences, and will help them acquire advanced experiences more quickly.
It's a long plan. It's going to take me years. If you are familiar with a lot of this already it will take you a lot less time.
How to use it
Everything below is an outline, and you should tackle the items in order from top to bottom.
I'm using Github's special markdown flavor, including tasks lists to check progress.
Create a new branch so you can check items like this, just put an x in the brackets: [x]
More about Github-flavored markdown
Follow me
I'm a Vietnamese Software Engineer who is really passionate and wants to work in the USA.
How much did I work during this plan? Roughly 4 hours/night after a long, hard day at work.
I'm on the journey.
Twitter: @Nam Vu
USA as heck
Don't feel you aren't smart enough
I get discouraged from books and courses that tell me as soon as I open them that multivariate calculus, inferential statistics and linear algebra are prerequisites. I still don’t know how to get started…
What if I’m Not Good at Mathematics
5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics
How do I learn machine learning?
About Video Resources
Some videos are available only by enrolling in a Coursera or EdX class. It is free to do so, but sometimes the classes
are no longer in session so you have to wait a couple of months, so you have no access. I'm going to be adding more videos
from public sources and replacing the online course videos over time. I like using university lectures.
Prerequisite Knowledge
This short section consists of prerequisites/interesting info I wanted to learn before getting started on the daily plan.
What is the difference between Data Analytics, Data Analysis, Data Mining, Data Science, Machine Learning, and Big Data?
Learning How to Learn
Don’t Break The Chain
How to learn on your own
The Daily Plan
Each subject does not require a whole day to be able to understand it fully, and you can do multiple of these in a day.
Each day I take one subject from the list below, read it cover to cover, take notes, do the exercises and write an implementation in Python or R.
Motivation
Dream
Machine learning overview
A Visual Introduction to Machine Learning
Gentle Guide to Machine Learning
Introduction to Machine Learning for Developers
Machine Learning basics for a newbie
How do you explain Machine Learning and Data Mining to non Computer Science people?
Machine Learning: Under the hood. Blog post explains the principles of machine learning in layman terms. Simple and clear
What is machine learning, and how does it work?
How to Become a Machine Learning Engineer?
[] Deep Learning - A Non-Technical Introduction[removed]
Machine learning mastery
The Machine Learning Mastery Method
Machine Learning for Programmers
Applied Machine Learning with Machine Learning Mastery
Python Machine Learning Mini-Course
Machine Learning Algorithms Mini-Course
Machine learning is fun
Machine Learning is Fun!
Part 2: Using Machine Learning to generate Super Mario Maker levels
Part 3: Deep Learning and Convolutional Neural Networks
Part 4: Modern Face Recognition with Deep Learning
Part 5: Language Translation with Deep Learning and the Magic of Sequences
Part 6: How to do Speech Recognition with Deep Learning
Part 7: Abusing Generative Adversarial Networks to Make 8-bit Pixel Art
Part 8: How to Intentionally Trick Neural Networks
Inky Machine Learning
Part 1: What is Machine Learning ?
Part 2: Supervised Learning and Unsupervised Learning
Machine Learning: An In-Depth Guide
Overview, goals, learning types, and algorithms
Data selection, preparation, and modeling
Model evaluation, validation, complexity, and improvement
Model performance and error analysis
Unsupervised learning, related fields, and machine learning in practice
Stories and experiences
Machine Learning in a Week
Machine Learning in a Year
How I wrote my first Machine Learning program in 3 days
Learning Path : Your mentor to become a machine learning expert
You Too Can Become a Machine Learning Rock Star! No PhD
How to become a Data Scientist in 6 months: A hacker’s approach to career planning
Video
Slide
5 Skills You Need to Become a Machine Learning Engineer
Are you a self-taught machine learning engineer? If yes, how did you do it & how long did it take you?
How can one become a good machine learning engineer?
A Learning Sabbatical focused on Machine Learning
Machine Learning Algorithms
10 Machine Learning Algorithms Explained to an ‘Army Soldier’
Top 10 data mining algorithms in plain English
10 Machine Learning Terms Explained in Simple English
A Tour of Machine Learning Algorithms
The 10 Algorithms Machine Learning Engineers Need to Know
Comparing supervised learning algorithms
Machine Learning Algorithms: A collection of minimal and clean implementations of machine learning algorithms
KNN Algorithm in Machine Learning
Beginner Books
Data Smart: Using Data Science to Transform Information into Insight 1st Edition
Data Science for Business: What you need to know about data mining and data analytic-thinking
Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die
Practical Books
Machine Learning for Hackers
GitHub repository(R)
GitHub repository(Python)
Python Machine Learning
GitHub repository
Programming Collective Intelligence: Building Smart Web 2.0 Applications
Machine Learning: An Algorithmic Perspective, Second Edition
GitHub repository
Resource repository
Introduction to Machine Learning with Python: A Guide for Data Scientists
GitHub repository
Data Mining: Practical Machine Learning Tools and Techniques, Third Edition
Teaching material
Slides for Chapters 1-5 (zip)
Slides for Chapters 6-8 (zip)
Machine Learning in Action
GitHub repository
Reactive Machine Learning Systems(MEAP)
GitHub repository
An Introduction to Statistical Learning
GitHub repository(R)
GitHub repository(Python)
Videos
Building Machine Learning Systems with Python
GitHub repository
Learning scikit-learn: Machine Learning in Python
GitHub repository
Probabilistic Programming & Bayesian Methods for Hackers
Probabilistic Graphical Models: Principles and Techniques
Machine Learning: Hands-On for Developers and Technical Professionals
Machine Learning Hands-On for Developers and Technical Professionals review
GitHub repository
Learning from Data
Online tutorials
Reinforcement Learning: An Introduction (2nd Edition)
GitHub repository
Machine Learning with TensorFlow(MEAP)
GitHub repository
How Machine Learning Works (MEAP)
GitHub repository
Succeeding with AI
Kaggle knowledge competitions
Kaggle Competitions: How and where to begin?
How a Beginner Used Small Projects To Get Started in Machine Learning and Compete on Kaggle
Master Kaggle By Competing Consistently
Video Series
Machine Learning for Hackers
Fresh Machine Learning
Machine Learning Recipes with Josh Gordon
Everything You Need to know about Machine Learning in 30 Minutes or Less
A Friendly Introduction to Machine Learning
Nuts and Bolts of Applying Deep Learning - Andrew Ng
BigML Webinar
Video
Resources
mathematicalmonk's Machine Learning tutorials
Machine learning in Python with scikit-learn
GitHub repository
Blog
My playlist – Top YouTube Videos on Machine Learning, Neural Network & Deep Learning
16 New Must Watch Tutorials, Courses on Machine Learning
DeepLearning.TV
Learning To See
Neural networks class - Université de Sherbrooke
21 Deep Learning Videos, Tutorials & Courses on Youtube from 2016
30 Top Videos, Tutorials & Courses on Machine Learning & Artificial Intelligence from 2016
Practical Deep Learning For Coders
Practical Deep Learning For Coders Version 2 (PyTorch)
MOOC
Coursera’s AI For Everyone
edX's Introduction to Artificial Intelligence (AI)