Building cool stuff as a software developer

Monday April 13th, 2020

In school, I spent a lot of time writing code, but I didn’t enjoy it as much as I would have expected.

I think this is because I wasn’t writing code for things that interested me, and there wasn’t any excitement regarding the end product. The goal was to just get these coding assignments done on time with as few bugs as possible so I could get a good grade.

Let’s take an example, in my second year software design class we were tasked with creating a board game. We were given some starter code for a broken version, and had to make it functional.

This was boring as hell, and I kind of hated working on it. First off , the game we were creating was some weird game that I never heard about. Second, I wasn’t able to choose what I was building. Third, we weren’t building anything from scratch we were pretty much just fixing a broken version(takes away a lot of the learning aspect). Lastly, the end product would be the same for everyone that was taking the course, why would I be excited to see that end product?

I think this is something that a lot of CS students go through, and that boredom they experience can often take them away from CS and programming in general.

The solution to this is to build cool stuff..

I now take the mindset that programming is a tool, it allows you to do a lot of things. It should be used to do things you find interesting, not just something to add on your resume.

Luckily, once you attain that skill you can work on things that you are actually excited about.

This can be many things, but from my experience, the most exciting/fun coding projects are the ones where you are building stuff you want for yourself.

Some things that come to mind are games. As a kid, there were many times where I recall playing a game and thinking, it would be so cool if this game had “x” or “y”, with programming you have the ability to actually create a game like that.

Another thing that comes to mind is automating things. If you can figure out some task you do often that takes a lot of time, and isn’t very interesting. If that task is computer related, chances are it is probably something you can automate, and trust me seeing something done for you which would otherwise require a lot of tedious work is really exciting, and increases the programming motivation quite a bit, you get that feeling of “damn I wonder what else I can do”.

As you continue to do this, there is also a chance that something you build ends up being useful for others, which can open up even more opportunities in addition to all that you learned. Who knows, something you build for yourself might just become a whole company, and there are so many examples of this.Jack Dorsey created twitter because he wanted the ability to share messages with all his friends/family easily. Patrick Collison and his brother built stripe because they thought making payments over the web was way more challenging than mobile... And the list goes on

So the point to take from all this is to just think of programming as a tool, be on the lookout for things that are cool to you/things you want for yourself, and see if you can build it out!