If you are a non-programmer that is looking to learn machine learning then you might be wondering whether or not you will be able to learn machine learning and how to go about learning it.
This post will show you how you can learn machine learning as a non-programmer.
So, can a non-programmer learn machine learning? A non-programmer can learn machine learning. It does not take long to learn the necessary programming for machine learning and there are some machine learning courses that do not assume that you know any machine learning.
If you are a non-programmer that is looking to learn machine learning then this would be the route that I would suggest that you take:
- Take the machine learning course taught by Andrew Ng that has no prerequisites
- Learn Python programming with this course
- Learn Data analysis in Python with this Youtube series
- Take the deep learning course taught by Andrew Ng
- Read this book or watch this Youtube series on how to implement machine learning in Python
- Start applying your knowledge of machine learning on Kaggle competitions
- Learn calculus, linear algebra and probability on edX
- Take this more advanced course on machine learning offered by MIT
There are many different ways that you can go about learning machine learning and there is a lot of material that is available to learn from. The goal with the above outline is to get you to a stage where you can make use of machine learning as quickly as possible.
How to learn programming for machine learning
What programming language to learn
Python is the most popular programming language that gets used in machine learning. Python is one of the easier programming languages to learn, it has a large support community and it is very adaptable with a wide range of uses. Additionally, Python comes with a number of built-in libraries that allow machine learning algorithms to be run in only a few lines of code. Most of the machine learning tutorials are also given using Python so knowing Python will make it easier to learn machine learning.
R is another popular language that gets used for machine learning. R is mainly used by those in statistical fields and it comes with a number of inbuilt libraries that let the machine learning algorithms get used quickly. However, R is not as widely applicable as Python and it is primarily used for statistics and data analytics.
Another programming language that gets used in machine learning is Javascript. It is a programming language that was specifically designed for the web and it would be a useful language to learn if you intend to make a web-based ai solution.
You can watch the video below to see more about the different programming languages that get used in machine learning.
Since Python is such a popular machine learning language that is also popular in a number of other ways as well I would recommend that you learn Python. Python is a fast language to learn and most machine learning tutorials are done in Python.
To learn Python I would recommend that you take this course. The course is offered by MIT on Edx and you do not have to pay to take the course. Not only will it teach you how to code in Python but it will also teach you data structures, testing and debugging and it also introduces you to algorithmic complexity. If you intend to get a job in machine learning then knowledge of those three things will be very helpful.
Machine learning makes use of a lot of data. In order to implement the machine learning algorithms effectively and to be able to make sense of the data it is necessary for you to have some knowledge of how to do data analysis in a programming language such as Python. This is why I would recommend that you learn how to do data analysis using this Youtube series after learning how to code in Python.
Having a good understanding of data analysis will make it much easier for you to understand machine learning tutorials and to implement the machine learning algorithms on your own.
What else you need to know to learn machine learning
In addition to having knowledge of programming, there are a number of other things that you will need to know in order to be able to implement the machine learning algorithms effectively.
Skills that are required to fully understand the machine learning algorithms and how to effectively make use of them include calculus, linear algebra, probability and statistics.
With that being said, there are some courses that will teach you machine learning without assuming that you have any knowledge of any of the above.
One of those courses is the machine learning course taught by Andrew Ng who is a professor at Stanford University. This course will teach you about all of the machine learning algorithms and will also teach you the linear algebra that you need to know to be able to understand the material. He does go into the calculus behind the algorithms, at times, briefly. However, you can still understand what is going on without knowledge of calculus.
I would recommend that you start with Andrew Ng’s course before you start anything else including learning Python. This is because it will give you a chance to see whether or not machine learning is for you without investing too much time into learning it.
Once you have taken the above machine learning course taught be Andrew Ng and you have decided that machine learning is for you then I would recommend that you now take the time to learn Python and data analysis in Python using the courses linked to above.
After you have learned how to program with Python I would then recommend that you take Andrew Ng’s deep learning course. This course will teach you all that you need to know about deep learning using the Python programming language and it does not assume that you know calculus or linear algebra.
Deep learning is a subset of machine learning where the algorithms are able to become very accurate when they are given a lot of data. Deep learning algorithms were not very popular until recent years because it has only been in recent years that we have had access to enough data and computational power to make use of the algorithms.
Once you have learned what the machine learning and deep learning algorithms are it would be very helpful to make use of some material that teaches you the specifics of how to implement the algorithms in Python.
I would strongly recommend that you use this book to learn how to implement the machine learning algorithms. It is the second edition of a very popular first edition that went into the specifics of how to get the best out of the machine learning algorithms and how to make use of them in Python.
If you do not want to pay for the book then this Youtube series would be a good alternative way of learning how to implement the machine learning algorithms.
Once you have learned how to implement the machine learning algorithms then I would recommend that you start working on your own machine learning projects. You can do this by finding your own datasets to make use of or you can compete in competitions on Kaggle.
Active learning is one of the best ways to learn and you will learn a lot by implementing the machine learning algorithms and trying to optimize them on your own.
At this point, it would be worthwhile for you to learn the necessary mathematics to learn exactly how the machine learning algorithms work.
The courses that I would recommend that you use to learn the required mathematics are as follows:
Calculus (MIT)
Linear algebra (The University of Texas at Austin) I would also recommend this Youtube series
Probability (MIT)
Once you have learned the necessary mathematics then it would be worthwhile for you to learn from a more advanced book or course. I would recommend that you do this by taking the machine learning course offered by MIT. In this course they will teach you the mathematics that goes into the machine learning algorithms and the probabilistic elements involved.
Consider using a paid course
While there is a lot of free material that you can use to learn machine learning and programming with, none of the material will take you directly from zero-programming knowledge to knowing how to effectively make use of machine learning.
That is why you might want to consider taking a paid course since there are a number that will take you through the entire process of learning everything involved in learning and implementing machine learning.
The course that I would recommend that you use would be Dataquest. This course will teach you machine learning even if you have no programming knowledge and it will also teach you the necessary mathematics that you will need to know.
You can watch the video below to see a review of Dataquest.
How long will it take for a non-programmer to learn machine learning?
The amount of time that it will take you will depend on how much mathematics you know already.
To learn Python using the course linked to above it will take 9 weeks while spending 15 hours per week on the course. Andrew Ng’s machine learning course takes 55 hours to complete and his deep learning course takes 3 months with 11 hours per week being spent on the course.
It will also take you some time to learn how to implement the machine learning algorithms in Python. If you use the book that I suggest above then you should expect it to take at least 50 hours to work through.
If you don’t already know calculus, linear algebra and probability then you’ll also need to learn those if you want to learn the mathematics that goes into the algorithms. The courses that I linked to above are semester-long courses offered by MIT so it would take about three months to learn each of them.
The machine learning course offered by MIT also takes 15 weeks to complete and you should expect to spend 10-14 hours per week on the course.
Is it necessary to learn algorithmic complexity for machine learning?
Computational complexity is an area of computer science that focuses on how long it takes for computer programs to run.
Whether or not you should learn algorithmic complexity in detail depends on how far you want to go with machine learning and if you intend to get a job in machine learning. Many machine learning job interviews will test you on algorithmic complexity so you will need to learn it if you want to get a job in machine learning.