I'd been building infrastructure for years and latterly doing so programmatically; CloudFormation, Terraform, bash scripts, GitHub Actions workflows etc.. But I hadn't properly focussed on using a general-purpose programming language. Python kept coming up in two contexts that mattered to me: it's a core language for building around AI tools like Claude and Google Vertex AI/AWS Bedrock; plus developers I work with every day in cybersecurity sales are also building applications with it (amongst many other languages). I wanted to understand more deeply how they think and what they build, not just how to secure it.
So I enrolled in App Brewery's 100 Days of Code Python bootcamp. Given work commitments and other projects running in parallel it took longer than 100 days to complete. I expected that; the goal was depth, not speed.
The course structure
The course runs through four phases: beginner (variables, control flow, functions, data structures), intermediate (OOP, file operations, Pandas, error handling), intermediate+ (APIs, web scraping, Selenium, Flask, Jinja2), and advanced (NumPy, Matplotlib, Plotly, SQLite, scikit-learn). Each section builds on the last.
The first 81 days are guided lessons and exercises. Days 82 to 100 are portfolio projects where you build something from scratch each day using what you've learned. Those 19 projects are where the learning were solidified.
What I actually built
The portfolio projects covered a wide range: a Morse code converter, a typing speed test, an image watermarking desktop app, Breakout and Space Invaders games, a Kanban task tracker with email notifications, a Google Dinosaur game bot, a PDF-to-audio converter using Google's API, an image colour analysis tool with NumPy, and a recipe web scraper.
A few stood out as more substantial:
The eCommerce store (Day 97) included Stripe payment integration, giving me hands-on experience with payment APIs and webhook handling. For the stock price automation (Day 98) I used AWS Lambda and SNS to send price alerts; connecting Python to cloud services outside of infrastructure scripts. And the Flask blog (Day 71) became the foundation for projects.jamescarty.co.uk which is the site you're reading this on.
The data analysis projects on Days 99 and 100 (space flight data and US census data) introduced Pandas, Matplotlib, and Plotly for data exploration and visualisation. These turned out to be directly relevant when I moved onto the Google Machine Learning certification later.
What stuck
The sections that had the most lasting impact were Flask and APIs (which I now use across multiple projects), web scraping with Beautiful Soup and Selenium (useful for testing and data collection), and the data science stack. OOP fundamentals were something I knew conceptually but hadn't implemented properly until this course.
I kept detailed notes throughout; combined across beginner, intermediate, and advanced sections. They're in the repo and I still reference them today. Documentation as you go is a habit I picked up early and it's consistently one of the most useful things I do.
The bigger picture is that Python was a prerequisite for everything that came after: building with Claude Code, working with Vertex AI and AWS Bedrock, the ML projects, and the Flask applications. It also improved how I talk to developers in my day job. Understanding how applications are built; the frameworks, the patterns, the pain points; makes the security conversation more credible and more useful (hopefully they agree too!).
The full course repo is on GitHub.
Comments 0
Log in or register to comment.