As a father of two, I have a limited amount of time to invest in learning new technologies. I used to spend countless hours working on side projects and trying new things just to learn. It was great experience and I learned a lot, but now I have to work differently, more efficiently. I try to use my time wisely in the choices I make when choosing technologies I am going to work with everyday.
When choosing my next role, I research the technology a company uses and understand that the time spent with that company would be an investment into that technology. I ultimately aim to work on projects that help further my expertise in the fields I wish to excel in. I have found this to be very effective in making sure the skills I learn on the job lead to roles with skills that are in high in demand, low in supply and in turn highly paid. It pays to be an early adopter of the right technology.
Identifying and investing in these technologies can be a gamble, but you can reduce the risk by assessing whether or not you think the tech will increase in popularity. Generally for a technology to be widely adopted by companies and developers it must solve a real problem. The technology must either save money, save time or provide a substantially improved end user experience, whether that is the user of the product or the developer.
For example, if we look at the trends in cross platform mobile development frameworks over the past 5 years, there is a clear winner in npm downloads, react-native.
React native offers the complete trifecta for mass adoption. It saves companies money, as they can use existing web developer resource to develop mobile apps. It saves a huge amount of development time as apps can be built cross platform with ease, utilising the huge Javascript ecosystem. Thirdly it offers an excellent, low barrier to entry, developer experience where any web developer who knows React can be very productive, very quickly.
Similar trends can be seen between Typescript and Flow, 2 fantastic projects which aim to add type checking at compile time to Javascript. I have a huge amount of respect for both projects, but in my opinion it would be a terrible idea to invest your time in projects using Flow, given the explosion in popularity of Typescript.
Again, Typescript offers a great developer experience, and saves companies both time and money by allowing developers to write code with confidence, with relatively few runtime bugs when compared to a vanilla JS project. You would be silly to ignore Typescript in 2020, it will soon become a required skill to know when developing applications that use the JS ecosystem.
There is a great blog post from stripe about migrating from flow to typescript, which I highly recommend. It is a great read and explains the benefits of using Typescript over Flow. You can read about their migration here.
I avoid joining projects using legacy tech stacks and dying technology. You might be tempted by the familiarity of a framework you know inside out, but ultimately you are investing in that technology for future roles. The longer you invest in roles with declining technology, the further down the ladder you fall when it comes to your next role. This in turn is likely to end up with a lower paid role. You will be backing the wrong horse and will pay the price in the long run. I realise that I am incredibly privileged in order to be able to choose the work I undertake and many will not be so fortunate as me.
In order to keep up to date in your field, it’s important to keep up to date with industry news. I do this by reading blog articles, news sites and my personal favourite, Twitter. Twitter is a huge hub of great information with a lot of great conversations taking place. It’s also a dumpster fire full of trolls but that’s another story.
I also keep in contact with a handful of recruiters regularly and ask them what the market is doing every now and again. Recruiters have a good insight as to what companies are looking for and can be a great source of information to identify trends in the job market. Get to know your recruiters, and find out what the trends are.
When looking for jobs, don’t be afraid to tell recruiters you are not interested in roles using certain tech, and are ideally looking for jobs using the tech you want to invest in. They will find better roles for you and are likely to respect you more as you have a clear understanding of what you want from a role. Don’t be the guy who says ‘I dont really mind’ when they ask you what you want to work with, the jobs you’ll end up with will be the bottom of the barrel.
Another good tip is to keep an eye on job boards and try to identify trends from job advertisements. This can also be applied to Google trends, stack overflow questions and package downloads.
For more thoughts about web related tech and other developer related content follow me on twitter @srsholmes.