I regularly get asked which language or framework someone should learn.
Here is my advice for aspiring software developers, asking themselves the same question, unsure what to learn to enter the industry, as someone who works as a tech lead in the industry.
A thread. ↓
1. You have two choices
You basically have two choices when deciding which language or framework you want to learn.
These choices are:
- Learn what's in demand
- Learn what you'd love to work with
Both choices bring advantages and drawbacks with them, and they will both extend and limit your opportunities.
But, it's also only a temporary choice. If you decide that you want to do something different later, you can still make the switch.
We'll discuss both options more in detail now.
2. Learn what's in demand
There is usually not that one language and framework used throughout the board.
There is a job market in your country, and more often than not, many local job markets, depending on the cities companies are based in.
Although the pandemic has definitely boosted remote work a lot, it is still not the norm.
More often than not, you will find jobs that require you to be present in the office, at least from time to time.
This requires you to live not too far away.
This makes your choice of technology important.
Depending on where you live or where you are willing to relocate to, you only have a few options of what to learn.
Germany, for example, is pretty Java-heavy in the enterprise, and PHP-heavy in the agency space.
Only in larger tech hubs like Berlin, Munich, Düsseldorf, or Cologne will you find many exceptions to this.
If you live far away from those hubs and are unwilling to relocate, you might be better off with Java because it increases your chances of finding a job in enterprise.
The same applies to other countries, which is why you should research first.
Gladly, doing this research doesn't take too much time and only some preparation.
You should know whether you can afford and are willing to move. The rest is searching online.
For your research, use job boards like these, for example:
- LinkedIn
- StackOverflow Jobs
- Indeed
- Glassdoor
- Google (yep, they also show jobs)
or do a Google search for "Software developer <city>."
Going through all job ads you find should give you an idea of the most in-demand technology.
This information tells you what choices of languages and frameworks you actually have to improve your chances of finding a job.
This choice does, however, have a huge drawback:
You might not end up working with something that you really enjoy.
If you love JavaScript in the backend but are forced to work with Java because there are no other jobs, it might take a hit on your motivation in the long run.
This is something you need to be aware of before you go down this route.
But if you can take it for a year or two, it is still one of the easier strategies because you go with the demand before you have enough experience or the job market evolves.
3. Learn what you'd love to work with
A whole other strategy is to go with what really interests you, no matter the demand on the market.
This strategy is riskier because it might well be that you end up with a choice that closes some doors for you.
If you decide to go with Golang or Rust because you love the language, but there are literally no jobs where you live, you might either have to move or actively look for remote work to get your job.
But you work with something you enjoy, which can boost your motivation a lot.
You should still do some research to see how much demand there is for your choice in the area around you.
Depending on where you live, you usually have an area you can travel within with some effort.
In Germany, for example, it's common to accept a one-way travel time of up to half an hour, which is around 20 - 60km, depending on whether you can use the highway with your own car and on traffic jams, or public transportation.
Also, depending on the country you live in, remote work might already be wider accepted, which broadens your choices.
Use job boards once again to check the demand for your tech of choice, and if there is still some demand, go for it.
Just be aware that you might have a harder time finding a suitable job or opportunities to switch jobs if you see the need arise.
But here is the good thing:
You will become better at software engineering overall, and this broadens your choices once again.
Languages and frameworks are just tools, and at some point, when you learned enough fundamentals in one technology, you can transfer this knowledge to another stack.
This makes it once again easier to switch jobs if you see the need arise.
4. Thread end
That's it for this thread.
I hope you found something useful in it for you.
If you enjoyed reading this thread, consider dropping a like, retweet the first tweet, and follow me (@oliverjumpertz) for more content like this.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
They are what you think but very often not what was really requested or expected.
By not asking questions, you put everything at risk.
This is a story of how assumptions nearly killed a multi-million dollar project.
A thread. ↓
0. Foreword
I can't tell you everything because this is a story that really happened.
I would break several laws and NDAs by giving you names and too many details.
Still, I will do my best to give you this as an example of why you should turn assumptions into knowledge.
1. The story
Some time ago, a medium-sized financial software company got a contract to develop a multi-million dollar wealth management system for a European private bank.
Wealth management systems are software systems that automatically manage your money.
A super simple yet highly effective trick helps you increase your chances after tech interviews and keeps you a little safer:
The follow-up email.
A thread. ↓
1. What is a follow-up email?
A follow-up email is basically an email you send after a meeting.
You should usually send it within a day after that meeting.
This email gives you a chance to:
- Summarize what you understood or talked about
- Pick up points that were left undiscussed
- Give answers you promised to or couldn't deliver
- Ask additional questions
- Show overall more interest in the process
Did you know that there is a strategy that can make you 100% more likely to achieve your goals?
It is simple, yet highly effective, and it works for software developers learning how to code, for starters in business, and martekers alike.
A thread. ↓
1. Most people set goals
We all have dreams and goals.
- Learning how to code
- Earning a million dollars in a year
- Starting a highly successful business
- Finding our dream partner
- Closing a million-dollar deal
- Getting the promotion we deserve
There are so many goals out there that we couldn't count them all, even if we wanted to.
It's great to have goals because they are our drive. They make us leave our comfort zone and explore the unknown to reach them.