What Technologies to Learn as an Aspiring Software Engineer
Recently I’ve been asked by an aspiring software engineer what technologies best to learn. This post is my answer to that question. Bear in mind though that, although I’m a somewhat experienced software engineer, I’m by no means somebody that regularly hires new devs nor do I have a lot of experience at trying to get hired.
Read Job Ads
Find some online job boards that are relevant to the region you desire to work in and check what’s asked for. Looking at job ads is a good way to find out what skills are in demand at the moment. Linkedin is a good start.
Go Deeper in What you Already Know
Maybe you’re an aspiring software engineer because you already have some experience with some tech. If so, it’s probably a good idea to deepen your knowledge there. At least if it was something you liked using.
Use Google Trends
On Google Trends, you can enter a term and will be presented with a nice graph showing you how much that term was searched for over time. So, once you have an idea of what might be an interesting tech, enter it there and see whether it’s:
- Going up
=> getting some buzz, maybe just a temporary thing? Depends on the time scale.
- Going down
=> might get out of fashion or is losing it’s early buzz. Depends on the time scale.
- Been around for long and still is
=> established, safe bet
- Gone up steeply in the past and then down and then about level
=> used to be trendy and is now established, safe bet
Stick to Standards
Be a Generalist When you Start Out
My advice is that you should build up some general knowlege and not specialize in just one technology early on. In your first job you might not be expected to know everything already and it will be totally ok if you learn on the job (to be honest that’s what I still do a lot even after twenty years). Doing this, you will automatically become more specialized in what you do there. And you’ll also find out what your preferences and strengths are.
My Totally Subjective List as of December 2020
Safe bet You can’t go wrong with that. And it’s fun. And you can use it for the backend too (using Node.js).
Safe bet If you’re into design and also if not.
Safe bet I should not even have to mention this, given it’s listed under “Web Frontend”
- PWA (Progressive Web Apps)
Pretty safe bet Browsers get more and more capabilities. And it’s not really a separate technology. But still good to know what it is and to have build one if you’re a web frontend dev.
Safe bet I’ve never used it. But it’s been around for long and is still getting more and more popular. And they’re using it for machine learning which is all the rage.
- .NET (5)
Pretty safe bet .NET with it’s C# programming language has recently been unified to .NET 5. Can be used on all platforms for the backend and for desktop programs on Windows. Has great docs and learning material provided by Microsoft and is pretty fun to use.
Safe bet SQL is primarily a query language for relational databases. Although other kinds of databases have become popular too, relational databases together with SQL will still be around for long.
Somewhat exotic but a fun and simple programming language you can use to get stuff done. Great to build command line tools too. And if you have experience in something exotic you won’t be one of thousands of developers applying for the same job.
Mobile App Development
- iOS using Swift
Safe bet But you need a Mac.
- Android using Kotlin or Java
- iOS and Android using Ionic
- Linux shell scripting
Safe bet I really think that’s a great skill to have and I would like to be better at it myself.
- Cloud stuff
Pick AWS or Azure. Don’t try to learn them both. And also don’t try to learn one fully (it’s not possible). Start with one topic in either.
- Containers aka Docker
You can use a Docker container to do development using environments without having to really install these envrironments which is great for trying things out. Doing so you automatically learn about Docker.