The first step to amassing knowledge is having a good handle on the language. As it turns out, the same is applicable to Machine Learning. Python being the brightest torch in this dimly lit alley, is the obvious choice.
When learning, I chose to start learning version 3.x as the future developments will only bring more power.
What I found to be good advice is:
Start with videos for an interactive introduction, then go onto books. The books provide a lot of examples and problems to further the understanding. Finally, Practice to ingrain these new concepts.
1) The Videos: There are a lot of good options including paid video courses. These courses may be great but I simply stayed away from them. This is because Python is a simple tool that will help you learn. You need to save your money for the more advanced stuff for which you might need better tutoring.
I personally think that youtube is more than enough for any video references.
I did not like any one hour learn all videos except CS50- week 8 Python.
I did all my education from a channel called Sentdex. Harrison, the guy who runs the channel, has an assortment of python videos related to Machine Learning. I found his beginner video series, intermediate series and other AI centric playlists to be nothing less than top notch.
2) The books: These were the books that looked interesting to me:
- Automate the boring stuff by AI Sweigart
- Python Crash Course by Eric Matthes
- Learning python by Mark Lutz
- Fluent Python by luciano ramalho
- Python for data analysis (2nd Edition) by Wes McKinney
The first three options cover the spectrum of possibility for any beginner textbook.
Automate the boring stuff is a completely hands on approach. Python Crash Course has theory and fundamentals in the first half and projects in the second. Learning python on the other hand is theory heavy and is in more of a conventional textbook format.
Advanced programmers can use Fluent Python to improve their understanding and skills. For data science aspirants, Python for data analysis (2nd Edition) is a great reference book but beginners should go for easier options. I went for Python Crash Course and am planning to get both fluent python and python for data analysis in the future.
3) Python Practice: This is essentially the most important aspect of learning a new language, and it can get quite boring sometimes. There are the obvious choices of using sites like Hackerrank, Codecademy . But if you are a whiny knucklehead like me, your mind after the fifth consecutive exercise on strings is probably saying,
– OMG! So much fun!
Chill.. there is something better.
PythonChallenge , your best bet, is by far one of the most creative websites I’ve come across. Once I gained enough practice by doing the exercises from the books, I went onto this website and solved their puzzles! Once you get the output in your way, you can look at their solutions which are always far better. This taught me ways to take advantage of the high level of sophistication present in the language. There is another similar website to check out if this looks interesting: Project Euler
If you are new here, check the about page for more more information: