Over the past couple of years I have dabbled with using Python. As someone who learned how to code with R being my first language, I didn’t see the reason to switch to Python. While it is a known powerful, flexible and easy to learn language whenever I tried to pick it up- it didn’t stick with me. I tried sites like Codecademy, Datacamp, and Great Learning which all offer wonderful paths and courses for learning Python- but for myself, it didn’t work for me to get to learn what I wanted to do (I did use Codecademy for learning SQL and that did help– highly recommend it).
It could be that I lost patience with having to do little tasks of copying code, which I was instructed to do and as a result was essentially passively learning despite having to write python code in an site embedded IDE which needed to be formatted just right to get a “ Correct!” badge and totally divorced from the machine I was working on and in the end resulted in me going back to writing in R because that’s what was comfortable and worked for what I needed at the time.
After I finished my final semester of undergrad, had more time available in light of the COVID-19 pandemic and had some more discussions with people in Data and Tech exposing me to the widespread use of Python across the field, I decided to take the plunge to learn Python- and get it to stick and get as comfortable with it as I am with R.
In this blog post, I am going to share my favorite free video series and channels I have discovered on Youtube and elsewhere that has helped me to grow and gain confidence in my skills as a Python programmer. I have gained tremendously from these resources and I think they can offer more than a your average online certificate courses and can save you money along the way.
The world of Python Programming is vast and I personally have only scratched the surface of it. This is a brief summary of what I’ve seen so far. As such this blog is more oriented to those interested in getting into Machine Learning (but not entirely); I hope to write another post where I cover more areas (time allowing).
Lets jump into it!
1. For Basics: Programming With Mosh – Python for Beginners [Full Course]
This was the first Youtube video I watched for learning how to code Python. Mosh presents the how-to’s and concepts in Python in arguably the clearest, non-intimidating and methodical way while still maintaining the attention and excitement of the student watching. He starts from total basics of installing Python on your Computer and installing PyCharm, exploring variable types, control flow, functions, dictionaries and provides fun examples which you want to learn how to write and make your own. He even takes it a step further by spending the last hour of the course showing you how to automate spreadsheets in excel, do some basic machine learning and even make your own website with Django. While that sort of stuff for the beginner is intriguing, as much as I wanted to retain it, went in one ear and out the other because for me- even with my experience in R- it didn’t stick. However, it did give me the exposure to what Python has to offer and its strengths. And from then on – I was hooked to learning more!
So if you ask me- The first 4 hours of the video is a great start to get yourself comfortable in the Python painlessly. I recommend this video for anyone just starting out with Python- regardless of their background in other languages.
(That being said he does have a shorter video for developers. Check it out here)
2. For Pandas and Numpy: GreatLearning- Python for Machine Learning
GreatLearning is an educational company based in India, which I initially discovered after watching their video on learning Tableau for Beginners on YouTube. Seeing that they offered a free certificate in the course afterwards, I created an account and saw that they offered a variety of courses for learning what’s currently popular in Data Science and Tech.
Officially the course is listed as being 5 hours long, but the instructors Dan Mitchell and Mukesh Rao make the course easy and entertaining to get through and gives the student a good foundation to navigate with standard data operations and calculations in Python with these two cornerstone libraries in the Python-verse.
3. Webscraping: FreeCodeCamp – Beautiful Soup Tutorial – Web Scraping in Python
One of the coolest things that is possible learn after getting the basics of Python down is learning how to web scrape. After having spent time programming in R using the rvest package for my web scraping needs, learning how to access web pages with Python’s requests module together with scraping data with BeautifulSoup really takes things to the next level.
Understanding how to read source code for web pages can be intimidating to the beginner. Vincent Russo provides a great foundation for learning how to access and scrape online data methodically and cleanly with a very cool practice example of scraping briefing statements issued by the White House all in a little more than a half-hour.
In my opinion, web scraping is one of the most underrated skills to have available at your disposal as a Programmer and has tons of applications for data collection and intelligence. This video will be a solid investment of your time and will make you feel like you’ve really gained a lot in a short time.
(I additionally compared how R’s rvest package compares with BeautifulSoup. You can read it here)
4. Regular Expressions: Kite- [5 Minute Tutorial] Regular Expressions (Regex) in Python
While we are on the topic of web scraping, a must have skill to go with it is knowledge of Regular Expressions, or Regex for short; the world of Regex is vast and can range from being very basic to very complicated. In my opinion, having strong knowledge of the topic is essential to any field that a Python programmer will find themselves in. The Kite Youtube channel goes through this topic to give you a good idea about how this works in a little more than 5 minutes.
For given examples that you may be working with as well, I would recommend checking out and using regex101.com to tune your regular expressions to get the character strings you need without aimlessly stabbing at it to get it right.
Additionally you can check out Hackerrank’s Regex challenges to gain fluency quickly.
5. Crawling the web: TheCodex-Advanced Python Programming: Browser Automation with Selenium
If you felt like you gained a lot in a very short time with learning how to web scrape in Python with the BeautifulSoup module, you must check out TheCodex‘s video on using Selenium for web browser automation. Learning how to do this stuff is a game-changer and the applications are limitless.
You can automate orders to gather quotes from various sites. Combining the Selenium module together with BeautifulSoup and regex makes for triple threat for programming in the web automation. It only takes 10 minutes to do it.
So, in the famous words of Shia LaBeouf circa 2015:
6. Video Games with Pygame: Tech with Tim- Pygame Programming Tutorials
The kids love their video-games, and nowadays, so do the adults. I’m sure a lot of people who are in programming at one point dreamed of making their own video game. The pygame module is perfect for exploring and filling that interest to learn how to make high quality 2D games easily.
There are a lot of high quality videos out there on the Topic, but Tech with Tim really nails it with going through the basics and giving you the tools to make your own video game. I even tried my hand at it and have started a cool “beat em up” fantasy-style game (pictured on the right)
If you don’t want to get burned out, you have to remember to have fun and enjoy the process. Learning how object oriented programming and GUIs work can be overwhelming as well. The pygame module is a great way to keep things fun and still be learning.
7. Unit Testing: Corey Schafer-
Python Tutorial: Unit Testing Your Code with the unittest Module
Corey Schafer is one of the classic YouTube channels out there for learning how to code in Python. In his unit testing Tutorial video he provides a breakdown of running and writing unittests to ensure that the code you write will preform properly in all situations.
After explaining the basics of writing unit tests with the unittest module, Corey takes things a step further by explaining and applying mock testing with using the unittest module with the requests library. Writing unit tests is a specialty in of its self to master, but knowing how to write unit tests are essential to helping ensure that your code will work seamlessly and implement some best practices.
(On a side note, he does some very fancy cursor work in his video that really saves time. I wrote a brief blog on how to do it with PyCharm here.)
8. Computer Vision: Murtaza’s Workshop – Robotics and AI -LEARN OPENCV in 3 HOURS with Python
Computer vision is something that you might see on the internet and think that its really difficult to do. With a trained model, Murtaza shows that making a basic image recognition script can actually be written in under 20 lines using the OpenCV module.
What I really enjoyed about this video was that after explaining the fundamentals of OpenCV he shows “real life” projects that use the OpenCV python code you learned how to write in the Tutorials he presented first.
I really enjoyed learning about how to make your own document scanner with your webcam and tried it out myself (pictured above).
There are even cooler things out there that you can do with OpenCV. But going through Murtaza’s Tutorial will give you the foundation you need for this awesome tool.
9. Machine Learning with TensorFlow:
I would describe OpenCV as a front end tool and the motivation for making your own Machine learning models with Tensorflow. Tech With Tim stars in this video for FreeCodeCamp showing you how to use Tensorflow with Google Colab- a wonderful tool for running high power code, regardless of your machine.
Tim first takes us back to the basics of telling us what Machine learning is and I have found his explanation to be one of the most elegant and practical explanations out there on the internet to date. He then goes through simple examples describing the basics of TensorFlow with Linear Regression and provides plenty of examples along the way and progresses to Neural Networks, Convolutional Neural Networks (CNN) for computer vision, Natural language processing with Recurrent Neural networks (RNN) and Reinforcement learning using Q-Learning.
What I really enjoy about this course is that Tim takes the time to do plenty of White boarding and explaining each concept thoroughly before getting into the code. His approach is to focus on the big picture, which really is key for getting into machine learning. You won’t get all the details, but knowing what’s out there will help you know when to apply and look more deeply into other tools.
10. To become a Machine Learning Legend: sentdex – Machine Learning with Python Playlist
I couldn’t write this blog without including sentdex. Yet, for a playlist over 18 hours long, I am not even close to finishing this. Based on the videos I’ve seen so far sentdex really nails the coverage of the topic.
This being said you will have to pace yourself when going through this. Don’t be surprised if you have to take a break and revisit this series or find yourself lacking the prerequisites to be watching this playlist and needing to brush up on basics.
I would not overlook this because he covers the application of major modules used in machine learning (numpy, pandas, sklearn and tensorflow to name a few). This together with nearing over one million subscribers, he’s clearly doing something right for teaching Machine Learning.
The resources listed here are a selection of what has worked for me so far. I hope to write another piece in the future about more awesome resources for learning Python for free.
Do you know about other resources out there that can take your Python Programming to the next level? Share in a comment below!