Advice

Blogging for Software Developers

John Sonmez · Jul 3, 2017 · 22 min read

I honestly think one of the best possible things you can do for your software development career is to start a blog—and regularly update it.\\n\\nI have to admit I’m a little bit biased.\\n\\nAfter all, you probably wouldn’t be reading this book and I probably wouldn’t be writing it, if one day in late 2009, I hadn’t decided to create the blog named “Simple Programmer: Making the Complex Simple.”\\n\\nI had no idea what I was doing.\\n\\nI had no ambitions.\\n\\nI just wanted to share my thoughts and my experiences, mostly with my work team, since I knew they would likely read my blog.\\n\\nBut I kept writing, week after week.\\n\\nAnd then things started to happen.\\n\\nAmazingly, people actually started to read what I was writing—not many people, but there were enough that I started to notice, and then people started to notice me.\\n\\nI started getting job offers and opportunities.\\n\\nEventually I took one opportunity to create some online courses for a small—at the time—company called Pluralsight.\\n\\nIn three years time, I ended up creating 55 courses for Pluralsight and making literally a few million dollars in royalties.\\n\\nI got invited to speak on podcasts and at conferences and events.\\n\\nThe readership of Simple Programmer grew and grew, and eventually that little bit of affiliate income I was generating from recommending Amazon products in my blog posts also grew.\\n\\nI launched my first product, “How to Market Yourself as a Software Developer,” to my growing audience at Simple Programmer and it was a huge success.\\n\\nEventually, I quit my full-time job and started to work on Simple Programmer full time.\\n\\nMy little blog from 2009 was providing me a full-time income.\\n\\nToday, that blog is still growing.\\n\\nToday, Simple Programmer employs three people full time, and many part-time contractors.\\n\\nSimple Programmer has become a real business, has allowed me to travel the world, meet people I’d never thought I’d meet, and make a real positive impact on people’s lives.\\n\\nIt all started from a blog and a simple message to make the complex simple.\\n\\nI’m not special: if I can do it, so can you.\\n\\nThe journey may not be easy, but in this chapter, I’ll share with you what I know.\\n\\n

Why A Blog Is Still Your Best Choice

\\n\\n\\n\\nToday, I get more traffic to my YouTube channel each day than I do to my Simple Programmer blog.\\n\\nBut I still think blogging is the best choice for most software developers (although, you should consider YouTube as well).\\n\\nThe reason why is simple: it’s low barrier to entry and it’s extremely effective.\\n\\nFor a long time people have been ringing the death knell of blogging and saying that it’s dead because too many people are blogging and there are too many blogs out there, but it’s just not true.\\n\\nYes, there are quite a few blogs out there now, but most of them don’t have many posts and are not regularly maintained.\\n\\nIf you blog regularly and consistently, it’s almost guaranteed that someone searching for your name on the internet will find your blog.\\n\\nThis is going to enhance your reputation for any recruiter, employer, or possible customer, just by virtue of you having a blog that is regularly updated.\\n\\nCountless students of my blogging course have emailed me to tell me about how having a blog got them a better job, either because a potential employer saw their blog and decided to hire them, or they received an invitation to apply for a job from someone who came across their blog.\\n\\nAnd the best part is, it’s so easy.\\n\\nAnyone can create a blog and have one up and running in five minutes or less.\\n\\nYes, you still have to do the work for writing blog posts on a regular basis, but anyone can get good at doing that with just a little bit of practice over time.\\n\\nThink of a blog as an advertisement for you that works all day and night without you having to do anything other than feed it every once in awhile.\\n\\nAside from the external opportunities blogging offers you, it offers some great personal development opportunities as well.\\n\\nI don’t think there is any better way to improve your communication skills than writing.\\n\\nWriting teaches you to organize your thoughts clearly in a way that other people can understand.\\n\\nThe more you write, the better of a communicator you’ll become in general.\\n\\nBlogging also helps you keep track of your own career and progress, as well as provides some historical documentation and reference material which you can look back on to see how you solved a particular problem in the past.\\n\\nI’m always searching my own blog for answers to current problems that I know I’ve solved or talked about in the past.\\n\\nEvery software developer should have their own blog: it’s like a lightsaber for a Jedi.\\n\\n

How To Create A Blog

\\n\\nAlright, so you are convinced you need a blog, great!\\n\\nBut how do you actually create one?\\n\\n(I’m going to cover some of the basics here, but I’d highly recommend you sign up for my free blogging course for some step-by-step details and a complete walkthrough of creating your blog.)\\n\\nMy first advice is not to create one… well, I mean not to create one yourself.\\n\\nMany software developers are tempted to create their own blog, from scratch, and not use an off-the-shelf solution.\\n\\nThis is a bad—nay, horrible—idea.\\n\\nHere’s why.\\n\\nThe point of blogging is not to exercise your ability to write blogging software, which is more difficult than you think.\\n\\nThe point of blogging is to build your reputation, get your name out there, and record your ideas, not to increase your development skills.\\n\\nIt’s not that there is anything necessarily wrong with creating your own blog, but doing so is going to waste a large amount of time that you could be using to write and actually publish your blog posts. If you never finish the project of creating your own blog—which is highly likely—you’ll never have a blog.\\n\\nPlus, the commercial blogging software out there is extremely good, widely used and supported, and has a huge number of plugins and integrations which you could never write on your own.\\n\\nIn fact, I’d highly recommend you use WordPress as your blogging platform, since it is the most dominant software in the blogging space and as a result, has the largest number of plugins and extensibility points.\\n\\nI use WordPress for all of my websites, because it is that flexible and easy to use.\\n\\nCreating your blog with WordPress is extremely easy.\\n\\nThe first thing you need is a host.\\n\\nI recommend either using Bluehost or WP Engine if you are just starting out.\\n\\nCurrently, Simple Programmer runs on a Digital Ocean droplet that is specially configured, but I have a Linux admin who handles all of the maintenance for that system.\\n\\nI wouldn’t recommend going the route I am using until you really need the performance, which you won’t until you have huge traffic spikes.\\n\\nBluehost is a good choice if you are looking to save money initially, and you don’t anticipate a huge amount of traffic.\\n\\nWP Engine is a bit more robust and scalable, so it can handle heavier loads, but is a bit more expensive.\\n\\nOnce you’ve picked your host, you need to get your blogging software installed.\\n\\nFor Bluehost, it’s an extremely simple process. Just a few clicks.\\n\\nFor WP Engine, it’s even easier, since you already get WordPress installed when you set up your account.\\n\\nIf you use a solution like Digital Ocean, you may have to manually install WordPress yourself or use a snapshot image that they provide with it preinstalled. (Although, remember you’ll have to maintain an entirely virtual server.)\\n\\nI’d highly recommend registering your own custom domain to go with your new blog.\\n\\nDon’t just use the default one a blog hosting provider will give you since you will want to build what is known as pagerank or domain authority for your domain.\\n\\nYour pagerank and domain authority will influence how much traffic you get from search engines later on, so it is very much worth the small investment of registering your own domain.\\n\\nYou should be able to get your actual blog set up in just a few hours, so don’t delay the process: take action right away.\\n\\nIn fact, if you’ve been procrastinating on starting your blog, finish this chapter, then put the book down and do it today. You’ll be glad you did and it’s not that difficult to do.\\n\\n

Picking A Theme

\\n\\nOne of the first things you’ll want to do when you start your blog—probably even before you pick your domain name—is to pick the theme of your blog.\\n\\nWhen I say theme here, I don’t mean WordPress theme. (Although if you’d like a recommendation on where to get a WordPress theme, I recommend and use Thrive Themes.)\\n\\nBut, let’s get back on topic. What I mean is, what is your blog about?\\n\\nHow are you going to describe your blog and what are you going to focus on?\\n\\nThis is essentially the same as your specialization or niche.\\n\\nYou want to make the theme of your blog very focused and small initially. You can always expand it later.\\n\\nSo for example, you might create a blog all about using the ListView control in Android.\\n\\nThis might seem like an extremely small and narrow topic, but I guarantee you that you can come up with hundreds of posts about using the ListView control and how to customize it and other closely related topics.\\n\\nBy picking an extremely narrow focus like that, you’ll be able to dominate that space much more easily and be able to grow at a faster rate.\\n\\nIt would be much easier to become known as the expert on the Android ListView control than it would be to be known as the expert on the C# or Java or Agile development.\\n\\nSo try and pick a very narrow focus for the theme for your blog, but not so small that you can’t come up with at least 50 ideas for posts around that theme.\\n\\nYou can also make your theme a bit unique by taking a different angle on a broader subject.\\n\\nMaking a blog about C# would be a bit too broad and not narrowly focused enough, but if you made a blog about C# where the theme is funny and informative C# stories, where you explained some C# concept using a funny story and perhaps a comic strip, that would be an excellent theme for a blog.\\n\\nYou can also combine multiple things together.\\n\\nI have a podcast (now a bit defunct) called “Get Up and Code.”\\n\\nThe podcast was about the intersection between programming and fitness.\\n\\nEither of those topics is too broad for a theme, but together, they create a much smaller niche that is tightly focused.\\n\\nThe key thing to think about is what kind of theme can you pick for your blog where you can be known for being number one in the world for a particular topic or niche.\\n\\nBrainstorm a list of possible themes and pick the most promising ones where you feel like you can dominate that particular niche and be number one.\\n\\nIf I asked you what is the number one blog in the world for teaching software developers soft skills, what would you say?\\n\\nHopefully, you’d say Simple Programmer.\\n\\n

How To Blog

\\n\\n\\n\\nBlogging is both easier and more difficult than it looks.\\n\\nIt’s easier, because all you have to do is write and then publish what you write.\\n\\nIt’s more difficult because writing is difficult.\\n\\nEven if you are an experienced writer, writing can be a challenge.\\n\\nI’m standing here at my desk, typing this chapter, and my head is constantly filled with doubts about what I am writing.\\n\\nIs this sentence good?\\n\\nAm I going the right direction with this chapter?\\n\\nWhy do my wrists hurt?\\n\\nUltimately though, you just have to do it.\\n\\nEverything you write won’t be good.\\n\\nWhen you first start writing, you’ll probably suck—that’s ok.\\n\\nEventually you’ll get better.\\n\\nYou have to trust the process.\\n\\nI do have a few tips that will help you to write your blog posts and make them as effective as possible, though.\\n\\nFirst of all, make sure you know what you are going to write before you write it.\\n\\nI highly recommend having a list of topics you are going to write about. When you sit down to write a blog post, pick one of those topics and start writing.\\n\\nFor this book, I outlined the entire book and decided on all the chapters before I started writing anything.\\n\\nNow when I get up in the morning and start writing, I know exactly what I’m supposed to write about.\\n\\nI don’t spend hours wasting time trying to come up with a topic.\\n\\nI do the same thing for my blog posts—well, most of the time.\\n\\nOne of the best ways to beat procrastination is to know what you are supposed to do.\\n\\nWhen you know what you are supposed to do, you are much less likely to procrastinate.\\n\\nNext, I’d recommend that if you need to do research, you do it all up front.\\n\\nIt’s much easier to write on a topic in which you are well-versed.\\n\\nSo go and explore the topic and do the research before you sit down to write.\\n\\nIf your piece is an opinion piece, you might not need any research, but you might want to sit down and gather your thoughts on the subject or even discuss it with someone.\\n\\nSome of my best blog posts come from conversations—or even arguments—I’ve had with someone about a topic the night before.\\n\\nYou’ll also want to create some kind of an outline before you start writing.\\n\\nI find it useful to come up with a rough outline of the different sections of the blog post or book chapter I am going to write before I sit down to write it.\\n\\nThis very chapter started from an outline in which I decided what major points I was going to cover.\\n\\nThis will give some structure to your posts. Plus, it’s encouraging to know that you need to write about this topic, followed by that topic, then that topic and then you are done.\\n\\nYou will also want to decide what kind of blog post you are going to write.\\n\\nHere are some of the common types of blog posts you could pick:\\n\\n

    \\n

  • How-to post showing how to do something.
  • \\n

  • Opinion post where you are expressing your opinion about a technology, framework, programming language, etc.
  • \\n

  • Opinion post where you are talking about a general concept or methodology and why it is good or bad.
  • \\n

  • News or current event where you report about something that happened or is going on.
  • \\n

  • Review, where you review a product or service.
  • \\n

  • Expert roundup where you get opinions from different experts on a topic.
  • \\n

  • Technology or news roundup where you round up a bunch of news or other posts on a topic, or daily or weekly posts about some subject.
  • \\n

  • Interview, where you interview someone and write it out as a post.
  • \\n

  • Resource, where you create a resource or guide about some technology, framework or tool.
  • \\n

  • Explainer post where you explain a topic to your audience so that they can understand it better.
  • \\n

\\n\\nAnd this list is by no means comprehensive.\\n\\nThere are hundreds of types of blog posts you could write.\\n\\nTry to keep your posts on topic, though.\\n\\nWhen you are first starting out, no one wants to know about your personal life and what you did today.\\n\\nOnce you build up an audience, some personal posts may interest them, but try to stay on topic as much as possible.\\n\\nThe key thing is that you just do it.\\n\\nGive it your best shot.\\n\\nIt doesn’t have to be perfect.\\n\\nIt doesn’t have to be a work of art.\\n\\nJust write something and post it. Get ‘er done!\\n\\n

The Power Of Consistency

\\n\\nIf you want to be a successful blogger, the most important thing you can do is be consistent.\\n\\nI don’t know any successful bloggers who don’t consistently produce content, but I know plenty of unsuccessful bloggers who very rarely update their blog and don’t have a consistent posting schedule.\\n\\nConsistency is key.\\n\\nPick some kind of schedule and stick to it.\\n\\nDon’t make it optional.\\n\\nDon’t blog only when you feel like it.\\n\\nPretend you work for a newspaper which has a deadline that has to be met and you have to publish your post, ready or not.\\n\\nIn fact, treat it like a real deadline and put in your calendar the exact time and date that each post is due to be published and the exact time and date you are going to write your posts.\\n\\nIf you know you have to have your blog post published at 10am every Monday and you’ve set a specific time on your calendar each week to write the post, you are much more likely to be consistent.\\n\\nIn the long run, consistency beats out every other factor.\\n\\nTrust me, there are going to be days and weeks where you just don’t feel like blogging at all.\\n\\nYou are going to have times when you aren’t seeing any results from your blogging and it is going to seem pointless and worthless.\\n\\nYou have to keep going anyway.\\n\\nDiscipline is doing what you are supposed to do whether you feel like it or not.\\n\\nAnd you need to have discipline to keep writing and to do it consistently.\\n\\nIn time, results will come. Most people are not patient or consistent enough to wait for results, and that is why most people fail to get what they want out of life.\\n\\nRemember that.\\n\\n

Getting Traffic

\\n\\nIt’s not fun creating a blog that never gets read.\\n\\nWhen I first started my blog at Simple Programmer, I’m pretty sure the three or four views I got each day were from my mom and perhaps a random coworker who was just curious what I was up to.\\n\\nBut I kept writing and I kept posting blog posts and eventually traffic came.\\n\\nWere there some things I did to increase the traffic specifically?\\n\\nSure, there were a few things, but overall the most important factors were consistency and time, and we’ve already covered consistency.\\n\\nOver the life of your blog, most of your traffic will likely come from search engines—to be more specific, from Google.\\n\\nIt used to be possible to game the search engines and stuff a bunch of keywords into your web pages or create a bunch of dummy links to your site (backlinks), that would cause your page and site to rank higher in Google searches.\\n\\nLong gone are those days.\\n\\nNot to say that you can’t do any kind of search engine optimization (SEO), but I wouldn’t waste a huge amount of time on these efforts, at least not at first.\\n\\nThe key thing is to create good content that people will want to share and link to.\\n\\nIf you keep creating good content, not only will people share that content and link to it from their sites, but they’ll bookmark your site and keep coming back for more.\\n\\nThere is no shortcut here, though; it just takes time.\\n\\nThe more blog posts you have out there and the more time they sit out there, the more likely it is going to be that you are going to have a least one post that goes “viral” and gets spread and shared quite a bit.\\n\\nThese viral posts increase your overall traffic permanently, as they are a signal to search engines that your blog is an authority on a subject and has good content.\\n\\nI’d recommend writing a few “epic” posts on your blog that will be so good that people can’t help but share them.\\n\\nCreate a few ultimate guides or posts that you consider the best resource on whatever topic you are writing about.\\n\\nFor example, I have an extremely popular post that I keep updated called “The Ultimate List of Developer Podcasts.”\\n\\nThis one post gets me 150 to 300 new visitors each day.\\n\\nPlenty of people link to it, tweet about it and share it, because it is really the best resource out there for software development and programming podcasts.\\n\\nAnother good strategy that is only effective when you are first starting out, is to comment on other people’s software development blogs.\\n\\nThis strategy won’t bring you a huge amount of traffic, but it can get you a few visitors a day and can start to get you some general exposure as people click on your profile or a link you provide and go back to your site.\\n\\nA popular blogger might even read one of your articles and like it enough to link to it on one of his posts, which would get you more traffic and a nice backlink.\\n\\nYou have to be careful with this tactic though, because you don’t want to just spam other people’s blogs, otherwise you’ll have the opposite effect and you’ll likely just have your comments deleted anyway.\\n\\nOnly add real, valuable comments which actually contribute to the post, and if you link back to your site, you’d better have a really good reason to do so.\\n\\nYou should, of course, share your posts on social media and do some basic SEO.\\n\\n\\n\\nIf your blog is a WordPress blog, you can find SEO plugins like Yoast SEO which will do most of the SEO work for you.\\n\\n

|Hey John| Can you explain what SEO is?

\\n\\n

Sure, SEO means search engine optimization, which basically means optimizing what you write so it’s more likely to be suggested by results in search engines like Google.

\\n\\n

There is a whole industry based around SEO, because for most websites, the largest source of traffic they’ll ever get is from Google searches. If you can optimize your content to rank highly for popular search terms, you’ll… well, you’ll have a lot of traffic.

\\n\\n

The only problem is, SEO is an arms race with Google.

\\n\\n

As people try and “game” SEO to trick Google into ranking their pages higher for certain search terms, Google is constantly tweaking their own algorithms to prevent people from manipulating the results.

\\n\\n

Google’s goal is the have the most relevant and valuable content surface for each search term so that the data they provide is more valuable to the end user.

\\n\\n

So, yes there are some things you can do to explicitly try and “trick” Google and there are some valid things you can do to give Google hints about your content, but overall the best long-term strategy is going to be to write the kind of quality content that is naturally going to rise to the top of search results because it is truly valuable.

\\n\\nOverall, what is going to matter most in getting traffic is writing high-quality posts, often, consistently, and over a long period of time.\\n\\n

Finding Your Voice

\\n\\nOne of the biggest mistakes I’ve found with new bloggers and writers, in general, is that they try to present everything as if they were writing an academic paper or news report.\\n\\nIt’s dry and bland and lacks any kind of character or spunk.\\n\\nIt’s ok to try and sound professional, but a writer without a unique and individual voice is just going to be boring as hell.\\n\\nThink about this book.\\n\\nIf you’ve read this far, you’ve no doubt been exposed to my voice in the writing.\\n\\nI’m not just telling you facts—or opinions, in my case—I’m presenting them in a unique way that is hopefully entertaining, but definitely is identifiable as my voice.\\n\\nNow, I’m no Hemingway or C.S. Lewis.\\n\\nI’ve got plenty that I can improve in my writing, but for the most part, I’ve found my voice.\\n\\nThat’s what you have to do—if you actually want people to read your stuff.\\n\\nFinding your voice isn’t easy, though.\\n\\nYou have to be willing to try things out and go to different extremes until you settle on what fits you best.\\n\\nAnd your voice will change at times, depending on your mood and what you are talking about.\\n\\nSome of the chapters I wrote in this book were much more “spunky,” others were a bit more on the dry side, but you should have gained some overarching kind of feel for who I am based on the way most of the chapters in this book were written.\\n\\nYour voice in writing is who you are.\\n\\nSomeone reading your posts shouldn’t just learn how to create an Android application using the latest Java framework, they should also get an idea of who you are as a writer and what your personality is.\\n\\nThat’s what makes writing interesting.\\n\\nAs much as humans are interested in technology, they are much more interested in people.\\n\\nPeople magazine will always outsell MSDN magazine—I promise.\\n\\nSo, don’t be afraid to insert some personality into your writing.\\n\\nGive it a little “spunk.”\\n\\nIt’s ok to have an opinion.\\n\\nIt’s even ok to have bad grammar—if it serves your purpose.\\n\\nTry a few different shoes and see which one fits.\\n\\nTry writing like you talk.\\n\\nTry writing in different styles and express yourself in different ways.\\n\\nTry throwing the word “fuck” into your writing and see how that feels.\\n\\nShake things up.\\n\\nI find that one of the best ways to find your natural range is to go to one extreme and then the other, pushing the envelope in both directions.\\n\\nYou’ll settle down where you feel most comfortable, which is usually somewhere in the middle, but with the capability to go to either extreme at any time.\\n\\nAnd remember, this is a process.\\n\\nI’ve written millions of words and I’m still going through this process myself.\\n\\nI’ll always be searching for my voice—and you will, too.\\n\\nAt first it will be difficult to find, but one day you’ll write a post and you’ll think “Damn, that was fricken sweet,” or “Shucks, that was a golly swell post,” or “Hot dog, I rock!” or “I felt that conveyed my sentiments very precisely.”\\n\\nGet it?\\n\\n

|Hey John| How do I deal with the “trolls” and “haters” who say negative things about my writing or post negative comments on my content?

\\n\\n

Ah, yes the trolls.

\\n\\n

Those people who have such critical opinions of what you are doing, but don’t seem to be producing anything themselves.

\\n\\n

There are plenty of ways to deal with trolls and haters, that range from ignoring them, to calling them out, to directly combating them with indisputable facts and figures, and even replying with your own absurdity to compliment theirs. (I’ve done all of these things.)

\\n\\n

But for the most part, the most effective thing to do is to ignore them.

\\n\\n

No matter what you do—especially if it is of any value or consequence–you are going to have haters and people who want to disparage you and make you feel bad.

\\n\\n

Rather than being angry at these people and letting them discourage you in any way, you should feel sorry for them.

\\n\\n

One human being does not lash out and attempt to destroy the work of another human being unless that first human being is in some kind of great pain themselves.

\\n\\n

Most of the time when someone is attacking you or your work it is more about them than it is about you.

\\n\\n

Perhaps, what you’ve said or even the very fact that you’ve done something with your life and produced something threatens them in some way.

\\n\\n

Perhaps, they are just having a bad day—or a bad life—and they are just crying out for help in the only way they know how; like a child looking for any form of attention that the world will give them.

\\n\\n

Regardless, however you decide to handle the situation, don’t let them take you down.

\\n\\n

Keep doing what you are doing, don’t take it personal, stay calm, and carry on.

\\n\\n

Keep Writing

\\n\\nI can only fit so much in this short chapter on blogging.\\n\\nI’m sure I could fill an entire book on the subject.\\n\\nSo, I tried to give you what I think are some of the most important ideas and concepts to get you started and keep you going.\\n\\nHowever, I want to leave you with one final piece of advice: keep writing.\\n\\nWriting is not easy.\\n\\nIt’s not always fun.\\n\\nFamous author, poet, and screenwriter Dorothy Parker, when asked if she enjoyed writing said, “I enjoy having written.”\\n\\nDespite how bad you might suck, how painful it feels and how much you think you just aren’t a writer and no one will possibly read what you wrote, do it anyway and keep doing it.\\n\\nIn time, you will improve.\\n\\nYou will get better.\\n\\nAnd if you keep at it long enough, the reward will come.\\n\\nIn high school I was in every advanced placement class they offered, except for one: AP English.\\n\\nI did AP Calculus as a sophomore, I took AP U.S. History, AP Biology, AP Chemistry, AP European History, but I was not allowed into the AP English class.\\n\\nTo put it bluntly, I sucked at writing.\\n\\nOr rather, I sucked at writing the way people wanted me to write.\\n\\nBut, here I am now, in many respects, writing for a living, having published one extremely successful book and pounding out another.\\n\\nMy first blog post was horrible.\\n\\nThe next few just as bad.\\n\\nBut the one I wrote last week… well, it’s halfway decent and it’s getting better all the time.\\n\\nIf I can do it, you can do it. All you have to do is keep writing.\\n\\n


\\n\\n

John Sonmez

John Sonmez

John Sonmez is the founder of Simple Programmer, author of "The Complete Software Developer's Career Guide" and "Soft Skills: The Software Developer's Life Manual." He helps software developers build remarkable careers.