Personal Projects

More than many other careers Software Engineers and Developers are expected to love their job so much that they take it home with them. By this I mean that in addition to coding on the clock, a good programmer is usually assumed to code as a hobby and have at least one personal project going on at any given time. In my experience this has so far held true, at least among my software-fluent acquaintances.

Since starting programming I have tried to make this expectation a reality. Much like my unending list of “books to read,” I now also have an ever-increasing bookmarks tab full of “tutorials to do later.” And though I firmly believe that a line should be drawn between work-time and family-time, I do highly recommend personal projects because, truly, to stay ahead in the tech world one must always be expanding one’s skills even more than a job demands in its day-to-day.

In my current academic project I found that my previous personal projects have been extremely helpful. I am in charge of designing multiple screens and their transitions through handling event transitions in a game loop. This is logic that had never encountered before in my classes. However, at the start of the pandemic in a previous personal project I designed my own game screens and level selects for an arcade game emulator. I figured out the logic of how to switch between animation loops and add or remove functionality based on the screen.

Even though my previous project was in a different language, the experience I gained was a big help in my current project and saved me quite a bit of time. Expanding the breadth (or depth) of knowledge a developer has is extremely beneficial. Personal projects can be a lot of fun, and you never know when that tidbit of knowledge will be an asset to your team or be what tips the scale for you to land that job.

Posted in Uncategorized | Leave a comment

Contingencies

A plan is not perfect unless it plans for imperfections.

During both of my undergraduate degrees I have been a dependable student and team member. I turn in assignments on time, stay ahead of deadlines, and am usually the one to pick up the slack if another member drops off. For my final project, however, I might be the one who needs to ask for help.

Do to unavoidable circumstances earlier this week, members of my family were exposed to Covid-19 and now the whole family is sick including our son who just turned two. Now instead of diving into research for a new and exciting project, I’m spending most of my time comforting a screaming child and hoping his unvaccinated body doesn’t develop any serious complications.

Fortunately, I have excellent team members. During our first week together we laid out clear steps and procedures of not only how to tackle our project, but what to do when one of our members struggles to keep up. Through our established network of clear communication I was able to inform the team of my difficulty and the unexpected road block won’t derail our project or the next deadline.

Just as our code should be designed to handle errors and exceptions, a project plan needs to account for failures from even the most dependable of developers. Safety measures such as code reviews and planning to finish ahead of deadlines prevent mistakes and relieves pressure when disasters eventually happen. Regular, quality communication within a team ensures that everyone knows what is going on and is ready to jump in if coverage is needed.

Life happens to all of us. It is foolish to pretend otherwise and disastrous not to plan for disaster.

Posted in Uncategorized | Leave a comment

Finding Footing on the Path to a Career

Growing up I was always “good” at math and eager to learn it. In kindergarten I found videocassettes at the library that taught me multiplication and division using gum drops. In third grade I spent math class working the textbook from cover-to-cover until my teacher had to borrow the fourth- and fifth-grade textbooks for me to use. In high school I took advanced courses, scored exceptionally well on exams, and was well into Calculus before I entered college. So naturally, I majored in English.

It wasn’t that I particularly wanted to major in English or that I particularly disliked the idea of a more technical degree; I just had no idea what the path to a technical job looked like. I knew how to be a doctor or a lawyer: college + med school or college + law school. I had seriously researched these careers and decided they weren’t for me. My dad was an accountant and I had a pretty good idea what kind of math knowledge and education that entailed, but he didn’t really make a lot of money and didn’t seem to love his job too much. But as far as anything else? It seemed so out of reach.

Growing up it seemed like to be a physicist, programmer, or rocket scientist required some level of scientific or mathematical genius. In high school I felt like I had learned basically nothing about those subjects and it seemed too daunting to choose a major in college I knew so little about and try to make a career from it. At my high school there was exactly one chemistry class, one physics class (apart from the remedial one), and precisely nothing about programming available at all. Math started with Algebra, went through Calculus, then kind of just ended? Anytime I heard of someone succeeding in a technical field, it was because they had checked out a book from the library and built a rocket, learned physics from their scientist parents, or built the internet in their garage.

Fortunately that is far from true, though I wish my younger self could have known it then. Ask anyone in the field and they will assure you that there are plenty of at least semi-successful software engineers of only average intelligence. There is a high bar for rocket scientists, but not every engineer is a certified genius or necessarily obsessed over physics at a young age. Here I am starting a career in software at age 30-something and I’m far from alone in this endeavor.

Perhaps a contributing factor to my early career-blindness was that back then internet was still on dial-up and far from as comprehensive in its content as it is now. A lot of the careers on the market now weren’t even dreamed of when I was a freshman and even the software I’ll be working with wasn’t around when I got my first bachelor’s degree.

It may be a bit of a roundabout way of saying it, but my point is that a lot of times we underestimate what we are capable of. We choose to go down paths because they are a little straighter or better decorated when the path that takes us to where we really want to go is muddy, turns just out of sight, and is mostly obscured by overgrown shrubbery (I mean, programmers aren’t well known for going outside, much less gardening). And this applies especially to the younger generation who have frankly spent most of their formative years in a box with windows and an underpaid, overworked educator who nine times out of ten is also looking to start a new career. So to the people who have found something they love, share what you know with young minds so they can find it too. And if you are stuck in something you don’t love, don’t be afraid to look down another path; you might have only one life, but you don’t have to have only one career.

Posted in Uncategorized | Leave a comment