Week 04: Learning Python
The python project that had me questioning if I had learned anything at all
Every week, I make a visual map of my learning journey — I share what I learn, how I learned it, and how you can too.
The Boston Marathon has an infamous 0.6 mile stretch, called Heartbreak Hill 💔, that makes runners question if they'll reach the finish line.
This week, I had my Python version of Heartbreak Hill, while trying to build (wait for it…) a Tic-Tac-Toe game. This seemingly simple game had me questioning if I had learned any Python at all in the last 3 weeks. Luckily, I found solace from fellow Redditors that confirmed that building a Tic-Tac-Toe game is not as easy as it seems — especially for newbies.
🔨 WHAT I LEARNED
I started the week off learning how to create “functions” — which are basically a set of instructions the program has to execute when requested.
✨ Analogy Time: Think about your shower routine — you get into the shower, shampoo, maybe conditioner, soap, and you’re out. While those “instructions” aren’t written on your shower wall, you (as the program) use that sequence of shower steps (i.e. the function) every time you step into the shower.
So what does this have to do with Tic-Tac-Toe?
After learning functions, I gave a list to ChatGPT of all the things I’ve learned so far and asked it to give me practice projects to work on — one of which was Tic-Tac-Toe.
And it was hard.
Here are 3 steps you probably never considered about a tic-tac-toe game:
Step 1. The easiest step is starting the game — welcoming the players, assigning both players to an ‘x’ or an ‘o’, and displaying the 3x3 board where they can place their symbol.
Step 2. Asking Player 1 to pick a position — here’s where it gets a little more complicated because there are few sub-steps to this. For example, you need to make sure the selected position is still available, checking if there’s a winner yet, updating the 3x3 board, and passing the move to the next player.
Step 3. Announce a winner — After a few rounds of moves, checking for a winning combination becomes more crucial. There are 8 different ways to win the game:
If there’s a win, the winner is announced and the winning table is displayed. If there’s a draw, nobody will be the winner and players can choose to play again.
👩🏫 HOW I LEARNED
After learning with @MoshHamedani’s free Youtube tutorial in Week 2, I decided to pay $19 for his Complete Python Mastery class, where I went through “Section 4: Functions”. After finishing the lessons, I built 3 ChatGPT-recommended projects — a To-Do List Tracker, a Tic-Tac-Toe game, and a Calculator.
While these projects seem pretty useless at face value, they’ll force you to shift gears mentally into a “programmatic” way of thinking.
🗺 MY LEARNING MAP
Drawing out everything I learned was taking quite a bit of time from actually learning, so I’m taking a different approach to visualize my progress — an actual learning roadmap.











Thanks Andres!
Great job!! Seems like you are having fun while learning 😌
I remember building a tic-tac-toe game in Python while at university, it was certainly not as easy as I expected.