In this post I’d like to explain some of the reasons I chose to start this blog. If you had told me 5 years ago that I was going to start writing blog posts about the things I do in my free time, I’d have thought you were insane. I never enjoyed writing in school, and I just did what was necessary to get a good grade. Clearly, my feelings have changed so I think it’s fair to talk a little bit about why that happened and how I hope starting a blog will be a good use of my time. It boils down to three reasons:

  • Being a better writer will be beneficial for my career
  • Cataloging what I do is a great way to showcase my interests
  • Writing about my technical adventures will force me to understand the details intimately.

Becoming a Better Writer

As a computer science major in college, I did not think being a good writer would help me at all. Except for the occasional documentation section, I just couldn’t think of many situations where writing well would make a huge difference. Because of this, I didn’t have much motivation to make sure I was confident in my writing ability by the time I stepped out into the real world. I’ll admit this was naive, but I just wanted to code! However, I quickly realized my folly and after a little over 2 years of real world experience I have come to understand that writing well is one of those skills that may not be at the top of every software engineer’s official list of responsibilities, but it is certainly a skill that can help me stand out.

I imagine many other technically oriented individuals share my distaste for writing, so developing the ability to write well can be a great bonus for myself. When you look at almost any software engineer job description, it usually lists something along the lines of “strong communication skills” in the requirements. I always thought of this as in-person communication, but I realize now that writing well is very much a part of that requirement especially as more and more companies skew towards remote work. Being able to effectively write product updates, postmortems, and meeting summaries ensures that everyone is on the same page throughout the team or company. Because of this, I’d like to feel confident in my writing ability as I progress in my career. There’s no better way to improve at something than by practicing, so I decided I’d do just that and start a blog!

Creating a Portfolio

If you ask any of my friends what I do in my free time, you’d probably get varying responses centering around the idea that I love to tinker with new languages and software engineering ideologies. I pride myself on learning and understanding a variety of concepts and perspectives (this approach was solidified when I read Range by David Epstein, a great read!). I truly believe that having range is a valuable asset when so many people are forced to specialize. This attitude flourished after I graduated college, and because of that I have plenty of small projects where I just wanted to learn about a new language or framework, for example.

After doing this for two years I’ve realized that I don’t have a whole lot to show for how I’ve been spending my time besides abandoned Github repositories! Now, this doesn’t mean that every little project I start is worthy of writing about, but I do think anything significant warrants some sort of write up. I’ve only been out of school for 2 years, and I have already started to forget about things that I’ve worked on and important lessons I learned while tinkering. As time goes on I would like to do all I can to catalog my experiences so I always have a way to show others what I like to do as well as remind myself what I’ve done in the past. I’m excited to do this by writing blog posts because it creates a snapshot in time of what I was thinking about during a particular project and allows me to analyze how I change over the years.

Developing an Intimate Understanding of New Concepts

The primary reason I’ve decided to start a blog is to make sure I actually extract knowledge out of my projects. I’ve already created quite the graveyard of old projects and ideas that I’ve spent time on for a few weeks and ended up abandoning for one reason or another. I have no problem with that, but I do have a problem with the fact that I have forgotten any useful information about those projects. It’s one thing to say “I followed along in a tutorial using Go two years ago”, and a totally different level of understanding if I can say “I used Go in this project two years ago, here are some similarities and differences to C++, which I use every day” and have a blog post to back up those statements. Writing a blog post about the projects I start will do two things:

  1. Force me to have a deep understanding of my project (otherwise, I would not be able to come up with a very interesting post or explain the project well)
  2. Encourage me to choose projects in which I have a clear goal I want to achieve

I started thinking about how writing could help me learn only recently after reading Tiago Forte’s article on How to Take Smart Notes. Two of the ideas really stuck with me and are great motivators for this blog. The first idea is that it’s easy to think we understand a concept until we put it into our own words. Writing is humbling in that way. I’ve tried to write about some of my projects in the past and many times I quickly realize I don’t actually feel confident in anything I’m saying! This is a clear signal that I need to go back through whatever tutorial or project series I just finished and make sure I truly understand what is being explained at each step. Writing forces me to be able to distill the information down to its essence.

The other idea is that our work only gets better when it is exposed to high quality feedback. Even after I think I understand a concept intimately, there’s a good chance I’m not 100% correct in my way of thinking. If I don’t discuss my thoughts with anyone, I will unfortunately never know the truth. As soon as I expose my ideas and thoughts to the public, I open myself up to (ideally) high quality feedback that will further my understanding even more.

Another slightly less important benefit of writing about my side projects is that it will help me filter which projects I choose to do. Time is precious, and I often find myself going down rabbit-holes of some topic I found interesting on reddit and all of a sudden I’ve wasted a night or abandoned a previously well-defined project. I’m hoping create a bit more structure in that I should spend time on a project keeping in mind a goal of producing some useful piece of writing during or after completion. If I don’t see how I could produce a piece of writing at the onset of a project or the introduction of a new concept, maybe I put it in the backlog. This isn’t to say that I won’t ever investigate said idea, just that I am more deliberate about what I am researching/practicing and when I am doing it.

Conclusion

The overarching reason I created this blog is that I love to learn new things, and I hope that this helps myself and others in their pursuit of knowledge. I’ve learned so much from online tutorials, blog posts, and walk-throughs since I started learning how to code 5 years ago and I’d love to try and pay it forward. I don’t know exactly how this blog will turn out but I plan on learning a ton from the process 🙂 Don’t hesitate to connect with me through my social media platforms and let me know what you think!