"Should I Learn _"?
The core of “should I learn/do/be _” lies in the fact that you have not defined the problem.
What is it exactly that you are trying to achieve?
Clearly define the goal. If you don’t know what the goal is, define the outcome you want. Do you want to make more money? Or do you want to work on your passions and hobby projects?
Is this decision reversible or irreversible? Make reversible decisions quickly because the experience will help you answer. Irreversible decisions should be deliberate, ideally seeking the advice of a mentor. Do not burden your mentor with the task of babysitting you with reversible decisions, but instead for clarity at a point when you have defined your goal.
Sacrifice everything that is getting in the way of that goal. You can have anything, but you can’t have everything. Stop chasing the next hype such as mobile low-code AI apps. Build a sustainable, long-term foundation so your skills can compound over time. You need to eliminate your hobbies. If you want money, give up anime and video games, focus on skills. Worried about burnout? Get burnt out first, then take a week off.
Focus on a handful of activities that will get you closer to your goal, so you aren’t splitting your time and energy. Instead of spending time on low-code AI apps, plus dropshipping, plus an agency, focus on only one and sprint with it for a defined period of time, such as 12 weeks.
Let’s look at an example to understand tradeoffs. It is easy to visualize with sports. If you split your time trying to learn football, basketball, and baseball, you will either:
A) split your time between each of the three, being mediocre at each or
B) focus on one to achieve maximal results, e.g. football at an elite level.
If you want to maximize money, you cannot split your time with other activities because opportunities are fleeting, and your time/energy will decline as you become older with greater responsibilities.
Obviously use common sense here: don’t sit in your office all day–you still need to exercise and eat healthy in order to maximize your output.
Eventually, your skills and experience will synergize to reveal unique insights that others cannot see:
1.1 But Really, Should I Learn/Do/Be _?
I receive this question frequently for various topics.
I will address them below.
My general advice is that–unless you know exactly what you are doing and don’t need to ask this question in the first place–you should just follow the guides that I’ve made. I made it with the intention that you want to get a job, not learn something obscure like Haskell.
If you’re extremely passionate about artificial intelligence and want to contribute to the field, that’s beyond the scope of what I provide.
If you have a burning desire for a particular field and are willing to sacrifice future earnings to advance humanity’s knowledge or to have fun with your hobby project, you can do whatever you want, because it’s your life 😀
But, if you want to make money, don’t do these:
2. Should I Learn Cloud/DevOps/QA/Testing?
You should not do Cloud/DevOps or QA/testing because, although these are useful and important skills, you will get pigeonholed into a role that is not product-focused and it will be hard to escape. Adopt these as sub-skills/a niche, not your main skillset.
3. Should I Be an App Developer?
No. If you want to make apps, you can make web apps without learning an app-specific language. React Native is an example.
Don’t lock yourself down into an app-specific language such as Swift for iOS. Exception: you can break this recommendation if you didn’t need to ask this question. If that is the case, you know exactly what you’re doing. Native app development can be useful for specific use-cases, but it shouldn’t be on a beginner’s plate when you’re focused on making money.
4. Should I Learn Machine Learning or Data Science?
There is a lot of hype behind machine learning.
As of now, if you want to contribute to the field of machine learning, they are biased towards individuals with a graduate degree. If you don’t have one or aren’t interested in one, you will need to do extensive self-teaching using various resources such as Andrew Ng’s free courses, though I don’t advise it.
Instead, I advise machine learning as a sub-niche. You should focus on becoming a good developer first, then adding machine learning to your list of skills, instead of making it your primary skillset.
I advise this because, when you use existing machine learning tools such as OpenAI, you won’t be developing your own models. And you certainly don’t need deep expertise in order to use them. Many existing machine learning models have interfaces (APIs) available that can be integrated using a few lines of code.
If you focus on becoming a good developer first, you’ll at least know how to develop applications, extensions, automation tools, etc. that you can extend with AI APIs or fine-tuning of existing models. This is far more profitable than learning how to build your own model from scratch.
5. Should I Become a Cybersecurity Analyst?
I don’t suggest that you should focus solely on becoming a cybersecurity expert because it is not product-focused. My goal is to maximize your income, so if you take on a product-focused role, you can develop products such as SaaS tools that can be sold to make money. Being an IT guy that fixes problems is not scalable.
If you want to do cybersecurity because you are passionate about it, it’s up to you. In that case, you can create a cybersecurity agency, or become a defense contractor.
However, you can take up cybersecurity as a subset of your overall skills as a developer instead. Learning cybersecurity and hardening the security of your applications is never a bad idea. I am simply suggesting that you take it up as a sub-niche. Then, at least, you’ll be able to develop products with a cybersecurity focus.
6. Should I Learn No-Code / Low-Code?
When you start using low-code or no-code apps, you will realize that there are a number of disadvantages that cannot be overcome, such as:
Relying on the provided templates which lead to both functionality and UI limitations
Facing security issues because you’re relying on the vendor's security
Relying on vendor customer support for issues
Migrating or integrating with different platforms highly unlikely
Thus, it’s unlikely that you’ll be able to sell a no-code/low-code app for a significant amount of money.
And I would be very surprised if a no-code/low-code app receive a high valuation.
7. Should I Learn Web3 or Solidity?
You can, but please learn how to become a good software developer first.
Web3 is not separate from being a good Web2 developer. It builds on top of it.
8. Should I Learn Video Game Development?
No, because you will be worked like a slave for lower pay. There is an endless pipeline of candidates for game development companies because people are willing to sacrifice the quality of the job for “passion.”
9. Should I Learn [INSERT TECHNOLOGY HERE]?
Focus on what will get you a job and what will help you make money.
Let’s say you see a minor job requirement (often listed as “not required, but nice to have”), such as AWS or Docker. If you don’t know about it, look up a 30 minute freeCodeCamp introduction video to become familiar with it. If you can explain the basics during the interview, it is sufficient for you to learn the rest on-the-job.
In short: As fortune favours the bold, money favours the swift. Decisiveness equals speed. Make reversible decisions quickly, irreversible ones deliberately.
When you gain momentum, your questions will become more specific and the answers more clear.