The importance of a diverse project portfolio: My first experience using Python.
Published: 2024-01-09 15:20:42

As someone who’s been through many, many interviews, and even conducted a few interviews myself, I’ve learned that being a solid candidate isn’t only based on experience, skill, likeness or hard work, but also an individual's ability to think outside the box. 
There are a few interesting interview questions with no right or wrong answer, that’s sole purpose is to see how a candidate thinks. I love these scenarios because to me, they’re fun and they highlight creativity thinking. But I come from a sales background, so this probably isn’t as relevant in the programming industry. 
	What I’m getting at here is that as I embark on my software engineering degree, I want to show the organizations I’m interviewing with that I’m not only bringing my technical skills to the table, but that I also offer a passion for creativity. Afterall, my ultimate goal, after a few years working up the software development ladder, is to lead design/development projects.
For my third project, I didn’t want to focus so much on utility, but rather something fun and creative. My goal was to create a working pygame that showcases a clean UI with very easy-to-read code, provide challenging entertainment, and be as user-friendly as possible. After scavenging youtube for inspiration, I found a creator that made a Galactica game. This took me on a trip down memory lane, as I grew up with a neighbor who had an entire arcade room, including Galactica, in his basement. I didn’t want to completely rip off this idea, so I decided to incorporate another childhood favorite, Battleship. I now had the project idea, and had some familiarity with how to set it up thanks to the Youtube video, but I still needed to expand my understanding on a few of the enemy movement/bullet collision concepts. I was a little concerned at first because I had roughly a week to complete my pygame project however, after about a few hours of grinding, I realized that I was genuinely enjoying what I was doing. Not to say I don’t enjoy coding, but I usually don’t get that rewarding feeling until after I’ve finished a substantial amount of code or fixed an irritating error. 
This time was different, I was especially passionate about this game, ensuring all of my objects looked and moved appropriately. All I could think about is “I can’t wait to show my Dad my own game!”. Halfway through my project, I realized I should be using sprite inheritance to share all of the common attributes. In general I noticed my code was all over the place, so rather than waiting till the end when I’m bound to be more confused, I spent hours cleaning it up and separating each class respectively. Although it took some time and an elevated heart rate, I came to the conclusion that without pseudocode, all of my future projects/assignments will be much easier to complete with proper pseudocode and separation of classes.
I ended up finishing my game at the very last minute (literally 1 minute before I was scheduled to present to the class), and boy was I excited to show it off. Of course, when I went through a demo, one of the “bosses” (a Battleship that rapid-fires missiles in random directions) didn’t populate the screen which I later found out was because I forgot to uncomment a line of code relating to the Battleships movement. Nonetheless, everything else worked and my classmates were impressed. When I got home that night I was intending on showing my fiance my game but instead, I ended up adding 2 more “bosses” and tweaked some of the movement mechanics. It’s safe to assume that I found a deep passion for creating something fun with code, and I plan on continuing to build upon this project and start many others down the road.