A friend and I were talking recently about learning new software languages, and other technical concepts; something that most tech people do on a regular basis. But during the conversation, he brought up a really interesting point - how do you know when it’s worth it?
Here’s how the core of the conversation went (roughly):
I’m very productive in PHP and Node.js. But I’m wanting to become proficient in other languages as well, specifically Elixir. The trouble is, I’m feeling that the payoff will take quite a while to arrive, as I don’t have a lot of time to regularly give to learning it. Trouble is, I love it. But because of my limited amount of time I’m able to give to it, I feel that I’m only ever going to remain an eternal newbie.
I’m also conscious that I’m, potentially, falling into the new and shiny trap, doing something I could have done in PHP or Node.js in hours, which in Elixir would take me days or weeks.
And lastly, I’m wondering if it’s only a niche language. As a result, if it is, in terms of prospects is there a point in dedicating the time to master it, or would my time be better spent improving my existing skills. What do you think?
Honestly, it’s a bit of a tough question to answer, don’t you think?
On one hand, my good mate is a very passionate developer, always keen to learn new skills, while not letting his existing skills atrophy. He’s naturally inquisitive and quite curious.
All of these are admirable traits — especially in a developer. What stands out for me most though, in what he said, is that he loves using Elixir.
Here we have raw passion, passion which can lead to many hours of enjoyable work, enjoyable work which can result in significant contentment and job satisfaction. When you do something because you get satisfaction from it, and you’re growing, it creates a virtuous, upward circle. I’d argue it’s the number one reason software developers develop software — right?!
However, there’s another side to the equation - the financial. I’m not saying that they should trump passion — a belief that many hold. But financials are important to consider, especially in countries with high standards and costs of living, such as the United Kingdom, Australia, Canada, Germany, and America.
More specifically, what are the future career opportunities when you know the language well? What are the employment and contract opportunities for people who know the language?
Are companies actively looking for developers who have that skill set? Are they building new products and services that require it? Or is it something used more in academia or on the fringes, largely more of an academic curiosity, or hobbyist language, rather than a commercially viable option?
Said another way, while it’s great that we can be passionate about technologies, passion alone doesn’t pay the bills. It doesn’t let you go on holidays, pay for your children’s education, put fuel in your car, and so on.
As such we have a bit of a conundrum. And my mate appreciates this quite acutely — it’s one of the reasons that he and I get on so well I believe.
So what should he do? Should he keep on learning because he loves using Elixir? Or should he, perhaps, set it aside as a pragmatic choice?
To help answer that, I thought I’d pose a series of questions. Starting with this one.
Here’s the question that you have to most honestly ask yourself. Why do you really want to learn the new technology? Is it because of passion, interest, or curiosity?
There’s nothing wrong with any of these motivators. After all, they are some of the most common characteristics found in technical people.
We write software to see how things work, to attempt to make them work better, to see if we can outdo the original creator, and in so doing satisfy a raging curiosity inside ourselves.
I know that this is one of my main motivations.
But perhaps you could learn when you have the luxury of doing so, such as on a weekend, or on a holiday. Perhaps you should look on it as a hobby, rather than as professional growth and continuing education. It can be a blurry line between the two, but, with some introspection, you’ll know which it is.
Then you can find the place where it fits in best — even if that’s only as something that you tinker with every now and then.
Is this a skill that’s growing in significance, one which may end up providing you a new career direction shortly down the line? Will the new skill provide the level of remuneration you need to satisfy your current and future needs? Is it a technology that, while currently at the early stages, is on the way to becoming mainstream? What does your research tell you?
If it is growing in prominence and usage, perhaps it’s worth investing the time and effort to mastering it, because as it hits mainstream recognition you can position yourself as one of the leading authorities on it. You can be the person who blogs, and speaks about it, one of the people that becomes associated with it.
Sometimes it’s hard to tell whether this will happen or not. What’s more, you may have to take a risk with it, one which might not pay off. If that’s the case, here’s some further suggestions to help you reduce the potential risk:
These methods, and others, can help you do due diligence before you invest significant time in it.
Do you — honestly — feel that it will aid your career longevity? Do you feel that by knowing it, you’ll be:
Is the language suited to the kinds of software projects that you feel most suited to?
Take PHP as a prime example; it’s superb for web-based software development, and I love the web, so it’s a natural fit for me. Then there’s Go. It works for the web and for systems programming, both of which I love, so it makes sense pursuing it.
But what about R, the language for statistical computing? While an interesting language, its focus is on statistical computing and graphics, two subjects that mean very little to me. So it’d be a questionable choice of language for me to learn.
What about you? Does your new skill or technology have such a clear-cut fit?
Here’s where the rubber meets the proverbial road. We’ve looked at the future and done some crystal ball gazing. We’ve looked at passion and curiosity. And we’ve considered financial implications.
Now let’s look at the present moment and hit as close to home as possible. What dependents, mortgages, debts, and other constraints (for want of a better term) do you have to consider? Are you considering starting a family, buying a house, or taking on some other form of debt?
If so, perhaps now’s not the right time to invest the time, taking time away from your current income. Perhaps now’s the time to continue on as you are, at least until the new addition is more of a known quantity, and you know what to expect and how you’re handling it.
This isn’t to say that you should push the change aside, only that you should consider not pursuing it so actively for the time being, instead taking a slightly longer term view to it.
But, if you’re taking on considerable financial commitments, perhaps now’s the perfect time to consider your longer term future, where you want to go, and what you want to do.
Perhaps these commitments can force you to answer questions that you’d been putting off for “some day”. Perhaps they help you to cut the fat, focus, face your fears, and make the hard, though right career decision(s).
Here’s something that I’ve only appreciated in recent years — being paid to learn. This might seem like a strange thing to expect. It might seem like you’re bumming off of clients or employers.
But it’s totally worth considering. Recently I had to do some documentation on SELinux, which I wasn’t too familiar with. However, to be able to create proper client documentation, I had to learn about it.
I’m not inferring that I had to learn it inside and out, nor that I should become an expert in it. But I had to become “good enough”, so that I was comfortable with the information that I created.
Given that, I invested time on the job to learn as much as I could about it in a relatively short period of time. I trawled through the available documentation. And I experimented with it.
Doing so was a fantastic opportunity to learn a skill that I’d wanted to learn for ages, and be paid to do so in the process was an excellent bonus (and motivator).
And here’s another approach, once you have basic proficiency in whatever it is that you’re learning, would you be willing to blog about it? There are a host of businesses that are actively looking for people to write content for their blogs and will pay well enough for you to do so.
What about getting in touch with these sites and seeing if they’re willing to pay you to contribute content? Not sure of where to start? Try SitePoint. And tell the editors that I sent you!
Regardless of the path that you take, I’m not saying that you just take it upon yourself to whatever you want, learn any technology that suit your fancy, and attempt to justify it as being a “good investment” of your boss or client’s time.
That’s “taking the mic”, as we say in Australia. But there are times when you need to learn new skills, or increase your knowledge in existing skills. So, if the opportunity presents itself, take advantage of it!
You’ll likely deliver a better result for your project and your employer or client, and you’ll have more skills for the future.
Let’s finish up with one last one idea, one that, perhaps, is rather counter-intuitive to most of us. The overwhelming career logic that I’m used to hearing is that you focus on paying work first, and then — if you have time available — you look to use it for future projects, ideas, concepts, and payoffs.
This is logical on so many levels. Why put at risk or take time away from guaranteed income that you may be depending on to feed your family, put a roof over your head, and for some nice little luxuries?
Perhaps you’ve heard the phrase:
A bird in the hand is worth two in the bush
In large part, I’m inclined to agree with the logic. However, step back for a moment and consider the practical implications of only spending a small amount of time each day, versus dedicating a larger block of time, for a short period.
Firstly, you’d be able to grow your foundational knowledge of the subject matter far quicker. You would be able to get a lot more information into your short term memory far quicker, and be able to keep it there for longer.
With that information there, you could more rapidly build neural pathways and create linkages to the various concepts and terminology around the subject matter.
After the initial time had passed, you could go back to spending a far smaller amount of time on a regular basis, and steadily build on that solid foundational knowledge.
Compare that with steadily learning for short periods of time on a regular basis. There’s nothing wrong with doing so, and many things have been learned and built following this technique. Yes, you’ll learn steadily, but there’ll be an element of “where was I last time”, at the start of each session.
By contrast, if you have a big chunk of dedicated time, this load should be noticeably lessened. I’m not drawing on any psychological theory here, just practical, personal, experience.
I’m all for learning new skills; it’s something that I’ve never stopped doing in some way, shape, or form. But you also have to be practical about it. Sometimes, while new languages and other skills seem valuable, it’s just the shine and gloss, or rosy coloured glasses talking.
Sometimes we can get lost in the desire, the curiosity, and the passion of what might be, that we don’t appreciate that it’s really just a hobby borne out of curiosity, a fun, curious play thing for our quite hours.
But, as history has shown countless times over, curiosity is where many great inventions and changes come from. The question is, can you discern the difference?
If it is worth pursuing, then the time needs to be found, or made, to be able to do so. And if you believe that it’s worth it, then you have to do it. The choice, is up to you.
How do you feel about learning new technologies? What’s your experience been? Please share your thoughts in the comments.