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…

这是什么?这是一套免费的自学课程路线,历时数月,帮助一名在职软件工程师从移动开发转型为机器学习工程师。它以 GitHub 清单的形式呈现,包含文章、书籍、课程和竞赛。
这是我需要报名的课程吗,它具体是怎么组织的?不是课程,而是 GitHub 上的一份精选清单:目录从机器学习概述和算法讲起,经过入门书和实战书籍,一直延伸到 Kaggle 竞赛、视频系列、慕课、播客和面试题。
我具体该怎么按它来学习?按照从上到下的顺序逐项推进:每天选一个主题,从头到尾读完,做笔记、完成练习,并用 Python 或 R 写一个实现。fork 这个仓库,在你自己的分支上用 GitHub 任务列表逐项打勾。
开始之前,我需要扎实的数学基础或计算机学位吗?不需要。作者是没有计算机学位的自学成才的移动开发者,整套内容刻意偏重动手实践,把大部分数学抽象掉了。他最初也只有大学里的基础微积分、线性代数和统计学知识。
学完这一切大概要多久?按作者的节奏——在完整工作一天之后每晚学习约 4 小时——需要好几年。不过如果你已经掌握了其中不少内容,会快得多。
在每天的计划之前,还有没有先要完成的内容?有,开头有一个简短的预备部分:几篇讲解数据分析、数据挖掘、数据科学、机器学习和大数据之间区别的文章,以及一些学习方法类的内容,比如 Learning How to Learn、自学方法,还有 Don't Break The Chain。
为什么是自上而下、实践优先的计划,而不是常见的先学数学的路线?作者总被那些一上来就要求多元微积分和推断统计的书和课程搞得泄气。他的方法是实践——学习——实践:先从真实项目入手熟悉各种方法,再回头学底层理论,以指导更深入的实践。
这些资源需要我花钱吗?基本不用:即使是 Coursera 或 EdX 上课程里的视频,也可以免费观看。唯一的问题是某门课可能当前没有开课,你可能得等上一两个月才能报名。
这份计划真的是为了找到工作,而不只是学点东西吗?是的。它开篇就讨论没有计算机硕士或博士学位能不能拿到机器学习的工作,还包含面试题板块、自学成才工程师的故事,以及供动手练习的 Kaggle 知识类竞赛。
这份计划围绕哪些书展开?它把适合入门的书(Data Smart、Data Science for Business、Predictive Analytics)和配有 GitHub 配套代码仓库的实战书搭配起来,比如 Python Machine Learning、Machine Learning in Action 和 An Introduction to Statistical Learning。
Creator
ZuzooVn
Size
0.5 MB
Stars
28.9K
Updated
CommitMay 23
Age
10y
Commits · 90 Days