7 Mistakes You’re Making In Your Programming Career
As a life and career coach for software developers, I've had the opportunity to talk to many programmers about how they can improve their careers and accelerate their growth.
Time and time again, I run into the same mistakes that many programmers are making over and over, and they aren't even aware of them.
I thought I'd list what I've found to be seven of the most common mistakes programmers are making in their software development career.
1. Not having a clear goal
Without a destination in mind, you'll just drift through life, going wherever the wind will take you.
If you want to have a successful career in software development, you need to know exactly where you are trying to go.
It's not good enough to have a vague idea of what you want to accomplish in some distant time frame.
Instead, you should have solid goals—and at any given point one large over-arching goal—that clearly defines what you are aiming for.
I've known many programmers and other professionals who have virtually had the same job with the same responsibilities for decades—yes, decades!
It's sad when that happens, but it's the default choice.
If you aren't clearly setting goals for the future, for your career, that will most likely be you.
So, what can you do about it?
Today, right now, take some time and think about your programming career and decide what your immediate goal is.
What I mean by this is, what is the primary thing you want to aim for, right now?
Once you hit this goal, you'll select a new one, but for right now, what is it that you'd like to accomplish in your programming career?
You might want to write this down and put it somewhere you can see it every day, so that you are continually reminded of what you are aiming for.
2. Not investing in non-technical or “soft skills”
I know a lot of programmers who are really good at writing code.
I know a lot of programmers who can algorithmically run circles around me. They can understand and think about complex architectures in their head at a level that I can't even hope to compete with.
But guess what?
Over the course of my software development career, I passed right by them, not just in terms of a promotion or job responsibility, but in pay, productivity, performance, and just about every meaningful measure.
I'm not saying this to brag, but just to illustrate the point of how important soft skills are to your programming career, rather than just those technical skills that so many programmers focus on.
As a software developer, I'm sure you know, it's not all about writing code.
There are many other important skills that are necessary to succeed.
We have to constantly deal with people, so people skills are a must.
In an ever-changing environment full of so many possible things to work on, we have to learn how to prioritize and how to be as productive as possible.
And let's not forget health and fitness as well as financial acumen, which if ignored can both lead to ruin.
I could go on and on, but just read my book “Soft Skills: The Software Developer's Manual” for a complete treatise on the subject.
The point is, in life, regardless of what you are doing, soft skills are almost always more important than hard, technical skills—so make sure you learn them.
3. Not being part of the community
One of the things that benefited my programming career, more than anything else, was getting involved in the community.
Not only did becoming part of something larger than myself, help me to not feel alone and to feel that I belonged somewhere, but it also helped to improve my skills, make new connections and to set my aspirations a little higher.
If you are not in someway involved in the programming community, I'd highly encourage you to get involved.
If you feel like your software development career is stagnating, there are very few things that will help you jump-start it better than joining a community of like-minded people who share your struggles and can offer advice to help you overcome them.
Being part of a community is also a great way to get noticed and make connections that can greatly benefit your career.
But, how can you join a community?
It's simple. There are plenty of Meetup groups all around the world, that you can simply join and attend a meeting.
You can also attend a Code Camp, which is an annual, free, local event where lots of software developers get together and share what they are working on. Usually anyone can sign up to present on any topic they want. It just so happens that I first learned about the opportunity to create Pluralsight courses at a Boise Code Camp speaker's dinner a few years back and then went on to create fifty-five courses for them.
If you don't want to meet up in person, you can also join virtual communities.
For starters, join the Simple Programmer community. There are plenty of great developers who comment on this blog and help each other out with questions or problems.
But, there are also plenty of other great communities online. Look for popular blogs, forums or even chat channels for software development related topics, you are interested in.
You can also join the community, by contributing to it directly. Start your own blog and start writing about what you know and what you are learning.
This blog was the first thing I ever did to become part of the larger community of programmers out there.
4. Not specializing
If you follow this blog and the content I put out on my YouTube channel and other mediums, or if you've read my book, you are probably sick of hearing about this topic, but it's so important that I'll talk about it every chance I get.
Pick a niche for yourself and specialize in that niche.
It doesn't mean that you can't have a broad base of knowledge as well—I'm a big fan of being a polyglot—but, also pick one area to focus your efforts on and dive deep.
It's very important, especially early on in your career, to be a specialist of some sort.
Specialists are always in much higher demand, they can get higher salaries and hourly rates, and they are able to build a reputation much faster.
Plus, there is a certain satisfaction in knowing that you know some software development area or technology very deeply.
You always want to be the big fish in the small pond and not the other way around.
You might eventually outgrow your pond—at which point you can venture out into deeper waters—but, starting out with a specialty is a great way to build up a name and reputation for yourself in the software development industry. (Which we'll talk more about next.)
Finally, don't worry about pigeon-holing yourself by picking a speciality—it rarely happens.
And you can't really specialize too deep. In all the years that I have been giving this advice, I've never run into anyone who was too deeply specialized.
5. Not investing in your personal brand
Throughout your life many things will come and go. You might change jobs. You might even change spouses. You might be rich or you might be poor. You might be fit or you might be fat, but regardless of what happens to you in life, one thing will stick with you forever…
So, since your name is going to be with you for your entire life, don't you think you should put some effort into it?
Your name, or your personal brand, is an extremely valuable asset that many software developers aren't even aware that they have.
A name, or personal brand, is an extremely powerful tool for getting a job, getting a promotion, landing a client or even starting your own business.
You could literally not have a pot to piss in and be dirt broke, but if you have a good name and reputation, you can turn everything around with a simple handshake.
I know plenty of software developers who will never have to worry about job security again, because they have invested the time and effort to build up a solid personal brand for themselves. They know that no matter what happens, they can get another job in hours, because they have a reputation and are well-known.
It seems natural to market products and services, but have you ever considered the value of marketing yourself?
To build a personal brand in the software development industry, I'd recommend starting out with creating a blog, picking a specific niche or speciality that you are going to be known for, and learning how to spread the word and get your name out there.
One of the best ways to do this is to create content that is useful to other people.
Take this blog, and this blog post, for instance. This blog is building up my personal brand and reputation on the internet. If you find this article or even my site valuable, you'll probably share it. You may even bookmark it and come back to it, or sign up for my email newsletter, so that you don't miss any posts.
That is just one way to grow a personal brand.
I also create YouTube videos, have my own podcasts, appear on lots of other people's podcasts, write guest posts, write magazine articles and books and speak at events.
That doesn't mean you have to do all those things, but that should give you a pretty good idea of what is possible.
If you are interested in really diving deep into the subject for building a personal brand and marketing yourself as a software developer, I put together a complete package that shows you exactly how to do it.
If you just want to start out with a blog—which is a great first step—sign up for my free blogging course.
6. Not working on a side-project
You should always have some kind of a side-project you are working on.
A side-project has many benefits you might not be aware of.
First of all, working on a side-project is a great way to improve your skills, especially in areas that you might not be able to work on at your regular job. Working on a side-project can help you grow your skills at a much faster rate than you would just working your 9-to-5 job.
Working on a side-project is also a great way to develop new skills and learn new technologies that can benefit you if you ever need to look for a new job. I talk to plenty of programmers who complain that they don't get a chance to work on new technologies at their current job, so their skills are not relevant to the current job market. I always advise those programmers to work on some kind of a side-project, using the new technology they want to work with, as a great way to develop relevant skills.
And, let's not forget about the possible financial benefits of working on a side-project.
You might not start a side-project to make money, but a side-project can be a great way to make some extra income.
I started working on a running app for Android and iOS as a side-project about 4 years ago and I'm still making some money from it today.
I also know plenty of software developers who started side-projects that eventually became their full-time jobs.
In fact, I'm one of those developers. This blog itself, and the other components around Simple Programmer, is now my full-time work. I like to call myself a life-coach for software developers, but I suppose you could say that I am a full-time blogger.
A side-project can also be a lot of fun.
Sometimes a side-project can be nice stress relief from the work you have to do, but don't necessarily enjoy. A side-project can be a good outlet that gives you something to look forward to each day and makes you feel more relaxed or to unwind.
7. Not having a plan for self-education
Whenever I interview a software developer, one of the first questions I ask them is about their plan for self-education or continuous self-improvement.
What are they doing to better themselves?
I often ask about what they do to stay up-to-date in the ever-changing field.
I often ask about what books they have recently read and what they consider the best book that all software developers should read.
I'm looking for answers that tell me they have an actual plan for educating themselves and constantly growing, because I know a person dedicated to continual self-improvement is not only going to be successful, but is going to make people around them successful as well.
Yet, so many programmers have no plan at all for any kind of self-education.
If you don't have some kind of plan for how you will continually learn new things and sharpen your skills, you need to develop one right away.
Want a simple plan?
Just commit to reading one technical or career-development book each month.
In a year you'll have read 12 books.
I personally devote at least 45 minutes a day, while I'm walking on my treadmill, to reading something that will help me further my goal of personal development.
Remember, little things add up over time. Just setting aside even 30 minutes a day, each day, can make a huge difference over a year or two.
Take some action
Hopefully you found this list of common mistakes useful, but it won't do you any good if you don't take action.
So, don't just read this article and nod your head, instead take action—today.
Pick at least one mistake that you know you are making and commit to fixing it.
Leave a comment below and share what you are committing to.
If you are really brave, tweet out your commitment to make it public.