"100 Days of Code" to Build a Strong Developer Portfolio
Tags: python, udemy, portfolio
Published: 2024-01-11 23:31:35

Or "How to build a portfolio while having a full-time family and full-time job".

Disclaimer: This post was partially written with help of GenAI.

I am a husband and father of a adorable and very active soon to be 16 months old baby (or not a baby anymore 😭).


![Scene from movie "Big Mama" with caption: "Yeah. They grow up so fast"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vf4cgq90fqnd5fmsrqzy.gif)

I am also relativelly at the beginning of my career working as a data scientist/software developer at a big chemical company. Even though my background is primarily as a Chemical Engineer, I consider myself a good junior/mid-level developer with Python being my language of choice. However, I wanted to enhance my skills and build a portfolio to showcase my abilities. That's why I decided to take on the ["100 Days of Code" Python Bootcamp](https://www.udemy.com/course/100-days-of-code/) from Udemy, and it turned out to be an incredibly valuable experience.

The course covered a wide range of topics, some of which I was already familiar with. However, one aspect that stood out to me was the introduction to native GUI libraries in Python, such as tkinter and turtle. Prior to this course, I hadn't explored these libraries, and I was pleasantly surprised by their capabilities. 

But what truly resonated with me throughout the course was the emphasis on building a portfolio. It's not enough to simply know how to code; you need to demonstrate your skills through tangible projects. The instructor (Dr. Angela Yu) encourages to not only solve the problems presented in the course but also to customize, try new solutions, and add our own challenges. This allowed me to apply my own creativity and style to the projects, making them unique and reflective of my abilities.

For instance, while solving simple problems like modeling a CLI Coffe Machine application on Day 15 and 16, I made sure to use the amazing [click](https://click.palletsprojects.com/en/8.1.x/) package to easily build the CLI tool, parse user input, and basically build something qualitative much better (and more quickly) than what I could do by just using the standard library. After all, I don't have to reinvent the wheel, I just need to be aware of the many "wheel models" out there, and choose the best one for my current project.

Creating a portfolio is a central focus for me during the course. It gives me the opportunity to showcase my skills and demonstrate what I was capable of as a developer. Having a portfolio is essential in today's competitive job market, as it allows potential employers and clients to see your work firsthand.
Overall, I highly recommend the course, especially if you're looking to build a portfolio and enhance your coding skills. Just skip the parts that are too basic for you, or solve them anyway, but push yourself to create a project with higher quality. It's a rewarding experience that will help you take your coding abilities to the next level and showcase your talents as a developer.

Right now I am building the "snake game" using the `turtle` library. I am trying to make things more interesting by: 
- adding good documentation, 
- customizing options through environment variables (.env file)
- parsing settings with `pydantic-settings`

This is what I can add/expand in the future:
- "play" with CI/CD in github
- deploy the game as ".exe"
- think about a better software architechture. e.g. MVC, to enable using different frontends but still use the save model and view, ...
- ... I am open for ideas 😉

Here is the link: https://github.com/philippesamuel/turtle-snake-game