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 blog post series, I want to explore and give you insights from a business student’s perspective of my coding journey and recommendations if I would start all over again.
In my first blog post, I talked about whether programming is right for you as a business student. In this blog post, I will explain first why you should learn Python. Next, I will give you my favorite resources on how to learn Python and finally introduce some project ideas and show you how I used Python for solving some of my problems to get you excited to start learning.
Why should you pick Python as your first programming language?
Simplicity and Code Readability
Python’s intuitive use of indentation instead of other confusing symbols like in other programming languages scattered all around the code makes 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’s versatility is one of the major reasons for its ongoing popularity. Both academics prefer it as their favourite language for data-crunching as 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 specialised 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.
How to learn Python programming?
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 favourite 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 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 clearly and easily.
However, there are also some drawbacks with choosing this course:
- Buying it once and having unlimited time to finish the course 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 you
- While 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 feel there are 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 like Al’s website because…
- as a business student, I felt that examples are much more practical and useful than the ones provided in the Udemy course of José
- Al focuses on execution and you can do some cool programs in a 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)
As a business student, this website is useful and helps you to see how Python can be used in a business setting. Especially, the many resources on the pandas library (the excel in Python) are very powerful and amazing to learn!
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.
My own top 10 project recommendations resources and libraries to get you started
I firmly believe that you enjoy programming the most when you can build scripts or programs that solve your own problems which creates 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 easy for you.
There are already many cool project ideas out there like this one on Real Python or this curated list of awesome Python projects 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 in a breeze and less painful way!
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. Web scraping 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 analyzed listings on ImmobilienScout to understand whether most of them follow the new Berlin Rental Cap. Check out my medium post here.
5. Automate Google Chrome with Selenium
Like PyAutogui, Selenium allows you to automatically interact with your Google Chrome Browser and build some handy automation. Tired of swiping on Tinder, you could automate it with Selenium!
My use case: I used Selenium to automatically download bank statements when I get a new email notification from my broker.
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 new 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 the price of used tractors. Check out 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 cashflows and predict how much money I would have in a few years. Not very realistic or useful but fun to play around with!
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 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 fall in 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 and 10 million rows are not 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 that solves some of your own problems through automation or other project ideas. With the right projects, you will impress others, deliver value to your company, and feel motivated to keep on learning and enjoy programming.