machine-learning-for-software-engineers
A complete daily plan for studying to become a machine learning engineer.
Top Related Projects
Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines.
A curated list of awesome Machine Learning frameworks, libraries and software.
machine learning and deep learning tutorials, articles and other resources
📊 Path to a free self-taught education in Data Science!
🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.
Quick Overview
ZuzooVn/machine-learning-for-software-engineers is a comprehensive GitHub repository that serves as a top-down learning path for software engineers to get into machine learning. It provides a curated list of resources, including courses, books, papers, and tutorials, organized in a structured manner to guide learners through the process of becoming a machine learning engineer.
Pros
- Offers a well-structured learning path for software engineers transitioning to machine learning
- Provides a wide range of free and paid resources from reputable sources
- Regularly updated with new content and community contributions
- Includes both theoretical and practical resources for a balanced learning approach
Cons
- May be overwhelming for absolute beginners due to the vast amount of information
- Some linked resources may become outdated or unavailable over time
- Lacks hands-on coding examples or projects within the repository itself
- Primarily focuses on English-language resources, which may limit accessibility for non-English speakers
Code Examples
This repository does not contain code examples as it is a curated list of resources rather than a code library.
Getting Started
As this is not a code library, there are no specific code-based getting started instructions. However, to begin using this resource:
- Visit the repository at https://github.com/ZuzooVn/machine-learning-for-software-engineers
- Start with the "What is machine learning?" section to gain a basic understanding
- Follow the "The Machine Learning Roadmap" to structure your learning journey
- Explore the various sections based on your interests and current knowledge level
- Bookmark the repository for easy access and check for updates regularly
Competitor Comparisons
Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines.
Pros of data-science-ipython-notebooks
- Provides hands-on, executable code examples in Jupyter notebooks
- Covers a wide range of data science topics, including machine learning, deep learning, and big data
- Includes practical examples using popular libraries like scikit-learn, TensorFlow, and Spark
Cons of data-science-ipython-notebooks
- Focuses primarily on code examples rather than providing a structured learning path
- May be overwhelming for beginners due to the breadth of topics covered
- Requires more setup and environment configuration to run the notebooks
Code Comparison
machine-learning-for-software-engineers:
# Machine Learning for Software Engineers
A complete daily plan for studying to become a machine learning engineer.
## What is it?
This is my multi-month study plan for going from software engineer to machine learning engineer.
data-science-ipython-notebooks:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Load and preprocess data
data = pd.read_csv('example_data.csv')
X = data.drop('target', axis=1)
y = data['target']
The machine-learning-for-software-engineers repository provides a structured learning path in markdown format, while data-science-ipython-notebooks offers executable code examples for various data science topics.
A curated list of awesome Machine Learning frameworks, libraries and software.
Pros of awesome-machine-learning
- More comprehensive coverage of ML topics and resources
- Regularly updated with new content and contributions
- Includes a wider range of programming languages and tools
Cons of awesome-machine-learning
- Less focused on practical implementation for software engineers
- Can be overwhelming due to the sheer volume of information
- Lacks a structured learning path for beginners
Code comparison
While both repositories primarily consist of curated lists and don't contain much code, awesome-machine-learning does include some code snippets in its descriptions. For example:
# awesome-machine-learning
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC()
clf.fit(X, y)
machine-learning-for-software-engineers focuses more on providing resources and doesn't include code snippets directly in the repository.
Summary
awesome-machine-learning is a more extensive resource covering a broader range of ML topics and tools. It's regularly updated but can be overwhelming for beginners. machine-learning-for-software-engineers offers a more focused approach for software engineers looking to learn ML, with a structured learning path but less comprehensive coverage.
machine learning and deep learning tutorials, articles and other resources
Pros of Machine-Learning-Tutorials
- More comprehensive coverage of ML topics, including deep learning and neural networks
- Includes practical tutorials and hands-on examples for various ML algorithms
- Regularly updated with new content and resources
Cons of Machine-Learning-Tutorials
- Less focused on software engineering aspects of ML
- May be overwhelming for beginners due to the breadth of content
- Lacks a structured learning path compared to machine-learning-for-software-engineers
Code Comparison
While both repositories primarily focus on curating resources rather than providing code examples, machine-learning-for-software-engineers includes some code snippets for basic ML concepts. For example:
machine-learning-for-software-engineers:
from sklearn import tree
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
Machine-Learning-Tutorials doesn't typically include code snippets directly in the repository, instead linking to external tutorials and resources that contain code examples.
Both repositories serve as valuable resources for learning machine learning, with machine-learning-for-software-engineers being more tailored for software engineers looking to transition into ML, while Machine-Learning-Tutorials offers a broader range of ML topics and resources for various skill levels.
📊 Path to a free self-taught education in Data Science!
Pros of data-science
- Comprehensive curriculum covering a wide range of data science topics
- Structured learning path with clear progression
- Includes resources from reputable institutions and platforms
Cons of data-science
- May be overwhelming for beginners or those with limited time
- Less focused on practical implementation compared to machine-learning-for-software-engineers
- Requires more self-discipline to follow the entire curriculum
Code comparison
While both repositories primarily focus on educational content rather than code, data-science includes some code examples in its curriculum. Here's a sample from the Python for Data Science course:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv')
plt.plot(df['x'], df['y'])
plt.show()
machine-learning-for-software-engineers doesn't include direct code examples but rather links to external resources for coding practice.
Summary
data-science offers a more comprehensive and structured approach to learning data science, suitable for those seeking a thorough education. machine-learning-for-software-engineers provides a more focused path for software engineers looking to quickly grasp machine learning concepts and apply them in their work. The choice between the two depends on the learner's background, goals, and available time commitment.
🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained
Pros of homemade-machine-learning
- Provides practical implementations of ML algorithms in Python
- Includes Jupyter notebooks for interactive learning
- Offers visual explanations and mathematical concepts alongside code
Cons of homemade-machine-learning
- Focuses on a narrower range of ML topics
- Less comprehensive in covering the broader field of ML and AI
- May be more challenging for beginners without prior programming experience
Code Comparison
homemade-machine-learning:
def predict(X):
return np.dot(X, self.w.T) + self.b
def train(X, y, learning_rate, n_iters):
n_samples, n_features = X.shape
self.w = np.zeros(n_features)
self.b = 0
machine-learning-for-software-engineers:
No direct code implementation available.
This repository is a curated list of resources
and learning paths rather than a code repository.
The machine-learning-for-software-engineers repository is a comprehensive guide and resource collection for learning machine learning, while homemade-machine-learning provides hands-on implementations and explanations of specific ML algorithms. The former offers a broader overview and learning path, while the latter focuses on practical coding examples and mathematical foundations.
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.
Pros of ML-From-Scratch
- Provides actual code implementations of ML algorithms
- Offers hands-on learning experience for understanding ML concepts
- Includes a wide range of algorithms, from basic to advanced
Cons of ML-From-Scratch
- Lacks comprehensive learning resources and explanations
- May be challenging for beginners without prior ML knowledge
- Focuses solely on implementation, not on broader ML concepts
Code Comparison
ML-From-Scratch example (k-means clustering):
def predict(self, X):
y_pred = []
for sample in X:
distances = [euclidean_distance(sample, self.centroids[i]) for i in range(self.k)]
cluster = np.argmin(distances)
y_pred.append(cluster)
return y_pred
machine-learning-for-software-engineers doesn't provide code implementations, but rather focuses on curating learning resources and roadmaps for ML education.
Summary
ML-From-Scratch is ideal for those who want to dive deep into ML algorithm implementations, offering a practical approach to understanding how these algorithms work. On the other hand, machine-learning-for-software-engineers serves as a comprehensive guide for learning ML, providing a structured roadmap and curated resources for a broader understanding of the field. The choice between the two depends on the learner's goals and prior knowledge in machine learning.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
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
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
- 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
- Python Machine Learning
- Programming Collective Intelligence: Building Smart Web 2.0 Applications
- Machine Learning: An Algorithmic Perspective, Second Edition
- Introduction to Machine Learning with Python: A Guide for Data Scientists
- Data Mining: Practical Machine Learning Tools and Techniques, Third Edition
- Teaching material
- Machine Learning in Action
- Reactive Machine Learning Systems(MEAP)
- An Introduction to Statistical Learning
- Building Machine Learning Systems with Python
- Learning scikit-learn: Machine Learning in Python
- Probabilistic Programming & Bayesian Methods for Hackers
- Probabilistic Graphical Models: Principles and Techniques
- Machine Learning: Hands-On for Developers and Technical Professionals
- Learning from Data
- Reinforcement Learning: An Introduction (2nd Edition)
- Machine Learning with TensorFlow(MEAP)
- How Machine Learning Works (MEAP)
- 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
- mathematicalmonk's Machine Learning tutorials
- Machine learning in Python with scikit-learn
- 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)
- Udacityâs Intro to Machine Learning
- Udacityâs Supervised, Unsupervised & Reinforcement
- Machine Learning Foundations: A Case Study Approach
- Machine Learning & AI Foundations: Value Estimations
- Kaggle's Hands-On Data Science Education
- Microsoft Professional Program for Artificial Intelligence
- Courseraâs Machine Learning
- Machine Learning Distilled
- BigML training
- Courseraâs Neural Networks for Machine Learning
- Taught by Geoffrey Hinton, a pioneer in the field of neural networks
- Machine Learningâ-âCSâ-âOxford University
- Creative Applications of Deep Learning with TensorFlow
- Intro to Descriptive Statistics
- Intro to Inferential Statistics
- 6.S094: Deep Learning for Self-Driving Cars
- 6.S191: Introduction to Deep Learning
- Courseraâs Deep Learning
Resources
- Absolute Beginning into Machine Learning
- Learn Machine Learning in a Single Month
- The Non-Technical Guide to Machine Learning & Artificial Intelligence
- Programming Community Curated Resources for learning Machine Learning
- Best practices rule book for Machine Learning engineering from Google
- Machine Learning for Software Engineers on Hacker News
- Machine Learning for Developers
- Machine Learning for Humansð¤ð¶
- Machine Learning Advice for Developers
- Machine Learning For Complete Beginners
- Getting Started with Machine Learning: For absolute beginners and fifth graders
- How to Learn Machine Learning: The Self-Starter Way
- Machine Learning Self-study Resources
- Level-Up Your Machine Learning
- An Honest Guide to Machine Learning
- Enough Machine Learning to Make Hacker News Readable Again
- Dive into Machine Learning
- {Machine, Deep} Learning for software engineers
- Deep Learning For Beginners
- Foundations for deep learning
- Machine Learning Mindmap / Cheatsheet
- Machine Learning courses in Universities
- Flipboard Topics
- Medium Topics
- Monthly top 10 articles
- Comprehensive list of data science resources
- DigitalMind's Artificial Intelligence resources
- Awesome Machine Learning
- Awesome Graph Classification
- Awesome Community Detection
- CreativeAi's Machine Learning
- Roadmap of Machine Learning
- Machine Learning Online Courses
Games
- Halite: A.I. Coding Game
- Vindinium: A.I. Programming Challenge
- General Video Game AI Competition
- Angry Birds AI Competition
- The AI Games
- Fighting Game AI Competition
- CodeCup
- Student StarCraft AI Tournament
- AIIDE StarCraft AI Competition
- CIG StarCraft AI Competition
- CodinGame - AI Bot Games
Becoming an Open Source Contributor
- tensorflow/magenta: Magenta: Music and Art Generation with Machine Intelligence
- tensorflow/tensorflow: Computation using data flow graphs for scalable machine learning
- cmusatyalab/openface: Face recognition with deep neural networks.
- tensorflow/models/syntaxnet: Neural Models of Syntax.
Podcasts
-
Podcasts for Beginners:
-
Interviews with ML Practitioners, Researchers and Kagglers about their Joureny
-
"More" advanced podcasts
-
Podcasts to think outside the box:
Communities
-
Quora
-
Reddit
Conferences
- Neural Information Processing Systems (NIPS)
- International Conference on Learning Representations (ICLR)
- Association for the Advancement of Artificial Intelligence (AAAI)
- IEEE Conference on Computational Intelligence and Games (CIG)
- IEEE International Conference on Machine Learning and Applications (ICMLA)
- International Conference on Machine Learning (ICML)
- International Joint Conferences on Artificial Intelligence (IJCAI)
- Association for Computational Linguistics (ACL)
Interview Questions
- How To Prepare For A Machine Learning Interview
- 40 Interview Questions asked at Startups in Machine Learning / Data Science
- 21 Must-Know Data Science Interview Questions and Answers
- Top 50 Machine learning Interview questions & Answers
- Machine Learning Engineer interview questions
- Popular Machine Learning Interview Questions
- What are some common Machine Learning interview questions?
- What are the best interview questions to evaluate a machine learning researcher?
- Collection of Machine Learning Interview Questions
- 121 Essential Machine Learning Questions & Answers
- Minimum Viable Study Plan for Machine Learning Interviews
My admired companies
Top Related Projects
Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines.
A curated list of awesome Machine Learning frameworks, libraries and software.
machine learning and deep learning tutorials, articles and other resources
📊 Path to a free self-taught education in Data Science!
🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot