Over the course of this semester, we embarked on a collaborative exploration into the world of Python programming. With zero prior experience, our goal was to immerse ourselves in the fundamentals of coding through hands-on learning, guided tutorials, and self-driven mini-projects. Although originally intended as a complement to our resumes and job applications, the project quickly evolved into a rewarding and often challenging digital journey. While the project left us with an interest in the topic and a good start to developing ourselves a skill in the area, it also yielded an unexpected skill; the ability to use technology as a useful supplement to any learning process, a skill which is applicable to any topic or field, and a skill that is demanded in a society as digitally saturated as ours is today.
Phase 1: Getting to know our resources and learning the Python basics
After returning from our spring break trip, we dipped our toes in the bath of Python using online tutorials such as W3Schools as our starting point. These resources offered us a structured yet flexible approach to grasp foundational concepts. We completed a few tutorials covering topics such as:
- Python syntax
- Writing and using comments
- Variable assignment
- Mathematical operations
- Basic data types (strings, floats, integers)
We didn’t limit ourselves to one platform—we also leveraged ChatGPT and other AI resources to clarify concepts and compile command references, helping us move from understanding commands to actually applying them. This phase allowed us to start writing our own Python code for the very first time! This phase was also important in that it got us used to navigating our resources productively and maximize their effectiveness.
Phase 2: Writing our first file
Excited by our progress, we were eager to make something that we could call our own. Although we struggled at first to find a project within our skill level, we eventually settled on a number guessing game. With this project, we learned to:
- Use conditional logic with ‘if’/’else’ statements.
- Use input/output statements to interact with the user.
- Generate random numbers using the ‘random’ module.
- Build loops.
- Validate user input and troubleshoot potential crashes.
Our code-genius friend Nik helped us troubleshoot problems with our code and difficulties we faced when launching files via the shell. With the help of hints along the way, players could enter guesses until they discovered the right number. In an exhilarating first coding success, we even added safety logic for non-integer entries – a win in our books!
Phase 3: Biting off as much as we could chew
For our final and most ambitious project yet, we decided to take on the challenge of building a text-based adventure game called Dungeon Explorer. This was a choose-your-own-adventure game thatgot us used to a lot more new and advanced coding concepts, while extending our skills with some that we’d seen before:
- Game state management: tracking player health, inventory, and room progression.
- Randomization: using Python’s random module for unpredictability (monster strength, item drops, etc.).
- Loops and nested decisions: enabling the game to continue until a player wins or dies.
Compared to our last game, this project required a lot longer code, more game elements, and more intricate logic, but it also felt by far the most rewarding. We started to think like developers, creating modular logic, planning outcomes, and addressing errors as they came up.

Future Steps
While Dungeon Explorer marked a huge milestone in our learning, we’re currently still in the process of completing another project, our to-do list tracker. Although we have been encountering the most issues yet with this one, it is teaching us that learning to code is as much about patience and persistence as it is about syntax. Each obstacle has taught us more than just coding—it’s taught us how to think, troubleshoot, and grow through the process.











