Ah, the age-old question: which tech stack should I learn? Aspiring developers often get bogged down in this dilemma, and it's not hard to see why. The tech industry is an ocean of opportunities, and the fear of diving into the wrong waters can be paralyzing.
But here's a little secret for you: it's more important to be insatiably curious and willing to learn new things than to stress over learning exactly the right things.
"Don't try to minmax your programming education"
-- Paraphrased from ThePrimeagen
There are jobs in every tech stack. From popular ones like JavaScript, Python, and Ruby to newer languages like Go, Elixir, or Rust, there's a market for each of them.
Take JavaScript, for example. It's the go-to language for front-end development, and Node.js has made it incredibly versatile on the back-end too. With the rise of serverless architectures and the popularity of React and Angular, JavaScript devs are in high demand.
But what if you're more into Python? No problem! Python is not only the darling of data scientists and machine learning engineers but also a solid choice for web development with frameworks like Django and Flask.
The point is: whatever tech stack you choose, there's a job out there for you if you know what you're doing.
Let's say you're a Golang aficionado, but you're worried because there aren't as many Go jobs as there are for JavaScript. Well, remember this: you only need to land one job.
Instead of fretting over the total number of available jobs, focus on finding the right fit for your skills and passions. After all, the perfect job in a smaller market is better than being miserable in a sea of JavaScript gigs. I actually wrote an entire article about how the ratio of openings/developers is a much more important consideration than the total number of jobs.
The tech industry rewards adaptability and growth. Technologies come and go, but the core skills and mindset of a developer persist. Expect to be constantly learning new programming languages, frameworks, and tools throughout your career.
In fact, dabbling in multiple languages and frameworks can make you a more well-rounded and versatile developer. By exposing yourself to different ways of thinking and solving problems, you'll develop a more comprehensive understanding of programming concepts.
I've seen hundreds of learners fail in their journey to become developers because they gave up and stopped learning. I've never seen a single person fail because they started with the wrong stack.
Alright, so we've established that you can find a job in any tech stack, but does that mean all choices are equally good? Not quite.
When choosing a tech stack, there are factors to consider that can impact your career development. Let's dive into a few key things to keep in mind.
Before picking a tech stack, do some research on local job markets and industry trends. Find out which languages and frameworks are in high demand in your area, and which ones are on the rise.
Working with a tech stack that has a strong community and support network can help you stay up-to-date and make it easier to find jobs or freelance gigs. I've also found that for junior developers it's typically easier to land a job in your local area than to find a remote gig. That's not a hard and fast rule, but it's something to keep in mind.
Remember: your tech stack choice should align with your personal interests and career goals.
To become a well-rounded developer, there are a slew of concepts that are important to learn. When designing the learning path on Boot.dev, I'm not only interested in teaching students a cluster of technologies, I'm focused on getting those concepts to stick. As it turns out, some languages and frameworks are better at teaching certain concepts than others.
For example, if you're working to become a back-end developer, here are some of the important concepts:
Once you've learned one programming language, picking up another one becomes way easier. I'm talking like 80+% easier. Most new developers don't realize this, but it's why you don't need to stress over the perfect first language.
Programming languages may have different syntax and nuances, but the underlying concepts remain consistent. Once you've got the fundamentals down, learning a new language or framework becomes more about understanding the specific quirks and less about grappling with entirely new ideas. Binary trees, encapsulation, and function closures are all pretty universal concepts, you'll never need to re-learn them.
Let me give you an example: if you're proficient in Python and decide to learn JavaScript, you'll find that many of the core programming concepts, like loops, conditionals, and functions, are pretty similar. JavaScript has its quirks (looking at you, this
keyword), but you'll be surprised at how quickly you can pick it up.
Go forth. Embrace the challenges, learn from setbacks, and above all, never stop being curious. The most successful developers I've met never ask "Do I really need to learn X?" They say "X looks exciting! I'm going to build something with it."
Also published here.