Finding Focus Through Personal Projects

It can be challenging for me to stay focused during this time for a myriad of reasons. Not just due to the news of the day and the current situation we’re all in, but because I have so many projects that are either fun or necessary (or both?) to work on. I’m continuing to seek out my next role, and it’s been difficult to know where to focus my learning because I don’t necessarily 100% know what my dream job looks like or even who’s hiring in this economic landscape. I’m also immensely curious, and there is just so much about computer programming that I don’t yet know, and I want to gain at least a basic understanding of as much of it as possible.

Currently, I am dedicating time to the following projects:

These projects are all in varying states and are providing me with different levels of excitement.

Board Game Collector, for instance, is something I’ve worked on here and there for the last few years, usually as a reason to tinker with some other tools or concepts. It’s been a playground for developing OOPS-WP, to try out alternatives to Webpack, to bolster my skills with package management, to gain more experience working with APIs, to better understand how to collaborate on open source projects, and more. This has all come at the expense of getting it done, however, and there’s no better time to ship something than right now, which is why I created the first beta release and set up milestones for version 0.2.0.

My personal site project was the catalyst for last week’s blog post about using the Composer config command to add additional repositories to your project. Working on the infrastructure for the site has been enjoyable, and while I’m eager to get a refreshed theme (and content) out into the world, I’m also less enthusiastic about it simply because it’s necessary due to my job search. WordPress is a known entity to me, so doing a personal project because I have to, at this particular time, is less nourishing for my soul than exploring new languages and skills.

That said, this week has felt like a bit of a breakthrough. On Monday, I decided that I wanted to focus my attention once again on learning Python, but through the lens of developing a custom web app. Working once again with my favorite API, I would start working on a site from the ground up, which, in addition to learning and using Python, would also grant me the following benefits:

  • Re-learning the many basics of database management: creating schemas, writing custom queries, optimizing results
  • Exploring how to develop an API
  • Working with a new-to-me templating language (Jinja2)
  • Learning how to build and structure an app within a web application framework

In two days, my app is to the point where I can stand it up and seed it with some data from BoardGameGeek. I can transform BGG’s XML data into JSON, and render a user’s game collection on their profile page, and as an API query response. None of these concepts are new to me, but having the time to build something from scratch in a language that is new to me has been a rewarding experience. More importantly, I’m excited about the opportunity to share my codebase with potential employers and showcase my dedication to learning.

Will this app have the most beautiful, well-written HTML, MySQL, and Python ever? Well, maybe. It could! Right now, though, I just care about the fundamentals, about having something productive to do with my days, about learning something new, and about having something I can share with others that will perhaps help inspire them in some small way, too.