Blogging is an amazing thing to do for software engineers. I like to write blog posts for a lot of reasons, but a few of those reasons are more important than others. This is why I've created my top 10 reasons why software engineers should start a blog themselves.
Before I get started, I'd like to point out that I've included a few disclaimers at the bottom. They're about mental health, so make sure to read it. They're at the bottom of this blog post, above the conclusion.
Now follow along as I write about the reasons why I love blogging and why any software engineer should start a blog. The top 10 goes as follows:
- Recording your progress
- Sharing knowledge with the community
- Offload your head onto the screen
- It's fun
- Meet other engineers
- Learn from feedback
- Display your skills
- Learn to communicate better
- Establish yourself as an expert
- Keep others in the loop
I'll go into detail with each of these reasons, so you can read what I mean with them.
Every once in a while I have a day where I feel like I don't know anything about programming. This is a difficult situation to be in, because how do you tell yourself that you do know what you're talking about? Well, there's comes "the blog". I started blogging in 2016 and I still remember writing that first blog post. On the difficult days, I can go back in time and see what I was up to. I usually go back to a post published six months ago and see what I was struggling with then. When I read the posts I often time feel silly that I ever got stuck in that situation, because "Now I know so much more". The imposter syndrome disappears because I proved to myself that I made a lot of progress in a short amount of time.
As software engineers, we're reliant on the community of Stack Overflow or any other platform to help us with problems. We use our favorite search engine a few times per day to figure out how something works. We use the community, so I'm trying to give back to this community with what I learned as well. I write a blog post and publish it if I run into a problem, solve the problem, and believe others could use the solution. The most recent example of this is How to fix CORS headers in a single page application.
Juggling ideas and large concepts in our head is a very common occurrence in our daily lives. Instead of keeping everything in your head and risk getting distracted and losing ideas, you can write it down. You can write down your ideas, apply some minimal formatting and grammar rules and call it a blog post. This way you also have a place to point people when you discuss your ideas with colleagues. They can read about your ideas when they get a minute. They'll appreciate the fact they're not bothered during their work because you'll lose the thoughts if you have to keep it in your head any longer.
Often, when you're working through a tough problem and you start to offload it into words on a screen, you end of solving your problem. When you're writing and formatting your text, you need to rationalize your wording and this often helps a lot when solving problems. This has happened to me on many occasions and it's quite satisfying.
Writing blog posts is fun! Fun should be your top priority when writing blog posts. It's not at the number one spot here, because it's not the most important reason why a software engineer would benefit from blogging. When you're having fun writing blog posts, you'll start to use it more often to help you out. Be it sharing knowledge, recording your progress, or offloading your thoughts, when you enjoy the process, you will choose it. When you stop enjoying writing blog posts, you'll be very likely to choose something else to help you. So when you want to start blogging, make sure it's something you enjoy doing or at least learn to enjoy it over time. At the time of writing (December 2019) I haven't missed a single week of writing a blog post since August. The primary reason for this is I enjoy the process.
When you're sharing your knowledge with the community, you'll start to notice some people engage with your posts. These are some great people you could talk to about some topics. They're enjoying your blog posts, so you can exchange ideas with them and learn from each other. They might have other problems that you know the solution to, in which case you can write blog posts about it. Meeting other software professionals is always a good idea anyway because you can help each other in the future. So being able to connect with them now gives you a benefit, since they'll hear from you through your blog posts. They'll know your struggles and might have solutions.
When other engineers understand what you're struggling with from your blog posts, they might be able to help you with some feedback. If the feedback is not about the problem itself but about grammar and/or spelling mistakes, you've still improved. By writing blog posts, you have the opportunity to learn from others and become a better developer. You will also become a better writer. Being a software developer and a good communicator is a very useful combination. People with great communication skills are very useful team members and managers. If you're writing and improving your skills, you'll help yourself by becoming an even better colleague to work with.
Most of us had to go through an interview process of some sort and show off our programming skills and conduct a technical interview. You might be able to escape this part of the process if you've shown off what you know and what you struggle with over a longer period. Displaying your skills can only help you, as it shows others how you can help them. But it also shows yourself what you can improve on. I like to display my skills to show others how I can help them, but also because I can record my progress. I like to be able to see what I was working on a month ago or a year ago. It helps me to focus on the future and see what I could improve on.
Software engineers are often seen as these closed-off people who hate speaking with people. Being able to communicate well with others will break this stereotype and will make you stand out from the crowd. The other benefit is the fact that you're practicing selling ideas and concepts to non-technical people. Imaging trying to sell Docker to your management without being able to put it into simple words. Management will never allow you to spend time on this because they don't see the benefit of it. All they see is a complicated mess that takes a lot of time to set up. Your co-workers are more likely to listen to you if you're able to break large concepts down into normal words. Bonus points if you can explain the advantages and challenges. These are all skills you're developing with blogging and talking to your co-workers.
A blog is a great format for keeping others up-to-date. This is especially true if you work with a lot of colleagues. An e-mail is another great format for this purpose. But, if you're like me and don't have your work account on your phone, it's a bit difficult to keep track of these updates. A blog post is much easier, because you only have to share a link and you can let others know what you've been up to. You can post this link in a lot of places, so sharing this is much easier than sending an e-mail.
I'd like to clarify a few things about this blog post. There are a lot of blog posts out there about why you should start a blog in 2019. I appreciate those blog posts because they show that blogs are thriving. But most blog posts I've found list things like: "You can make money with it". While this is true, I left this out of my top 10. When you start this journey with the expectation to make money in a few months, you might lose motivation. When you're "still not making money", you might start to experience burn out. Mental health is very important, so please take care of yourself. Start this journey because you like to try it and you think it might be fun, not because you want to make money from it. Money is a nice side effect, it's not the main goal. The main goal is blogging and keeping it up for some time.
Another thing I don't see enough in similar blog posts is that not every engineer has the opportunity to write blog posts. Whatever the reason is, it's a valid reason and you shouldn't feel bad about it. Blog posts like this are often a source of imposter syndrome. Sometimes they're ways to guilt trip engineers to spend time outside of work to write a blog post. I know this is going on, because I've been through it. If you're one of them, remember this: If you're not writing blog posts you're not any less of a software developer.
Thank you for reading this far! In this post, I went over the top 10 why software engineers should write blog posts. It has a lot of benefits, but you need to start this journey with the right intentions. Only start a blog if you enjoy writing or are willing to learn. Don't go into this expecting to make money from it in a few months. If you don't have the opportunity to write blog posts, then don't feel bad about not writing. If you're not writing blog posts you're not any less of a software developer.
If you enjoy writing, these are some of the benefits you get from it:
- you can keep track of your progress
- you're giving knowledge back to the community
- you can work through your rough ideas and shape them into concrete concepts
- you can meet other developers and learn from them
- you can display your skills and establish expertise
- you can keep others up-to-date about what you're working on.
What is your favorite reason to start blogging?
You can always contact me on Twitter and ask me questions. If you'd like to know how and why I started, I'm happy to explain this as well.