Hi,
One of my biggest goals in 2020 is to dive deep in Python and machine learning; two things I haven’t really explored in the time I’ve been in tech. That’s about to change.
Even though I have experience with other frameworks and programming languages, I do not consider my self as an “experienced Python developer”. I do know how to
- Solve problems
- Break down complex topics into simpler components
- Put in place an architecture that emulates pretty well the outside world
- Implement a “quick and dirty” approach and keep on improving it
For this, I’m going to start learning as if I’m a true beginner and not take anything from granted. I’ve already established a list of resources to go through in 2020. I’m sure there could be better resources out there, but I feel uncomfortable enough with the quantity of information I’ve selected to digest to know that it’ll probably be enough for the year. As I grow into Python, I will add extra resources to my “master class” that I feel are complementary to the education if anyone wants to follow along.
Why am I fascinated by machine learning?
Machine learning has taken the world like a wildfire. In the past few years, we’ve moved from things that were in the world of sci-fi such as self-driving cars, Alexa or trading stocks. It’s a domain that moves really fast and I feel I’m already super late to the party. Most of all, I see it’s potential to do good in the world when combined with other technologies and an application with the sole intent of making the world a better place.
I’m someone who likes to understand a technical topic deeply and instead of having someone tell me what’s going on in the realms of artificial intelligence, I’d rather take a look for myself and make my own opinion of it. So, that’s why I decided to get a jump on it.
My Goals
- Be knowledgeable enough to use AI as a tool to bring value in different communities. I like to build cool stuff and I hope that some of that stuff can evolve into something that is useful to others. That’s why technology fascinates me; it is its power to have a gigantic and meaningful impact in the life of people and I want to find ways to help.
- I love learning and I want to inspire others to start their own path in ML. In the world of software development, we can’t evolve if we don’t enjoy acquiring new skills. Technology moves at an incredible pace and we have to be careful in order to react to its changes.
Syllabus
The following syllabus may not be the one out there, but I feel that it’s a really good first step towards enlightenment. If you have any advice for me, including courses I should look at or skills I should work on, please feel free to let me know in the comments or reach me on Twitter.
Legend
- Strikethrough = course / book completed
- Royal blue = course / book partially in progress
- Non-edited links = Not started
Fundamental Skills
- Udacity Programming Foundations with Python [Free]
- Udacity Intro to Data Science [Free]
- Kaggle Python Programming [Free]
- Kaggle Intro to Machine Learning [Free]
- Kaggle Data Visualizations [Free]
- Kaggle Pandas [Free]
- Kaggle Feature Engineering [Free]
- Kaggle Intermediate Machine Learning [Free]
Professional Skills
- Andrew Ng’s Machine Learning on Coursera [Free]
- Fast.ai Introduction to Machine Learning for Coders [Free]
- Udacity Design of Computer Programs [Free]
- Andrew Ng’s deeplearning.ai course on Coursera [Cost]
Improving Software Engineering Skills
Data Structures & Algorithms
- MIT Introduction to Algorithms [Free]
- MIT Advanced Data Structures [Free]
- Computer Science Learning Path @ FronEndMasters
- Solving algorithms problems on HackerRank [Free]
- 30 easy problems
- 20 medium problems
- 10 hard problems
- Solving data structures problems on HackerRank [Free]
- 35 easy problems
- 25 medium problems
- 10 hard problems
Problem Solving
- Solving problems on Codewars [Free]
- Moving from 8 kyu (Beginner – white belt level) to 2 kyu (Proficient – purple belt level)
- Codewars Kata Ranking System
- White belt: At this level, the kata is only challenging for users new to programming
- Basic variable assignments
- Basic functional or object-oriented concepts
- Yellow belt: At this level, the kata will start to include more advanced algorithmic challenges and more complex language features
- Complex OOP/Functional concepts
- Advanced regular expression usage
- Blue belt: At this level, the kata begins to take some serious thought to complete.
- Advanced concepts such as concurrency, parallelism, meta programming and cryptography
- Basic AI/machine learning algorithms
- Purple belt: At this level, kata requires a mature understanding of complex programming concepts
- Complex AI/machine learning algorithms
- Reverse engineering techniques
- White belt: At this level, the kata is only challenging for users new to programming
Books & Resources
- Book – Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems [Cost]
- Github Repository – Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems [Free]
- Book – The Hundred-Page Machine Learning Book [Cost]
- Book – Prediction Machines: The Simple Economics of Artificial Intelligence [Cost]
- Book – Fluent Python: Clear, Concise, and Effective Programming [Cost]
- Github Repository – Machine-Learning-with-Python [Free]
As you can see, most of the syllabus is about consuming free resources. In this day and age, we can learn about anything we want if we just put some time aside and find great resources that can bring us to the next level. I’m not going to lie, for those who want to follow along with a similar “master class”, this is going to heavy. In college, I would have skipped a lot of material that I didn’t feel would help land that A. That’s not a great approach towards learning.
Now that I want to learn only for myself and not for a grade, my point of view has drastically changed and for the better. Now that my syllabus has been put in place, all that I need is to start my journey starting tomorrow morning @ 5 am.
Thanks for reading if you kept reading thus far 🙂
Kevin
Hey, your article is interesting. I will share with my friends too. My colleagues were taking about cloudcouncil that they provide certification on Python. As you have knowledge in it can you help me is that worth studying and get certified ? https://cloudcouncil.org/
LikeLike