Recently, some colleagues from work as well as friends reached out to me and asked me for advice on how they could learn to code and where to start. Especially, during COVID-19, many people want to take advantage of their lockdown time by picking up a new skill like coding.
In this blogpost, I will explain first why you should learn Python. Next, I will give you my favourite resources on how to learn Python and finally introduce some project ideas and show you how I used Python for solving some of my own problems to get you excited to start learning.
Simplicity and Code Readability
Python’s intuitive use of indentation instead of other confusing symbolslike in other programming languages scattered all around the code make it a lot easier to write and read Python code. With some simple core concepts and knowledge it is a very beginner friendly programming language, where a little bit of Python code will get you quite far. Because you do not have to concentrate on how to read or write python code, it makes it easy to learn, use, and remember.
Popularity & Versatility
Python is more popular than ever, climbing from third place to tie for second in the latest ranking of programming language popularity published by the analyst firm RedMonk
Python’s versatility is one of the major reasons for its ongoing popularity. Both academics prefer it as their favorite language for data-crunchingas well as large companies like Google, Dropbox, and Instagram all rely heavily on Python:
We are often asked about the reasons that particular languages rise or fall in usage, and there are several patterns that have tended to correlate with increased (or decreased) usage. One of those is versatility. Like the language it tied with in this run, Java, Python has continued to find a role for itself in new workloads and use cases, even as it faces more specialized competition in these arenas. This, as much as the language’s general accessibility and ease of use, is one of the most important factors in Python’s ability to not merely survive, but thrive.
Since everyone learns differently it is hard to give an all size fits all answer to this question. Since there are so many offerings out there, I will share some of my favorite resources from which you can try and pick what you like the most.
1. Start with the Complete Python Bootcamp: Go from zero to hero in Python 3 from José Portilla on Udemy for 10€ — 20€
I personally liked this course quite a lot as…
the course only costs between 10€ to 20€ during discounts which happen all the time on Udemy. Please do not buy it for the full price! If you figure out you do not like the course you can always get your money back up to 30 days after the purchase without any questions being asked! the course is more interactive than a book and allows you to learn at your own pace. José does a great job at explaining all basic concepts in a clear and easy way.
However, there are also some drawbacks with choosing this course:
Buying it once and having unlimited time to finish the course really requires a lot of discipline and dedication to finish. If you feel that you need some more pressure maybe a paid course on another platform like Dataquest, Udacity or alike might be a better fit for youWhile José does a great job at explaining the core concepts, I found most of the capstone projects not super interesting or useful in daily life. All code is written in a jupyter notebook and I personally feel there’s more fun projects where you can apply your newly learned knowledge. Hence, my second resource suggestion.
2) Apply some of your basic knowledge and concepts with Automate the Boring Stuff from Al Sweigart (free)
On this website you will learn how to use Python to write programs that do in minutes what would take you hours to do by hand, allowing you to effortlessly perform useful and impressive feats of automation.
I really like Al’s website because…
as a business student, I felt that examples are much more practicaland useful than the ones provided in the Udemy course of JoséAl focuses on execution and you can really do some cool programs in very little amount of time
If you prefer reading and learning, you can also learn all the basic concepts here.
3. Find ideas and learn how to use python more effectively in a business setting on Practical Business Python (free)
4. Learn more about recent Python trends and find sources of inspiration for your own projects and interests through the Talk Python To Me and Python Bytes Podcast (free)
Both Podcasts from Michael Kennedy and Brian Okken are a great way to learn and find out more about the latest trends in Python. At the same time they have some very nice beginner friendly Podcasts that are always fun to listen to during your commute or work out.
I firmly believe that you enjoy programming the most when you can build scripts or programs that solve your own problems and create a small “wow effect”. With Python’s popularity comes a large and extensive standard library (built into the core language) as well as a thriving ecosystem of third-party modules that makes this really easy.
There are already many cool project ideas out there and like this one on Real Python or this curated list of aweomse Python project on GitHub. With the many available options let me briefly present you my top 10 favorite projects and ideas that should get you excited to learn Python:
1. Start Coding in Google Colab
Setting up Python on your own computer can be quite painful and annoying. If you want to get started right away use Google Colab for free. It provides a jupyter style notebook hosted on Google’s server.
My use case: I use Colab for Machine Learning projects since you can use their powerful GPUs and TPUs for resource demanding machine learning projects for free!
2. Automate Programs with PyAutoGUI
PyAutoGUI lets your Python scripts control the mouse and keyboard to automate interactions with other applications. Annoyed of having to do the same clicks all over again at work? A perfect use case for this library!
My use case: With PyAuto I changed and rearranged +100 PowerPoint slides for my CEMS Business Project.
3. Grow your Instagram Account with InstaBot
Do you want to increase your Instagram Followers or find some interesting stats about your posts? Use this library to automate your Instagram account.
My use case: I automated and grew one of my instagram accounts from 0 to 83 followers in just two weeks with almost no time spent.
4. WebScraping with Requests + BeautifulSoup or Scrapy
Are your favorite shoes sold out again before you could buy them? Or do you wonder how often a price changes? Build a simple Price Monitor with Requests and BeautifulSoup.
My use case: I analysed listings on ImmobilienScout to understand whether most of them follow the new Berlin Rental Cap.
5. Automate Google Chrome with Selenium
Like PyAutogui, Selenium allows you to automatically interact with your GoogleChrome Browser and build some handy automations. Tired of swiping on Tinder, automate it with Selenium!
My use case: I used Selenium to automatically download bank statements from my broker to use PortfolioPerformance to monitor my investments.
6. Automatically send Emails with smptlib
Automate anything related to emails, such as receiving email reminders from your code, send a confirmation email to users when they create an account or use it for some automated reporting.
My use case: When I was freelancing at the Bertelsmann Stiftung, I built a simple script that grabbed the link and headline of the latest post I published for them on wordpress and send them an automated email about the nw post.
7. Build awesome Machine Learning/Data Web Apps with Streamlit
Streamlit’s open-source app framework is the easiest way to create beautiful, performant web apps in a few lines of Python code. All for free.
My use case: I used this web framework to deploy a machine learning model that I build that allows everyone to predict a price of used tractors. Checkout my web app here.
8. Build time series forecasts with Facebook’s Prophet
Prophet is a powerful library for forecasting time series data open sourced by Facebook-
My use case: I used it for fun to download my bank account movements and predict how much money I would have in a few years. Not very realistic or useful but some just for fun playing around!
9. Sentiment Analysis with VADER
VADER (Valence Aware Dictionary and sEntiment Reasoner) is a lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media, and works well on texts from other domains. Check out this cool demo built with streamlit.
My use case: I am currently using this library at work to generate more insights from customer feedback through surveys. Extremely, easy to apply and some outstanding results.
10. Analyze and manipulate millions of rows with Pandas
Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. If you will ever work with data, you will get to love with pandas.
My use case: Whenever Excel or GSheet breaks down and I get annoyed how slow those programs are or if I want to do some more complex data manipulation, I use pandas. Pandas is truly amazing, 10 million rows isn’t really a problem for pandas. The library is highly optimized for dealing with large tabular datasets through its DataFrame structure.
As a business student you should learn Python as it is a very beginner friendly programming language, where a little bit of Python code will get you quite far. Start with a simple course to learn the basic concepts and then immediately pick some projects to apply your newly learned knowledge through automation or other project ideas that solve some of your own problems. With the right projects you will impress other, deliver value to your company and feel motivated to keep on learning and enjoy programming.