Revisiting code.

I have been programming since the start of this year. What this looks like in practice may be even less impressive than that sounds to a more seasoned programmer. Starting in January, I learned some basic concepts in Python, then took a break for a few months, went back in April and started doing coding challenges on rosalind.info and projecteuler.net. This continued for a few weeks, and was exciting and stimulating.

Oh bother.

Then I got stuck. Coding resumed a few more months later. Then in July, I started to get the hang of some of the more intermediate concepts and found a stride. Occasionally I would find a problem I could solve or small game I could make to keep things interesting and in doing so I really gained serious ground. Although in all honesty, gaining serious ground just meant I understood conditional statements, packages, loops, and certain data types. I still had little to no concept on many formal concepts, such as functions, classes, and recursion.

Flash forward a few months and I was looking for jobs as a programmer. That wasn’t working out so well, due in part to my inexperience with formal concepts. A friend of mine recommended a developer boot-camp and so here I am. Throughout this program I’ve been able to become familiar with many concepts that once threw me for a loop, such as concepts involving functions or anything to do with classes or web frameworks. With the skills I’ve already been able to acquire in my short time here, looking back at code I wrote a mere 4 months ago has me cringing. I’m loving it!

Just the other day I found myself looking through a small project I was quite proud of at the time. I built a game of hangman from scratch. No guides, no copied code. I presented myself with a small challenge and sought to prove it could be done. I believe it’s experiences like this that inspired a majority of the passion I feel for programming to this day. Creating things makes you feel powerful! You can create something once and share it wherever, whenever, and your idea can be run and expressed innumerable times! Yet despite how powerful the tools are, how they’re used is can easily show one’s level of understanding. Or lack thereof.

That’s a lot of code.

This script is an absolute mess. But it’s my mess. You can clearly see my past self’s lack of desire to use functions. This led to tons of redundant code. I set the game inside one huge while loop with a ridiculously high counter, instead of just doing; while True:

I went back and attempted to make helper functions for some reoccurring lines of code and was only able to lessen the code by about 20 or so lines. But it’s much neater and functional.

The point is, learning how to code is a journey. Many things will seem of limits to you at this point, but you can do impressive things with the tools you currently have. So just try to make the result you need happen, as best you can. Then, in a few months or years you can look back and have your own glimpse into the progress you’ve made. Just be sure to not stop practicing. Find ways to keep it interesting. Challenge yourself. Just don’t sit around.

Sitting around.