So, you’re learning Python. And you want to build a portfolio that’ll help you land your first technical job at a company.
You’ll want to show:
- You know how to problem-solve
- You write clean, well-documented code
- You can synthesize documentation and learning resources to build real things instead of just following along with a tutorial and making another to-do list
First, let’s start with something fun: randomly generate a set of different colored socks. Show them on-screen. Then have the user click a button and run a script that sorts and matches them. (Shoutout to Elad Fishbein for the idea!) Once you’ve got that working, here are a few ways you can enhance it:
- Implement different sorting algorithms to see if you can increase efficiency. Write about your different efficiency-increasing trials.
- Once you have the first rough version done, expand the logic into another realm. Not a lot of businesses can directly relate to pairing socks, but they can relate directly to pairing an order with the right fulfillment center or a customer with the right customer service representative or salesperson based on item or skillset.
Now let’s focus on some tasks businesses can directly relate to–ones that could potentially provide value for them:
- A script that takes text input (maybe a text box you copy/paste into) and finds all email addresses in that text and returns them in a tidy list. This could be a cool tool to host on your website, too. It will require some regex knowledge, which is a good thing to have. Perhaps a simple Django or Flask web app?
- Python has a number of statistics and data science libraries. Can you pick a task like analyzing some website traffic data and show how to do it in three different libraries?
- Python also has some libraries for Natural Language Processing. Can you scrape the top articles from three different top news sites on a particular topic (business sector, product, person, etc.) and do a language analysis of it? This could be useful for marketing and product-development teams.
- Build a system that sends a text message reminder to a customer who has a service appointment scheduled the next day, or a call scheduled in the next ten minutes.
- Write a script that takes a CSV input and automatically fills out online forms with the contents of the spreadsheet so someone doesn’t have to manually do it fifty times.
- Write a script that takes the contents of a folder (let’s call them a bunch of images pulled down from the internet with random file names) and renames them to a consistent naming pattern you can use. Add another level of complexity by including more folders of images inside that main folder. Also throw in a .docx file or two to throw the renamer off (you want different naming conventions).
While you’re working on these projects, here are some ways to get more value out of them:
- Make sure you blog along the way. Don’t just blog the finished projects. Blog what you’re learning, how you solved specific issues, the learning sources you used, etc.
- Make screenshare videos (Loom) to teach people how to perform particular tasks in Python.
- Version-control your code with Git and publicly push those commits to Github. Add the Git skill to your toolkit.
- Do step-by-step writeups with Jupyter notebooks and add that skill to your toolkit, too.
Have other project ideas or built one of these and want me to review and link to it? Email me at chuck at crash dot co!