Some of the best software developers I know didn’t start out their careers with any interest in software development.
It may be difficult to believe, but sometimes having a different background—in a completely unrelated field—is a huge benefit when going into the field of software development.
I’m not entirely sure why this is the case (although I have some ideas of course), but time and time again, I’ve seen software developers with only a few years’ experience, but broad experience in another field, end up surpassing software developers with much more experience.
If you are thinking about becoming a software developer, but you’ve been in another, unrelated field for some time, hopefully this chapter will provide you with encouragement and some ideas of how to best make that transition.
The Benefits of Switching Mid-Career
Most of what I am going to be talking about here is my own speculation, since I started out my career in software development and later transitioned into the role I am in now, rather than starting out in some unrelated field.
But, like I said, I’ve met enough really successful software developers who started out in completely different fields to have at least a rough idea of what makes them so successful.
One huge benefit I’ve observed for people who have switched into software development from another field is that they often bring with them a large swath of people skills and soft skills that are more rare in the software development field.
It’s no secret that software developers sometimes tend to lack these people skills and other soft skills, and that I find them to be extremely valuable (obviously, since I wrote a book teaching them and have pretty much built an entire business around the idea).
I find that those soft skills which may be developed in other professions translate really well into the software development field and have the tendency to move people who possess them ahead of the normal learning curve.
Having them may give you a distinct advantage, especially if you worked in a field where soft skills or people skills were highly valued.
I’ve also found that the mindset of success tends to be widely applicable, and that if a person is successful in one professional vocation, the chances are they’ll be successful in any vocation they pursue.
You’ll likely find this to be the case if you are currently in another field—even a very distantly related one—when beginning to make the transition.
Finally, I would say that the ability to think outside of the normal constraints that many software developers and highly technical people think within can be a huge advantage as well.
There is a high tendency for what is called “cargo-cult” programming where programmers are likely to do things not because they work, but because other developers are doing them and they are seen as “best practices.”
Having an outside perspective can give you the advantage of thinking in a way that is unclouded by preconceived notions and ideas that are a bit pervasive in the programming community.
While brand new software developers without any experience in any vocation may also have this same perspective, they are often more susceptible to falling into the same traps because they lack the depth of experience and confidence in their own thinking that someone with more experience likely possesses.
Again, I don’t know the exact magic formula that seems to make software developers who started in a different background so successful, but those are a few of my ideas.
The Disadvantages
I don’t want to paint an overly rosy picture of switching into software development from another field.
It’s certainly not easy and there are definite disadvantages.
It’s also true that you are not guaranteed to be a stellar programmer just because you used to be a nurse.
One huge disadvantage that blindsides many transitioning developers is the complexity and amount of knowledge required to be a computer programmer.
There are plenty of fields where you could learn something in college or even have some on the job training, and in a few months you’d be able to do the job.
I’m not saying that software development is the only difficult field there is or that anyone can do another vocation without training, but software development is many magnitudes more difficult than the average profession.
Yes, that statement may piss some people off, but it’s completely true.
In fact, if you are having a difficult time accepting that statement, you might have a difficult time making the transition, because you will likely not be prepared for all you need to learn.
So, it can definitely be a disadvantage to come into this field thinking it’s just like any other field or job you can learn.
You will have to do a good deal of studying and intentional practice to become even mildly proficient in this field—which is part of the reason for writing this long volume.
Another major disadvantage is obviously time.
This can be overcome somewhat by the advantages I listed above, which can accelerate your learning curve, but you are still going to have to play some catch-up if you want to fill the holes in your knowledge caused by a lack of direct experience.
Even if you have only spent three years in the field, and are as good as a software developer who has spent 10 years, you are still not going to have seen as many situations and problems as that person—in most cases—so that lack of experience may make some things a bit more difficult.
How to Do It
Ok, now that you’ve got some idea of what you may be up against, let’s talk about how to overcome some of these disadvantages and how to be as successful as possible when transitioning mid-career into software development.
Plenty of people have done it.
I’ve even received emails from software developers who’ve made the transition late into their fifties, so it’s certainly possible.
Here’s how.
Transition at Your Current Job
It’s difficult to break into the field of software development.
I’ve already spent a good deal of time in previous chapters talking about how to get your first job, because it definitely isn’t easy.
No one really wants to hire a software developer without prior programming experience.
How, then, do you get that job if your resume says you’ve been an accountant for the last 20 years?
Well, one way is to start transitioning into software development from your current job.
Many software developers I know started out in a completely different field and found that they could learn a little programming here and there to help them with their work or to build some kind of tool that would help everyone at their work.
If you are interested in becoming a software developer, you might want to look around in your current work environment and see if you can find places where you could start using your newfound skills.
This is a great way to transition into software development because if you start programming at your job—even if it’s just small projects—you can then put that on your resume.
You may even find that you can create a software development role for yourself within the company you are working for, just by automating things or building tools which end up being valuable enough that your current employer will pay you to keep doing what you’re doing.
Start by taking on some of these side projects at work during your own time and then perhaps ask for permission to start transitioning some of these activities into your full-time position.
If you can pull this one off, you may not even need to go out and apply for a programming job.
Once you are officially programming at work, you can always find another programming job somewhere else.
Look for a Way to Use Your Existing Background
Another tactic I’ve seen successfully employed is to use your existing background in an unrelated field to give you valuable domain expertise at a software development company who develops software for that unrelated field.
For example, suppose you had 20 years of experience as a nurse and you wanted to get into software development.
Yes, you could learn programming and then try to apply for any software development job that came along.
However, it might be a much better idea to look for software development companies which mainly operate in the healthcare industry, or even healthcare companies who might employ software developers.
By specifically applying for these kinds of jobs, you’ll be giving yourself a distinct advantage over other applicants who lack the domain expertise you have.
In software development, domain expertise can be enormously valuable, because understanding the why and purpose of the software in a particular industry can prevent many errors from being made.
It may be much easier for a software development company to hire a developer with 10 years of software development experience, but someone who knows software development and has 10 or more years of domain expertise is going to be a much rarer find.
I was just talking to a developer who had a genetics background and ended up getting a job with Oracle, because his previous career was in genetic and biological chemistry, and Oracle was looking for developers to work on a product they were creating that involved genetic research to help cancer treatment centers.
Try and use your existing, seemingly unrelated experience by finding a way to make it related.
Just about anyone can do this, because software exists in just about every major industry.
Be Willing to Start from the Bottom
Finally, I’d say that if you are switching into software development mid-career, you need to be willing to start at the bottom with the knowledge that your previous work experience will ensure you don’t stay there long.
It can be difficult to make a transition from a high-paying job where you have seniority and perhaps a reputation, to being a lowly grunt being paid peanuts, but if you want to switch careers, you are going to have to be willing to do that—at least in the short term.
The software development world is more of a meritocracy than other industries, so it doesn’t really matter how much experience you have or who you know so much as what you can do—although reputation obviously plays an important part.
I’d advise you to plan on starting from the bottom, realizing that most of your skills are not going to carry over, and to be ok with that.
This will help you to avoid the frustrations you might otherwise face if you expect to make a lateral transition into this field.
Like I said, though, if you already have experience in another industry and have achieved success there, many of the soft skills you have developed will be likely to accelerate you through the ranks of software development.
You just have to be patient to begin with.