machine-learning-for-software-engineers README

The project's README from github.com/ZuzooVn/machine-learning-for-software-engineers. As one markdown file: README.md.

Top-down learning path: Machine Learning for Software Engineers

Top-down learning path: Machine Learning for Software Engineers GitHub stars GitHub forks

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


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:

I find myself in times of trouble.

AFAIK, There are two sides to machine learning:

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.

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.

Nam Vu - Top-down learning path: machine learning for software engineers
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…

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.

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

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

Games

Becoming an Open Source Contributor

Podcasts

Communities

Conferences

Interview Questions

My admired companies

machine-learning-for-software-engineers (ZuzooVn/machine-learning-for-software-engineers)

Searching Database…

What is this?A free multi-month self-study curriculum that takes a working software engineer from mobile development to a machine learning engineer job, built as a GitHub checklist of articles, books, courses and competitions.
Is it a course I enroll in, or how is it organized?Not a course — a curated list on GitHub: a table of contents leads from ML overviews and algorithms through beginner and practical books to Kaggle competitions, video series, MOOCs, podcasts and interview questions.
How do I actually work through it?Tackle the items in order from top to bottom: each day pick one subject, read it cover to cover, take notes, do the exercises and write an implementation in Python or R. Fork the repo and check items off with GitHub task lists in your own branch.
Do I need strong math or a CS degree before starting?No — it was written by a self-taught mobile developer without a CS degree and deliberately goes hands-on, abstracting most of the math. The author started from only basic university calculus, linear algebra and statistics.
How long is this going to take?Years at the author's pace of roughly 4 hours of study per night after a full work day — though if you already know much of the material, it will take a lot less.
Is there anything to do before the daily plan itself?Yes, a short prerequisites section: posts on how data analytics, data mining, data science, ML and big data differ, plus meta-skills like Learning How to Learn, learning on your own and Don't Break The Chain.
Why a top-down, practice-first plan instead of the usual math-first route?The author kept getting discouraged by books and courses that demand multivariate calculus and inferential statistics up front. His method is practice — learning — practice: start with real projects to get familiar with the methods, then study the underlying theory to guide deeper practice.
Will I have to pay for any of the resources?Essentially no: even the videos locked behind Coursera or EdX classes are free to access. The catch is that a class may not currently be in session, so you might have to wait a couple of months to enroll.
Does the plan actually aim at getting hired, not just learning?Yes — it opens with the question of whether you can get an ML job without a CS master's or PhD, and it includes sections of interview questions, stories from self-taught engineers, and Kaggle knowledge competitions for hands-on practice.
Which books does the plan build around?It pairs beginner-friendly reads (Data Smart, Data Science for Business, Predictive Analytics) with practical ones that have companion GitHub repos, like Python Machine Learning, Machine Learning in Action and An Introduction to Statistical Learning.
Creator
ZuzooVn
Size
0.5 MB
Stars
28.9K
Updated
CommitMay 23
Age
10y
Commits · 90 Days