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.
I have to admit I’m a little bit biased.
After all, you probably wouldn’t be reading this 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.”
I had no idea what I was doing.
I had no ambitions.
I just wanted to share my thoughts and my experiences, mostly with my work team, since I knew they would likely read my blog.
But I kept writing, week after week.
And then things started to happen.
Amazingly, 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.
I started getting job offers and opportunities.
Eventually I took one opportunity to create some online courses for a small—at the time—company called Pluralsight.
In three years time, I ended up creating 55 courses for Pluralsight and making literally a few million dollars in royalties.
I got invited to speak on podcasts and at conferences and events.
The 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.
I 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.
Eventually, I quit my full-time job and started to work on Simple Programmer full time.
My little blog from 2009 was providing me a full-time income.
Today, that blog is still growing.
Today, Simple Programmer employs three people full time, and many part-time contractors.
Simple 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.
It all started from a blog and a simple message to make the complex simple.
I’m not special: if I can do it, so can you.
The journey may not be easy, but in this chapter, I’ll share with you what I know.
This post is a chapter from my upcoming book The Complete Software Developer's Career Guide. If you enter your favorite email address here, I'll send you the prior chapters and get you caught up – then send every new chapter as it comes out!
Why a Blog Is Still Your Best Choice
Today, I get more traffic to my YouTube channel each day than I do to my Simple Programmer blog.
But I still think blogging is the best choice for most software developers (although you should consider YouTube as well).
The reason why is simple: it’s low barrier to entry and it's extremely effective.
For 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.
Yes, there are quite a few blogs out there now, but most of them don’t have many posts and are not regularly maintained.
If you blog regularly and consistently, it’s almost guaranteed that someone searching for your name on the internet will find your blog.
This 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.
Countless 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.
And the best part is, it’s so easy.
Yes, 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.
Think 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.
Aside from the external opportunities blogging offers you, it offers some great personal development opportunities as well.
I don’t think there is any better way to improve your communication skills than writing.
Writing teaches you to organize your thoughts clearly in a way that other people can understand.
The more you write, the better of a communicator you’ll become in general.
Blogging 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.
I’m always searching my own blog for answers to current problems that I know I’ve solved or talked about in the past.
Every software developer should have their own blog: it’s like a lightsaber for a Jedi.
How to Create a Blog
Alright, so you are convinced you need a blog, great!
But how do you actually create one?
(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.)
My first advice is not to create one… well, I mean not to create one yourself.
Many software developers are tempted to create their own blog, from scratch, and not use an off-the-shelf solution.
This is a bad—nay, horrible—idea.
The point of blogging is not to exercise your ability to write blogging software, which is more difficult than you think.
The point of blogging is to build your reputation, get your name out there, and record your ideas, not to increase your development skills.
It’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.
Plus, 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.
In 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.
I use WordPress for all of my websites because it is that flexible and easy to use.
Creating your blog with WordPress is extremely easy.
The first thing you need is a host.
Currently, 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.
I 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.
Bluehost is a good choice if you are looking to save money initially, and you don’t anticipate a huge amount of traffic.
WP Engine is a bit more robust and scalable, so it can handle heavier loads, but is a bit more expensive.
Once you’ve picked your host, you need to get your blogging software installed.
For Bluehost, it’s an extremely simple process. Just a few clicks.
For WP Engine, it’s even easier, since you already get WordPress installed when you set up your account.
If 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.)
I’d highly recommend registering your own custom domain to go with your new blog.
Don’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.
Your 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.
You 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.
In fact, if you’ve been procrastinating on starting your blog, finish this chapter, then do it today. You’ll be glad you did and it’s not that difficult to do.
Picking a Theme
One 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.
When 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.)
But, let’s get back on topic. What I mean is, what is your blog about?
How are you going to describe your blog and what are you going to focus on?
This is essentially the same as your specialization or niche.
You want to make the theme of your blog very focused and small initially. You can always expand it later.
So for example, you might create a blog all about using the ListView control in Android.
This 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.
By 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.
It 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.
So try to 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.
You can also make your theme a bit unique by taking a different angle on a broader subject.
Making 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.
You can also combine multiple things together.
I have a podcast (now a bit defunct) called “Get Up and Code.”
The podcast was about the intersection between programming and fitness.
Either of those topics is too broad for a theme, but together, they create a much smaller niche that is tightly focused.
The 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.
Brainstorm 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.
If I asked you what is the number one blog in the world for teaching software developers soft skills, what would you say?
Hopefully, you’d say Simple Programmer.
How to Blog
Blogging is both easier and more difficult than it looks.
It’s easier, because all you have to do is write and then publish what you write.
It’s more difficult because writing is difficult.
Even if you are an experienced writer, writing can be a challenge.
I’m standing here at my desk, typing this chapter, and my head is constantly filled with doubts about what I am writing.
Is this sentence good?
Am I going the right direction with this chapter?
Why do my wrists hurt?
Ultimately though, you just have to do it.
Everything you write won’t be good.
When you first start writing, you'll probably suck —and that's ok.
Eventually you’ll get better.
You have to trust the process.
I do have a few tips that will help you to write your blog posts and make them as effective as possible, though.
First of all, make sure you know what you are going to write before you write it.
I 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.
For this book, I outlined the entire book and decided on all the chapters before I started writing anything.
Now when I get up in the morning and start writing, I know exactly what I’m supposed to write about.
I don’t spend hours wasting time trying to come up with a topic.
I do the same thing for my blog posts—well, most of the time.
One of the best ways to beat procrastination is to know what you are supposed to do.
When you know what you are supposed to do, you are much less likely to procrastinate.
Next, I’d recommend that if you need to do research, you do it all up front.
It’s much easier to write on a topic in which you are well-versed.
So go and explore the topic and do the research before you sit down to write.
If 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.
Some of my best blog posts come from conversations—or even arguments—I’ve had with someone about a topic the night before.
You’ll also want to create some kind of an outline before you start writing.
I 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.
This very chapter started from an outline in which I decided what major points I was going to cover.
This 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.
You will also want to decide what kind of blog post you are going to write.
Here are some of the common types of blog posts you could pick:
- How-to post showing how to do something.
- Opinion post where you are expressing your opinion about a technology, framework, programming language, etc.
- Opinion post where you are talking about a general concept or methodology and why it is good or bad.
- News or current event where you report about something that happened or is going on.
- Review, where you review a product or service.
- Expert roundup where you get opinions from different experts on a topic.
- 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.
- Interview, where you interview someone and write it out as a post.
- Resource, where you create a resource or guide about some technology, framework or tool.
- Explainer post where you explain a topic to your audience so that they can understand it better.
And this list is by no means comprehensive.
There are hundreds of types of blog posts you could write.
Try to keep your posts on topic, though.
When you are first starting out, no one wants to know about your personal life and what you did today.
Once you build up an audience, some personal posts may interest them, but try to stay on topic as much as possible.
The key thing is that you just do it.
Give it your best shot.
It doesn’t have to be perfect.
It doesn’t have to be a work of art.
Just write something and post it. Get ‘er done!
The Power of Consistency
If you want to be a successful blogger, the most important thing you can do is be consistent.
I 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.
Consistency is key.
Pick some kind of schedule and stick to it.
Don’t make it optional.
Don’t blog only when you feel like it.
Pretend you work for a newspaper which has a deadline that has to be met and you have to publish your post, ready or not.
In 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.
If 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.
In the long run, consistency beats out every other factor.
Trust me, there are going to be days and weeks where you just don’t feel like blogging at all.
You are going to have times when you aren’t seeing any results from your blogging and it is going to seem pointless and worthless.
You have to keep going anyway.
Discipline is doing what you are supposed to do whether you feel like it or not.
And you need to have discipline to keep writing and to do it consistently.
In 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.
It’s not fun creating a blog that never gets read.
When 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.
But I kept writing and I kept posting blog posts and eventually traffic came.
Were there some things I did to increase the traffic specifically?
Sure, there were a few things, but overall the most important factors were consistency and time, and we’ve already covered consistency.
Over the life of your blog, most of your traffic will likely come from search engines—to be more specific, from Google.
It 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.
Long gone are those days.
Not 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.
The key thing is to create good content that people will want to share and link to.
If 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.
There is no shortcut here, though; it just takes time.
The 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.
These 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.
I’d recommend writing a few “epic” posts on your blog that will be so good that people can’t help but share them.
Create a few ultimate guides or posts that you consider the best resource on whatever topic you are writing about.
For example, I have an extremely popular post that I keep updated called “The Ultimate List of Developer Podcasts.”
This one post gets me 150 to 300 new visitors each day.
Plenty 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.
Another good strategy that is only effective when you are first starting out is to comment on other people’s software development blogs.
This 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.
A 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.
You 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.
Only 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.
You should, of course, share your posts on social media and do some basic SEO.
If your blog is a WordPress blog, you can find SEO plugins like Yoast SEO which will do most of the SEO work for you.
|Hey John| Can you explain what SEO is?
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.
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.
The only problem is, SEO is an arms race with Google.
As people try to “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.
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.
So, yes there are some things you can do to explicitly try to “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.
Overall, what is going to matter most in getting traffic is writing high-quality posts, often, consistently, and over a long period of time.
Finding Your Voice
One 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.
It’s dry and bland and lacks any kind of character or spunk.
It’s ok to try to sound professional, but a writer without a unique and individual voice is just going to be boring as hell.
Think about this post.
If you’ve read this far, you’ve no doubt been exposed to my voice in the writing.
I’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.
Now, I’m no Hemingway or C.S. Lewis.
I’ve got plenty that I can improve in my writing, but for the most part, I’ve found my voice.
That’s what you have to do—if you actually want people to read your stuff.
Finding your voice isn’t easy, though.
You have to be willing to try things out and go to different extremes until you settle on what fits you best.
And your voice will change at times, depending on your mood and what you are talking about.
Some 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.
Your voice in writing is who you are.
Someone 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.
That’s what makes writing interesting.
As much as humans are interested in technology, they are much more interested in people.
People magazine will always outsell MSDN magazine—I promise.
So, don’t be afraid to insert some personality into your writing.
Give it a little “spunk.”
It’s ok to have an opinion.
It’s even ok to have bad grammar—if it serves your purpose.
Try a few different shoes and see which one fits.
Try writing like you talk.
Try writing in different styles and express yourself in different ways.
Try throwing the word “f*ck” into your writing and see how that feels.
Shake things up.
I 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.
You’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.
And remember, this is a process.
I’ve written millions of words and I’m still going through this process myself.
I’ll always be searching for my voice—and you will, too.
At 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.”
|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?
Ah, yes the trolls.
Those people who have such critical opinions of what you are doing, but don’t seem to be producing anything themselves.
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 complement theirs. (I’ve done all of these things.)
But for the most part, the most effective thing to do is to ignore them.
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.
Rather than being angry at these people and letting them discourage you in any way, you should feel sorry for them.
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.
Most of the time when someone is attacking you or your work it is more about them than it is about you.
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.
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 the world will give them.
Regardless, however you decide to handle the situation, don’t let them take you down.
Keep doing what you are doing, don’t take it personally, stay calm, and carry on.
I can only fit so much in this post on blogging.
So, 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.
However, I want to leave you with one final piece of advice: keep writing.
It’s not always fun.
Famous author, poet, and screenwriter Dorothy Parker, when asked if she enjoyed writing, said, “I enjoy having written.”
Despite 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.
In time, you will improve.
You will get better.
And if you keep at it long enough, the reward will come.
In high school I was in every advanced placement class they offered, except for one: AP English.
I 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.
To put it bluntly, I sucked at writing.
Or rather, I sucked at writing the way people wanted me to write.
But, here I am now, in many respects, writing for a living, having published one extremely successful book and pounding out another.
My first blog post was horrible.
The next few just as bad.
But the one I wrote last week… well, it’s halfway decent and it’s getting better all the time.
If I can do it, you can do it. All you have to do is keep writing.