You are a good programmer. No, you are a great programmer. But, you are stuck in one development stack. You want to diversify your knowledge, experience, and skill set, but your resume reads like a one-act play. Chances are, you didn’t deliberately choose to work in this stack. At the start of your career, the first job you landed was probably the best you could find. Several years have gone by, and you are beginning to realize that the development world is moving on.
Maybe you have already tried, having gone to a few interviews. Nevertheless, you’re still as stuck as when you started, because many of the cool shops are still figuring out how to do good hiring in this new, fast-changing paradigm. They want developers who already have experience in their stack, but they haven’t realized that filtering for previous experience is only one heuristic for finding good talent. So, what are your options?
Here is how to escape from your language. Like all the best advice, it is simple, yet profound. It consists of the following three steps:
- Pick a new stack.
- Learn it.
- Build a network.
Picking a stack is not an easy thing to do, but I have good news for you: once you master these steps, you won’t ever be stuck again. No matter which one you pick, when the time comes, you will be able to quickly move way ahead of the pack. Don’t worry about trying to pick the one that will last your whole career, since, (and this may come as a shock to you) it probably won’t last you a decade! That’s why we should love software development, for the fast pace! If you want a job that never changes, go be a
librarian doctor lawyergardener.
Which language should you pick? You have two big categories to choose from that I suggest:
- The popular
- The exotic
The popular languages have significantly more, and a greater variety of jobs. On the down side, you also have more competition from other developers, and most of them have been using that language since before they were born. To stand out here, you need something to differentiate yourself from the other candidates: a unique perspective, skill in another programming paradigm, an ability to quickly learn new things, rapidly change contexts, etc. Figure out what your unique contributions are, and communicate them clearly.
Alternatively, on the exotic route, you pick an up-and-coming language, the new hotness, as it were. Because it is so new, there are much fewer jobs in this language, and less long-term stability. Consequently, there are also much fewer experienced developers. Savvy companies using this language will hire interested developers, despite them lacking any experience with it. (All your hard work in step two will really pay off here.)
Having chosen a language, now it’s time to learn it! Fill your github with work in that language. Read some books on it. Look for ways to use it at your current job. If your situation allows, start a big side project in it. You don't HAVE to open-source the code on github, but this certainly helps to publicize your learning. Companies seek prior job experience to avoid having to pay to train you; well then, beat them to the punch by already knowing it!
To build your network, go to meetups and get involved in them. I cannot emphasize this enough. Stick out your hand and introduce yourself. Make connections with the people you meet. Learn about the tools people use at their work. You will begin to think like a developer in that stack as you’re exposed to new concepts. Soon enough, you will develop a sense of what companies are hiring and who would give you a recommendation at their company.
Mind your attitude when interviewing. Resist the urge to cynically compare and contrast the old and new stacks. I have interviewed too many candidates who could not stop talking about how great their old language is, or how “these new hipster languages are just a fad”. While you are certainly always entitled to your opinion, (who knows, you may even be right!), carrying on like this in an interview setting never leaves a good impression.
Perhaps you’re thinking that this is just too much effort. Just like everything in life, choosing not to move is also a valid move. I like to call it "riding into the sunset". In this option, you never leave your language, ever. Though this may feel like the safer choice right now, it carries its own risks. If you hate maintenance projects, you need to learn to love them, because they are going to be your bread and butter. But, you will be competing for these projects with all the other sunsetters, and there are going to be a lot of them. From what I have heard, however, once you have reached the point where there are more maintenance jobs than there are remaining developers, you really do get to write your own ticket, but this can take decades. My great uncle did this, and he managed to stay employed in COBOL till he retired.
While escaping from your stack requires effort, by following the steps you can achieve it in just a few hours a week. So, get out there and do it!