What would you think if you were interested in buying some new product you heard about, but when you went to the company that created the product’s website you found it wasn’t there, because they didn’t have a website?
Today, we expect pretty much every reputable company to have a functioning website.
But, many developers—web developers included—don’t have any kind of online presence of their own.
Sure, you may have social networking accounts, like Facebook and Twitter, but do you have a website that you own which you can point people to as your castle on the web?
The importance of having a home base for marketing yourself
I’ve talked before about how important it is to market yourself as a software developer, but I’ve never really gone into the details of how.
I’ll be creating a series of posts dealing with the subject of marketing yourself over the next few months, starting with this post on what I believe is the cornerstone to any success software developer’s self promotion strategy, building a blog.
As you’ll see in this series, it is actually pretty easy to get started creating a blog—probably simpler than you may think. But, before we get into the details, let’s take a moment to talk about why it is so important to have a home base on the web, especially for a software developer.
It really begins with how you view yourself as a software developer and your software development career. Many, if not most, developers view themselves as a software developer who does a job. For the most part, there is nothing really wrong with this view, but it is not the best way to think about what you do.
Instead, you are better off thinking of yourself as a business. Sure, it may be a one man or one woman business, but the truth of the matter is that you are providing a service to a client, even if that client happens to be your boss.
When you think of yourself and your career as a business that you are building, you suddenly are no longer exempt from needing a web presence. Just like we might think it would be pretty bizarre for a company that we do business with to not have a website, your clients and customers will think it is bizarre if you don’t have one—especially if you are a programmer that specializes in web development.
For most developers, your blog will be your main presence, or your home base on the web. Your blog is a chance to tell the world about what you are doing and show what you can do, and to completely control the message and image you present. This is an extremely powerful concept, because it allows you to shape the way potential and present customers and clients see you and can really increase your exposure.
This really is the key to marketing yourself online.
But, I don’t have anything interesting to talk about
Hogwash. That excuse is just no good. Everyone has something interesting to talk about.
This is an excuse I hear pretty often, and it seems like a good one—until you really sit down and think about it.
As a beginner, it can seem like you are not good enough; like what you have to say isn’t important; like there are so many other people that have much more valuable advice and opinions. But, the truth is different people at different levels in their knowledge of a subject, or with different kinds of combination of subjects they have knowledge about, can reach and provide value to different sets of people.
Let me break that down a bit.
What I mean to say is that just because you are learning C++ and there are C++ gurus out there with 30 years of experience and more knowledge about C++ then you may ever have, doesn’t mean that you don’t have something valuable to offer.
Sure, Herb Sutter might know more about C++ than you, and other C++ experts may gain valuable information from his blog, but can he reach the C++ beginner, like you, that is just starting out as well as you can? Probably not.
The truth is sometimes an amateur can reach other amateurs better than a professional can.
The truth is sometimes a woman can reach other females better than a man can.
The truth is sometimes a younger 20 something person can reach other 20 something people better than a programming dinosaur can or vice versa.
Chances are if you find it interesting, someone else does to. So, stop using that excuse. You can create a blog and it can provide value. You just have to be willing to put in the work.
I’m not looking to advance my career or sell something
Again, I have to say this excuse is a bit short-sighted. You might not be looking for another job right now, or to move up the ladder, but chances are, at some time in the future, you will be.
The biggest mistake I see developers make with career advancement is waiting until they need a job to start doing things like networking or blogging.
This is a bad idea, because it reeks of desperation and building up momentum, be it with blogging, networking, or something else, requires time.
Ideally, you want to start your blog and start using it to market yourself and your skills, before you need to. Then, if the well ever dries up, you’ll have plenty of prospects.
The same goes with selling something. You may think that you’ll never have something to sell, but if you ever write a book or decide to sell some consulting hours, having a blog can bring you clients and prospects instead of you having to go out and search for them.
Ok, so hopefully, I’ve convinced you to at least consider creating a blog that will serve as your home base on the web– which will be your primary tool for marketing yourself online.
I can’t tell you how many opportunities have come to me from having this blog that I would have never expected.
But, you may be wondering how to get started with creating your blog. If you are like me, you probably want to know what options you have and how to pick the best one.
In my next post, I’ll talk about the 3 main options for creating a blog, give you the one I personally recommend, and give you one really important piece of advice that you won’t want to ignore.
Just check back next week, or you can sign up here to get updates, so I can let you now when the next post goes live or when something else interesting is happening at Simple Programmer.
And if you can’t wait till next week, take a look at this book: Technical Blogging: Turn Your Expertise into a Remarkable Online Presence. (It is from a fellow developer who gives some tips on creating a successful blog.) I really enjoyed this book and found some great tips in it.
Oh, and if you are super excited about the idea of learning to market yourself as a software developer to boost your career, I am taking limited pre-sales for my new complete course and package “How To Market Yourself as a Software Developer.” I’ll announce more about this later, when it is ready for an official launch, but if you are quick, you can get in early and help shape the course.
Do you want to get a better job?
Want to make more money?
Perhaps you just want to get a promotion at your current job or open more opportunities.
Good, you are not alone. Who doesn’t want to make more money and be more successful or have better opportunities?
The problem is most software developers don’t realize that they always need to be actively marketing themselves.
1. Start a blog
I’m going to start with the most obvious thing and it really shouldn’t take you much convincing, since you are reading my blog right now.
A blog allows you to show the depth of your knowledge much better than you could possibly do in a resume or in a short job interview.
Hiring software developers is a gamble because anyone can make up some experience or pretend to know how to program. A candidate for a software development job can even memorize common interview questions or be exceptionally good at interviewing, but it is pretty hard to fake a blog.
More importantly though, since this post is about marketing yourself as a software developer, a blog puts your name out there in the search engines for a variety of topics.
All kinds of opportunities have come my way via my blog. Almost every major advancement in my career over the last 3-4 years has in some way been a direct result of my blog.
Do you know of any “famous” software developers that don’t have a blog?
Perhaps you do, but there aren’t many. So it goes to show you, if you want to get your name out there, it is essential to have a blog.
Starting a blog is pretty easy. In fact, if you are reading this post, there is a good chance you’ve already started a blog, but perhaps you haven’t seen much success from it. That is probably due to the hard part about blogging, which is keeping up with it.
Anyone can start a blog, but to be successful at it and to really see its benefits, you have to be consistent. This doesn’t mean you have to blog 3 times a week, but it does mean that you have to be blogging at some regular interval and you have to keep it up for a long time.
An easy way to get started is to use a shared hosting plan, like the one I am currently using at BlueHost, to create a simple WordPress site very quickly for a very cheap price. If you get bigger, you eventually might need to scale out, but this is a good and fast cheap way to get started.
2. Build a network
Selling is easy if you don’t have to sell.
What I mean by this is that it is much easier to “sell” a product into an existing audience than it is to go out and look for people to buy your product.
No one wants to be sold anything, but people like to find solutions for their problems and help people they like.
So what does this have to do with marketing yourself?
Well, the next time you need a job or you are looking for a new opportunity, or even if you planning on selling a product or starting your own business, don’t you think it would be great if you could just reach out to people who already know and like you rather than cold calling recruiters or sending out impersonal cover letters en masse?
The best jobs I’ve gotten in my career and every good opportunity has been the result of someone from my network either bringing the opportunity to me or helping me get my foot in the door.
I am actually working on a product right now that will help software developers learn to market themselves and when I launch this product I’ll already have a large audience of potential customers from my network.
Building a network isn’t difficult, but it takes time and it does take some effort. Networking is not about finding out what other people can do for you, but finding out what you can do for other people.
The easiest way to build a network is to start helping people and taking an interest in what they are doing.
You should have the mindset of always networking. Every new person you meet, every person you interact with online is potentially someone who can become part of your network.
You also have to get out, meet and interact with people, both offline and online. There are many ways you can do this:
- Join local user groups
- Go to conferences
- Blog and comment on other people’s blogs
- Ask people in your network to introduce you to people they think you should meet
- Follow and interact with them people Twitter and other social networks
- Host your own dinner or get together about a topic you are interested in
And remember networking is all about what you can do for someone else, not what they can do for you; whether you believe in it or not the principle of Karma is real.
3. Build a personal brand (the best way to market yourself as a software developer)
You hear about personal brands quite a bit these days, but people are often pretty confused about what a personal brand is.
I overheard someone on a HGTV design show talking about how their personal brand was all about industrial looking modern designs or some other hogwash like that.
That person, although they were an experienced designer, didn’t understand the key concept about a personal brand: it is no different than corporate branding.
Branding is all about sending a consistent message that is recognized by some repeated stimulus which when seen instantly reminds the viewer of that message.
For example, when you see the famous golden arches, you probably think McDonalds. And when you think McDonalds, you probably think Big Macs, Quarter Pounders, Happy Meals and Egg McMuffins.
No matter where you go, if you are driving down the highway and pull off an exit to go to a McDonalds, you have a certain set of expectations about that place, which you have come to expect from repeated exposures to a consistent message associated with a distinct set of imagery.
Building a personal brand is no different than building a brand like McDonalds or Starbucks or any other brand. Decide what imagery you are going to use, and the message you are going to convey, and do it consistently.
For instance, if you come to my blog, you have a certain set of expectations about what kind of posts you will see here. You know that you won’t see some crap that I threw together in 5 minutes just so I can get a post out. You know that you are likely to get something technical, like Getting Started with Dart, or something more about developer psychology and principals, like this post.
I don’t have the budget of a company like McDonalds, and I’m still learning about personal branding myself, but everywhere I go I try to present a consistent visual image and message.
I use the same logo for Simple Programmer everywhere, and I include the same headshot, and almost all of my content somehow relates back to the idea of making the complex simple. That is what I do. I make the complex simple, whether through creating online courses for Pluralsight, writing articles in my blog, doing YouTube videos or even podcasting about Health and Fitness.
I want you to understand that when you see my logo or you see my name, you are going to be dealing with someone who genuinely wants to help you understand things that sometimes seem complex and understand how simple they really are.
So, if you want to get started building a personal brand, decide your message, decide the visualization you want to associate with that message, and start using it consistently everywhere you can.
It is all about changing your mindset
Marketing isn’t easy, but it is an essential skill that most software developers don’t realize they need to have.
Most software developers—myself included, for most of my career—think of career advancement in terms of acquiring new skills and climbing the corporate ladder, but a much more effective way to think about career advancement is to think of yourself as a business and treating your skills and unique talents as an offering that you actively promote.
This fundamental change in mindset is critical to taking your career to the next level and making a name for yourself in the world of software development. That is exactly why I am building a product around this idea that will show you exactly step-by-step how to do it.
If you are really eager to be one of the first to find out what I am doing and want to know about this mysterious product the moment it comes out, you can reserve your spot in line, by signing up here. I’ll be offering some free goodies and other stuff to some of the first people who sign up as I get closer to the product launch and need to get some early testers.
Strangely enough, this post is about why I blog.
I try to avoid posts about blogging, but I thought it might be worthwhile to think about and explain why I blog.
The mental exercise of blogging provides an opportunity for me to…
Refine my own thoughts
When I think about the why I blog, this one reason sticks out the most to me.
Sometimes, I don’t enjoy writing. Sometimes a post doesn’t end up just flowing out of my finger tips—it feels more like I am yanking a tooth out. But, I always have to go through a process of refining my thoughts on a subject and there is definitely value in that process.
Since I’ve started writing and teaching, I’ve found that my head is full of plenty of undeveloped ideas about many different topics. I’ve learned that on almost all subjects that I haven’t thoroughly examined, I have large holes and gaps in the path which leads to the conclusions I’ve formed about those subjects.
I’ve often said that you don’t truly learn something till you teach it, but before you can teach it, the thought must be refined in your own head.
Sometimes I like to think of my blog as a place where I am teething on my own thoughts. It’s often a painful process that takes a long time, until finally the enamel of a fully formed hardened idea erupts from my skull.
I’ve found that as I do blog, I start to really refine my thoughts about a subject and develop strong convictions on that subject.
Holding them loosely
I’ve come up with a saying that explains quite a bit about me.
I have strong convictions which are loosely held.
At first, this might seem like a contradiction, how loosely can you hold convictions that are strong, or how strong can they be if they are loosely held?
To me, the answer lies in the alternative. How useful is it to have weak convictions about things? To me having a weak conviction is akin to not having thought long and hard enough about a subject to form a strong conviction.
As for holding onto that conviction loosely. I basically say that I reserve the right to change my mind. There is no point in holding onto any conviction tightly, because that conviction’s soundness should be based on logic and reasoning. When that conviction’s foundation fails, so falls the conviction.
I try to live my life adhering to this principle. This is one of the reasons why you’ll find some of my posts contradictory. I’ll start out being sure of one thing, but a year later, I’ll be convinced of just the opposite. You, as a reader, are watching me grow.
Now, some people might say this makes me a waffler and unsteady, but I think I’d rather be called either of those than be stubborn or wishy-washy. I don’t see that there is a middle ground in this area.
I also tend to think of and use my blog in that way.
There are many times when I do a search on my own blog to either look for a solution to a problem that I can’t recall, or to find out why I did a certain thing a certain way. I find the blog not only captures the solution, but how and why I was thinking about a particular problem or technology.
Sometimes I just search my blog to find out what the heck I was thinking at a particular time or to self-check my progression through time to see if the present me has gained any wisdom over the past me.
In that same regard, I find that perusing my early posts is often a humbling experience. It is good to humble yourself every once in a while. It is much better to do it yourself than to have someone else do it for you. I try to remember that.
Also this reference often comes in handy when needing to quickly explain my thoughts on a matter to someone without having to try and rehash it right there on the spot. In a discussion or in answer to a question, I can often give someone a link to a blog post I have written on a subject which gives a detailed explanation of my thoughts on that subject.
Career and opportunity
I’d be lying and doing you a great disservice in representing the truth, if I tried to claim that none of my motivation for blogging comes from my own material gain.
Now I don’t get paid to blog—and I assure you when you click on one of my few Amazon associate links, I don’t get paid anything more than it basically costs to host this blog—but I cannot tell you how this blog has helped my career and opened opportunities which I would have never had before.
I’ve always felt that a blog is far better than any resume. Want to know what I think on a subject or my knowledge on an particular area? Search my blog. What to see if I am consistent or if I am actually improving my skills and learning anything over time? Check my blog.
With a traditional resume, we are often constrained to what can fit on a page or two. It is very difficult for me to explain the totality of my experience and journey as a developer in two pages, especially when I have to cram 50 keywords in there as well so that it doesn’t get filtered out by resume scanning software.
Now, not every prospective employer will look at my blog, but the ones that do and really take it into account are much more likely to be the ones that I would like to work for anyway.
Aside from just W-2 or salaried income, I feel that my blog is a launching point for so many other opportunities. Through my blog I’ve gotten opportunities to meet people I would never have met before, invitations to speak at various events, invitations to write books and plenty of opportunities to train on consult.
I’ve also found that my blog is a great medium for conveying ideas or viewpoints sometimes subtly to coworkers or management. It’s not always easy to come right out and say something, and often that approach is not best anyway.
Posting a blog post on a subject affords me the opportunity to really think about an idea and to make sure my ideas are well baked before they are presented. It also assures that my message will be heard and digested instead of quickly reacted to.
One of the main reasons I blog is that I am planting seeds that will grow my professional career. I like that idea. It makes me feel like I am building something that has lasting value rather than just getting work done for the day.
A sounding board
Often my blog serves the purpose of checking my ideas against reality. It is amazing what kind of crazy notions you can come up with just thinking about ideas in your head.
I’ve often posted on certain topics, because I am not sure what I think or I have an idea of something and I want to get a gauge from the general community if my idea makes any sense outside my head.
I’ve had plenty of posts where I’ve learned much more from the comments than I have in preparing the post. (Although sometimes it is a painful process to do so.)
Learning to write
When I look back on my earliest posts, I can definitely see a progression in my writing skills.
Writing is an important skill in just about any career, since we are always communicating our ideas.
I’ve found that the ability to effectively communicate ideas in writing ties directly to my ability to communicate ideas in all other mediums as well.
Writing, to me, is an exercise in thinking. The more I write, the better I learn to think and to express my thoughts.
So the next time you read one of my blog posts and you think "hey, that guy doesn’t know what he is talking about." you are probably right!
Remember, I am just teething on my thoughts; I may come to a completely different conclusion tomorrow or next year.
Feel free to set me straight, I won’t be offended.