5 Reasons Every Developer Should be Blogging
Regardless of skill level, whether you’re a beginner programmer or a seasoned engineer, blogging can provide significant benefits to you and your career, and to your fellow developers around the world. Aside from the usual idea of (potentially) earning some extra income, there are a number of benefits to blogging that may not be immediately obvious to folks who aren’t actively writing about their work.
In this post, I’d like to go over what I believe are the top five reasons that every developer should start a blog and write about their code.
#1 Learn and Improve Technical Skills
It may seem counterintuitive to expect to learn about programming by writing about programming, but I actually find this to be the most applicable benefit of blogging. As the saying goes, the best way to learn is to teach and this is certainly true for developers.
There are a few reasons why blogging is exceptionally good for this:
- When you publish a blog post for the world to see, it adds pressure to make sure you know what you’re talking about. No one wants to write something that shows they just don’t get it, so the added pressure teaches you to dig deeper and think about what you’re explaining.
- Explaining a concept is much more difficult than “knowing” it. You may be able to connect to APIs from Android code without breaking a sweat, but writing about it and teaching others requires a deeper understanding of what’s actually going on. You need to be able to explain what’s going on under-the-hood.
- Comments and interactions from fellow developers on your blog may force you to further explain and justify your ideas, which again requires more than just surface-level understanding of what you’re talking about.
Learning is the most important investment you can make, as the concepts and skills you learn will bring immense benefit to you throughout your career. If there’s only one message you take from this post, it should be that blogging is an incredible chance to learn and hone your craft.
#2 Get Feedback from Fellow Developers
Speaking of your fellow developers, feedback can be a fantastic benefit to blogging. Similar to code reviews that most companies and projects employ, feedback from developers on your blog can act as a review of the concepts and implementations that you employ in your own work, to further develop your skills and improve your software.
For instance, you may write a post explaining how to use mutexes in Go, and get comments from developers adding value to the post or offering alternative methods. In the case of the mutex post, a helpful comment mentioned a race detector build into Go that I was unaware of. As another example, I wrote a post on synchronously animating the background color of the Android Toolbar and TabLayout, and a comment on Reddit offered up a minor change that not only reduced the amount of code required, but also provided a small performance boost as well.
Going forward I’m able to leverage the new knowledge offered up by other developers to improve my own work, so this feedback from other developers can be an invaluable resource to you!
#3 Demonstrate Knowledge and Skills to Potential Employers
Just like a portfolio of projects that show off your work, blogging can be a way to really demonstrate that you know what you’re doing (or at least that you’re on the right track). As I mentioned above, writing about something really requires you to deeply understand it’s inner workings, and blog posts are a perfect chance to show this deeper knowledge to the people who are looking for quality developers.
When I get a resume from a potential developer, the first thing I do is to look for GitHub or website links that I can use to verify that the candidate has the relevant experience for the position. To me, a blog is much more valuable than a GitHub repository for this. In my experience, many developers can slap together a working project by simply copy and pasting snippets from around the web. However, if they can actually explain their work and make an argument for why something should be done a particular way, that shows to me that they know and understand their code.
On the flip side, I can’t tell you how many times a hiring manager has contacted me out of the blue only to learn that they found me on my blog. And these aren’t just the generic recruiting service messages, I’m referring to hiring managers and developers at popular startups and the big tech companies. These individuals will see the posts on Reddit and Twitter if you write good content, and figure out who wrote it. If this happens enough times, there’s a good chance they’re going to reach out to you.
I would even argue that if you are seeking employment, a blog is a better means to finding it than creating a GitHub portfolio - although ideally you should definitely be doing both.
#4 Improve Communication Skills
Soft skills are something that a lot of developers, and especially junior developers, severely underestimate. Communicating your thoughts and ideas is going to be something that you spend a great deal of time on as a software developer, and it’s something I feel needs equal attention to the technical skills.
Simply being able to articulate your thoughts to others will give you an advantage no matter if you’re working on a big team, in a startup, or on open source projects. Blogging, by the very nature of what it is, requires you to communicate and to practice these skills. The more you write, the more effective you will be at writing, and this has a direct impact on all forms of communication.
If you ever have aspirations of being a CEO, CTO, manager, team lead, senior developer or even a mentor, you will require these skills. A significant percentage of time is spent by individuals in these positions simply explaining their ideas, and if they can’t communicate effectively then they can’t work effectively.
Learning, practicing, and improving on how to explain ideas and technical issues may take time for some, but this is certainly time well spent.
#5 Get Involved in the Community
Finally, blogging can be a great way to break into the development community and to find new opportunities. When looking at an open source project you may want to contribute to, think of the posts you’ve written and whether or not any of them could potentially add value to the project. Create an issue, link the post, and offer to implement it into the project if they’re interested. Having the post well written and articulated gives the team a good idea of what exactly you want to add or modify in the project, demonstrates that you can implement it well, and increases the likelihood that they accept the idea.
Alternatively, you may find that other people are already doing this with your posts! One of the greatest personal joys I get from blogging and writing open source code is seeing other people use it - whether that’s an end user using your application, or another developer implementing your ideas.
One of the posts I mentioned above about synchronously animating the background color of the Android Toolbar and TabLayout actually ended up being discussed and committed to an open source Reddit app for Android that I actually use. How cool is that! The only reason I even found out about this was seeing some traffic coming from that repository in Google Analytics, but I find it incredibly exciting and rewarding when I see that happening.
In addition to the personal benefits, you’re also helping other developers who may be struggling with an implementation or a bug. Think about how many times you’ve searched Google about a bug you just couldn’t figure out, or for tutorials on new languages or frameworks. The articles you arrive on are often written by developers just like you who are giving back a small portion of their knowledge and skill to the community. By writing and providing good content, you too can give back to developers who may be struggling, and give them the tip or article they need to build something great.