Last Updated on August 16, 2020
You want to learn machine learning or data science.
You might want a job or the opportunity to get a job in machine learning or data science. Alternatively, you might be a student or in a data role and looking to accelerate your learning in the area.
If you think your only options are to get a PhD or to read an academic textbook, think again. This post is for you.
You have a lot of options when it comes to training and educational material. So many that you should take your time, make a short list of some options and even try a few before settling in.
In this post you will discover the vast number of options available to you and have enough information to choose a direction (or two) and take that next step in your journey.
Where You Fit, Getting Ready
You are looking for educational training in machine learning or data science.
You may have specific subject areas you want to get better at or know more about. What are they? Right them down.
You may have a preference for a specific learning style, like in-person, audio, video, textual tutorials books. What are your preferences? Write them down.
You have specific reason you want to learn machine learning or data science. It may be as described above, a desire or opportunity for a job, desire to learn more or faster for an existing role, or for general interest and opportunity. What is your one reason? Write it down.
Note all three points in a comment if you like. You’re not alone.
Short-List of Machine Learning Training Options
Let’s not dance around, here is a short list of your options to get started and make progress in machine learning.
- University Degree
- PhD Degree (research)
- Masters Degree (by research)
- Masters Degree (by coursework)
- Undergraduate Degree
- In-Person Course
- Training Courses and Workshops
- Online Course
- Paid Courses
- Self-Study University Course Material
- Academic (textbooks)
- Professional (O’Reilly)
- Practical Books (Packt)
- Free Content Online
- Academic (papers, blogs)
- Industrial (blogs, youtube, communities)
- Tools and Libraries
You can see that the top of the list is heavy in supervised and structured academic options and that bottom of the list is focused on less-structured self-study options. Another axis that you could consider options that is less stratified is that of academic versus industrial focus in the materials.
I thought about these axes for a while, I think they are a useful aid. I assigned scores to each option along these axis of Supervised to Unsupervised (self-study) and Academic to Industrial and created a little scatter plot. It is not a perfect breakdown, material can be self-study, unsupervised but still highly structured. A PhD is highly academic, but generally a lot less supervised than most other degrees (at least under the Australian/British system that I studied under). The supervised/unsupervised dichotomy does not capture enough, but it’s a starting point.
Let me know in the comments if this helped.
We’ll spend the rest of the post diving into each of these in turn, what they offer, who they’re suited to and specific examples you can follow-up with.
A university degree provides a highly structured, mostly academic, mostly theoretical introduction to a topic. You probably know what a degree is.
Undergraduate degrees and some masters programs are by course work, and U.S. PhD’s also have a course work element. Some honors, masters and PhD programs have a research component, more so as you step deeper into the system.
Great coursework subjects are highly structured, designed by an expert in the field to give you the best introduction in the subject matter. Great research programs give you an apprenticeship into the scientific method and research methods.
Degrees are also expensive, take a long time, designed for the average student and teach older even out-dated information.
A degree can be the right move if you have a lot of time, money and don’t want to design your own study programs at all.
- PhD Degree (research): Join a research lab and study a subject that fits into their over arching program of study. Your work will be highly academic and specialized and you will be measured by your formal work product in the form of papers. For example, take a look at the PhD programs in Machine Learning at CMU .
- Masters Degree (by research): Like a smaller PhD program, but you are encouraged to bite off a smaller piece, such as reproduce existing results.
- Masters Degree (by coursework): More advanced material than undergraduate course work and sometimes linked with industry. Masters by course work allows you to dive deeper into a subject, and you are likely to find masters programs that specialize in machine learning and related areas. For example, take a look at the masters program in Machine Learning at CMU, the machine learning masters program at University Collage London and the masters of Data Science at Berkeley.
- Undergraduate Degree: Baseline degree for an overview and introduction into a subject. You are unlikely to find a machine learning undergraduate degree, most often machine learning is a subject or set of subjects (bundled with artificial intelligence) offered in the later years of an undergraduate program. For example, take a look at the Machine Learning track in the CS degree at Columbia, the Minor in Machine Learning at CMU and a degree in Statistics and Machine Learning at Princeton.
I’m not an expert in the degree programs offered around the country or around the world, but there is a lot of information available. For example, take a look at this healthy list of masters programs in machine learning and data science.
The degree is the starting point, not the end point. It’s a slow burn on a subject that gets you to a place where you are ready to begin practicing. It’s also the one time when you have the time to go deep into a subject with little other responsibilities.
Some people that ask for advice believe (deeply) that they cannot get into machine learning without going back to university for a handful of years and study a formal degree.
You do not need a degree to learn and practice machine learning. In fact, you don’t need a degree if you want to explore research in machine learning.
There are options that are not nearly as long and expensive as degree programs, but offer highly structured in-person training, and they are highly industry focused rather than academic.
Options include short training courses and bootcamps.
Training Courses and Workshops
You can take a short training course on a specific machine learning topic. The course will be highly targeted on a specific technique or a specific tool.
IT training companies have been around forever and have stared offering training around specific data science and machine learning topics.
There are also new companies that only target this type of training. For example, Persontyle is an example company that offers a vast array of short (1, 2, 3 and 5-day) courses on specific courses like Hadoop for Data Scientists and Introduction to Data Science Using R.
Finally, universities may offer short training courses for industry, local meet-up groups often offer training, and academic conference often have workshops in modern methods deigned for industry and graduate students.
A popular approach are data science and machine learning boot camps. These are 6-12 week programs that professionals attend in person and learn applied skills. Often there is a hiring day at the end of the program to match employers with course participants.
Zipfian Academy is a popular example that offers a 12-week full time program in dat science with modules, capstone project and hiring day. Prices are in the range of $16,000.
This is a popular area and there are a raft of competitors:
For a good round-up on machine learning and data science bootcamp programs, check out the post “Data Science Bootcamp Programs – Full Time, Part Time and Online” by Ikechukwu Okonkwo.
Education throughout the rest of your life will be rooted in self-study and mentorship.
There are a lot of self-study programs available and some like MOOCs are also highly structured. Most, like MOOC’s are spun out of university subject material and therefore are generally more academic focused.
Massive Open Online Course (MOOC)
This are still a very popular method for getting started in machine learning, given the success of the Stanford Machine Learning MOOC that launched Coursera.
Courses are often 10-12 weeks in length, requiring many hours per week. Many are free or offered at a small cost. The are less industry focused and more academic than bootcamps, but offer training that was only ever accessible within a university graduate program. They often include lecture videos, homework, assignments and a community form to discuss the material with fellow students.
Courses operate in batch, to ensure a cohort have support in the form of classmates on their path through the program.
Popular examples from Coursera include:
A popular MOOC from edX is Learning From Data.
Some MOOC courses are paid (like the John Hopkins Data Science MOOC). There are also shorter length paid courses availabe. Some are spun out of university subjects (like these MIT courses) and workshops and others are completely standalone.
Udacity offers a number of paid courses, such as:
- Intro to Data Science, 8 weeks
- Machine Learning: Supervised Learning, Georgia Tech, 8 weeks
- Machine Learning: Reinforcement Learning, Georgia Tech, 4 weeks
- Machine Learning: Unsupervised Learning, Georgia Tech, 4 weeks
Udemy is another company that offers paid course, I’ve covered their offerings before in a post “Machine Learning Courses on Udemy“. Two highlights are:
Linda also offers lots of short videos on machine learning and data science, for example checkout their playlist titled “Data Science Basics” if you have a linda account.
Variations on MOOCs
There are also variations on MOOCs.
For example, you can get free access to the course materials for undergraduate and graduate machine learning university courses and study the course yourself. Some have lecture videos available as well.
Some great examples include:
- MIT 15.075 Statistical Thinking and Data Analysis
- Stanford CS229 Machine Learning
- Stanford Statistics 315a Modern Applied Statistics: Elements of Statistical Learning
- Caltech Learning from Data
There are also open data science and machine learning curriculum that you can study.
- Learn Data Science, by Nitin Borwankar
- The Open Source Data Science Masters, by Clare Corthell
There are many amazing books on machine learning and data science, but you are probably reading the wrong books. This can throw you off track and crush your motivation.
I like to break the books down into three categories: academic, professional, practical.
These are the textbooks used in graduate and undergraduate programs.
You do not want to read these books until you are ready. Until you have been practicing for a while, have some confidence with some algorithms and tools and are ready to dig deeper into why the algorithms work rather than how.
Springer books come to mind readily, but there are many other publishers like The MIT Press, Cambridge University Press and more.
Examples of good textbooks are:
- Machine Learning: The Art and Science of Algorithms that Make Sense of Data
- Machine Learning: A Probabilistic Perspective
- The Elements of Statistical Learning: Data Mining, Inference, and Prediction
- Pattern Recognition and Machine Learning
Textbooks are academic and require a discipline to read, to take notes, to do the exercises to dive into the references. The work is all on you. Textbooks are best used as a reference on select topics when needed.
These are the books you read if you are a software engineer or practicing data scientist and are looking to add more structure to your work or improve in a specific area.
I think of O’Reilly as a publisher in this area, who have been very bullish on “data” books on data science and machine learning.
Some popular professional O’Reilly books include:
- Machine Learning for Hackers
- Doing Data Science: Straight Talk from the Frontline
- Mining the Social Web: Data Mining Facebook, Twitter, LinkedIn, Google+, GitHub, and More
- Programming Collective Intelligence: Building Smart Web 2.0 Applications
- Agile Data Science: Building Data Analytics Applications with Hadoop
- Thoughtful Machine Learning: A Test-Driven Approach
Not to mention the technology specific books on Hadoop, R, Python, and friends.
O’Reilly also have white papers and reports that seem to be expanded versions of blog posts. I’ve read a few and they are so-so. Some examples include:
- Practical Machine Learning: Innovations in Recommendation
- Practical Machine Learning: A New Look at Anomaly Detection
- Disruptive Possibilities: How Big Data Changes Everything
- Real-Time Big Data Analytics: Emerging Architecture
O’Reilly also have a conference on all things data called Strata. You see what I mean when I say bullish. Data is the intel inside and Tim O’Reilly has made “data” an agenda item.
Springer are also edging into this area with two great books:
I love these two books because they are a slightly more academic than the O’Reilly books, but a hell of a lot more accessible than Springer’s textbooks in the area.
I also put Data Mining: Practical Machine Learning Tools and Techniques and Machine Learning in Action in this camp.
These are books that are tutorials and recipes. Some of O’Reilly books fall into this area, such as their cookbooks and nutshell books.
I think of Packt Publishing in this area. The books are generally not as complete as the books listed above, but they are focused on how to do specific things.
Some popular examples include:
- Machine Learning with R
- Social Media Mining with R
- Building Machine Learning Systems with Python
- Learning scikit-learn: Machine Learning in Python
- Building Probabilistic Graphical Models with Python
- Practical Data Science Cookbook
Very actionable, industry focused and generally cheaper.
I love books and I read a lot, take a look at some of my posts on practical books:
- Books for Machine Learning with R
- Python Machine Learning Books
- 6 Practical Books for Beginning Machine Learning
- Review of Applied Predictive Modeling
Free Online Content
There is a lot of free content. Some of it is amazing, and a lot of it is dross.
The content is generally unstructured, or structured within the content, but no cohesive grand plan that links the content together. No study plan. You must construct your own study plan.
You can use this content to learn what you want, when you want. Blog posts are typically too short to dive deeply into a topic, you often need to jump into a book or course to get depth.
I think of free content in two classes: academic material such as papers and professional materials such as blog posts and youtube.
Academic materials include papers, articles, technical reports and theses. The onus is on you to extract what you are looking for, such as the details of an obscure algorithm or ideas on feature engineering for a specific data type.
Google Scholar is your friend when searching for papers.
There are some academic blogs and these too fall into this category.
The Google research blog fits into this area, Alexander Smola’s blog, Mark Reid’s blog and academics making things happen in industry such as John Langford’s blog and many many others
Professional materials are created by those learning or practicing machine learning. They may be students, programmers or data scientists. They may be creating materials to teach, to share or to better understand the material.
YouTube channels also fit into this and there are some excellent ones (and we’re not limited to university lectures)
The Mathematical Monk has a great channel on machine learning. You can get a lot out of recorded talks from industry conferences and meetups such as Pycon 2014 (search for machine learning related videos). Google tech talks are great (again, search for topics on machine learning). You can get a lot of industry news from O’Reilly Strata videos, such as those from the 2014 meeting.
Tools and Libraries
I separate out tools and libraries because they are important area of machine learning education. They are the means by which you do and practice.
There are books, blogs and videos on the tools, and if you’re lucky, there are tutorials and documentation.
An important area is to study both the landscape of tools and libraries available to you and go deep into specific examples.
Generally, this is a wholly on the industrial side rather than academic and wholly self-study. There are very few courses that teach you how to get the most out of tools and libraries.
Tools I often recommend learning a lot about, depending on where you are on your journey are:
There are suits of big data infrastructure to learn about as well as niche tools for specific domains and techniques.
There are a lot of tools and libraries available and a lot of room to go wide and deep.
Machine Learning Competitions
Out on the edge you have machine learning competitions.
These require a certain level of skill in a tool, data handling and algorithm usage before you can get started, and world class expertise to do well.
You are on your own in terms of guidance, but there is community and great opportunity for learning state-of-the art algorithms and practices in a competitive environment.
The skills are you learn are applicable in industry, but real-world problems do require more from you. This area of learning is not for everyone, but does offer a lot for those it does suit.
Competitions are often held in conjunction with academic conferences, and more often are now hosted by companies such as Kaggle and TunedIt. Recent popularity has meant more companies are opening up their data to competitions so that access to varied and interesting industrial datasets is now common place.
We have covered a lot of ground in this post and you have discovered that there are a lot more options available to you than you probably first think.
I want to see comments like “I need a degree” and “there are no good resources” go away. There have never been more options and more resources available to start and practice machine learning, both on the academic side and the industrial side, both in a highly structured and supervised environment and self-study.
What are you going to study? Leave a comment.
Data visualization is also important when it comes to communicating results of machine learning. That said, your chart above “Options Available to You In Machine Learning” is very difficult to read with tiny black letters and white shadowing over blue background.
Love the blog!
Thanks. Agreed. I whipped it up in google docs. I’ll rework in ggplot or matplotlib or something ASAP.
Jason, Excellent compilation of resources. Thank you.
Data Science Dojo offers a two day workshop with mentored participation in Kaggle competition. http://datasciencedojo.com/workshops/hands-on-predictive-analytics/
The course is extremely popular because of the unique hands-on approach and mentoring. You may want to add this under training courses and workshops
Awesome list! For the time being, I am going to continue reading your articles before making any big decisions about what I spend my time on. However, I feel like I’m leaning towards MOOCs (Andrew Ng’s on Coursera and the CalTech one) and some of the non-academic books (Programming Collective Intelligence and Applied Predictive Modeling), hopefully finding a project to work on in the meantime. I don’t want to self-limit by waiting until I’ve finished books/MOOCs to start a project.
Great choices and a it’s always a good idea to sleep on it.
Andrew Ng’s Coursera course should have everything you want. My favorite class assignment/project was learning to recognize 5000 handwritten numbers. Another cool one was learning to classify emails into spam/not spam. All the software is free and runs on any PC or Mac. Goes all the way on how to build Neural networks from the ground up. Lecture notes have been transcribed for download, so no need to buy a book.
I always hear good things about it. The only issue I have with MOOCs is that I need rush through it to meet the assignment deadlines. If one has a lot of free time then it’s great.
Thanks, it was informative and just the info was looking for!!
Glad to hear that!
Thanks for the list. It gave me a good direction to think about.
But going for University Degree will give one a lot of exposure and direction. Also, a better job.
Some additional courses suggested by Tim via email:
http://blogs.ischool.berkeley.edu/i290-abdt-s12/ – Really cool free class on analyzing twitter data by Berkeley
https://www.mysliderule.com/learning-paths/data-analysis – Most extensive free data science course I’ve come across
https://www.edx.org/course/analytics-edge-mitx-15-071x-0 – A little more specific, but a great course on analytics applications
Very good guide. Thanks a lot. Can you advise good place for PhD internship in machine learning. I am more focused on medical data, specially cancer data.
You’re welcome Shao.
Is there any off-line courses on machine learning ? I like off-line courses than on-line courses. Paid, okay.
Hi Byung-Tak Lee, you may be interested in my tutorial style workbooks that contain lessons and projects:
Thanks a lot for making this post! This has made me consider a lot of things that I wasn’t taking inventory of. My only remaining question is: do you think it’s possible that firms will hire people with training in machine learning WITHOUT a degree? From what I hear/read, job listing criteria always list that they want PhD / Master’s degree holders.
That said, I know a person who’s got the training is gonna be just as skilled no matter where he got it from, or how much he paid for it, so I think the current system is ridiculous.
But would you happen to know if circumventing degree requirements is doable?
Hi Brett. I’m glad the post was useful.
Yes, organizations/people want results. They want value. A candidate only needs to demonstrate they can provide value.
A degree and higher degrees are short cut used to help in the hiring process, and some large organizations will be too inflexible in their process to consider someone without one. That’s their problem, not yours.
If you’re a developer, I’m sure you have been around a large number of developers who are killing it and who did not come through a CS degree program.
The same for ML skill – focus on delivering value and demonstrating this value to decision makers – to people who need help in these areas.
I hope that helps.
Thank you very much for providing this comprehensive and concise summary. It’s been very helpful for me. My question for you is – what is your (or the general community) opinion of the Master in Computer Science in Data Science from University of Illinois at Urbana-Champaign, offered via Coursera? Seems to be a great alternative for those that want to obtain an accredited masters, yet have a full time job.
Curious to get your thoughts.
I’m not familiar with it myself Devon, sorry.
Thanks for a very useful post! I am debating between the Coursera 10 course Data Science specialisation or Udacity’s nanodegree in data analysis. I am unable to decide between the two, except that Coursera’s seems to be much more elaborate.
Perhaps choose one that you are most excited about or interested in?