How I'm Learning Faster as a Software Engineer
Jeff Morhous // August 05, 2022
It's been a long time since I've written anything on my own website, over a year actually.
It's also been a busy year for me - I got a job as a Software Engineer and worked hard at it while finishing my degree, I got my degree, and I got married. Writing for giggles on the internet took last place in my mind. Even so, I have been writing!
Getting Paid to Write Technical Articles
I spent a lot of time in college sharing what I've learned about programming online. I accelerated this when I started contracting for companies doing iOS development. Everyday I was faced with task that was completely novel to me. It was constant learning.
I got into the habit of writing "how-to" articles on technical things that I was learning. My words would serve as a "learning exhaust" - a direct byproduct of the work I was doing. By forcing myself to condense what I was doing for work into some words to be shared, I learn faster, understand deeper, and retain longer.
Eventually, this led to some paid work. My portfolio of learning exhaust showcased my ability to teach technical concepts well. In the last year, all my writing has been on other companies' sites for money. For the most part, I tried to propose and choose articles that would allow me to explore and learn while I write. It's been a wonderful way to continue to learn and grow quickly - I mean getting paid to learn is the ultimate luxury.
I've written for Honeybadger and been featured many times in Ruby Weekly, a newsletter in my field with 40k readers. I've written articles for Docker about Docker, specifically while I was learning Docker for my actual job! I've written articles about testing for CircleCI and Linktree about software testing, a skill that I'm intentionally growing in for my actual job (again!). I have even more articles in-progress and in the pipeline about topics relevant to areas I'm focusing my technical growth in.
How Writing Helps Me Learn New Things
One of the best and also worst things about writing on the internet is that people read what you write. Some things I write get little traction, others have been seen by tens (and occasionally hundreds) of thousands. This reveals a now-obvious problem with writing about things that are on the edge of what I'm comfortable with - People are quick to tell me when I'm wrong.
Yeah, it hurt when the first few people pointed out mistakes or nitpicked, but it's actually been a multiplier for how fast I grow.
Some of my best growth in the last year has followed this formula:
- I run into a technical problem in my job as a software engineer
- I learn about the preferred solution at work and at home
- I write about my understanding of the preferred solution, summarizing and explaining
- Random internet people point out any misunderstandings of the preferred solution
Putting myself out there still feels silly - even writing this is a little unnerving. Still, I've found this pattern to be incredibly helpful in supercharging my growth. Learning in public is the fastest strategy for growing technical skills that I've found yet.
Growing Even Faster
I've been using Ruby on Rails for over a year now in my job, and I'm liking it more and more. Still, I feel like a novice. I work through problems for my company and retain a good deal of what I learn, but I haven't yet crossed the threshold where I saw I really know the language or framework well.
Over the next year, I'm putting most of my professional energy into becoming incredibly comfortable with both Ruby and Rails. I'm going to learn and write about Ruby, what makes it tick, what makes it great, and what makes it not so great. I'm going to learn and write about Rails in the same manner. My goal is that by August of 2023 I have moved clearly beyond novice in this niche, delivering more value in less time in my work.
This intentionality comes with a trade-off. I'm going to have to pass on some technical articles that would take up less time so that I can use my extra intellectual energy outside of work to learn, even if it means missing out on the extra income. I'll probably be writing more on my website, but I'll still be writing for places when the topics match up to my goals.
So here's to the next year of intentional growth in my technical skills, and all the writing along the way!
Consider subscribing to my newsletter to get occasional updates about new things I make or write.