JavaScript? Python? Go? Which Tech Stack Should You Learn?
Tags: webdev, codenewbie, coding, education
Published: 2023-04-25 14:51:00

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](https://www.urbandictionary.com/define.php?term=min%2Fmax) your programming education"
>
> -- Paraphrased from [ThePrimeagen](https://www.twitch.tv/theprimeagen)

## It doesn't matter much. There are jobs in every stack

There are jobs in every tech stack. From popular ones like [JavaScript](https://boot.dev/learn/learn-javascript), [Python](https://boot.dev/learn/learn-python), and Ruby to newer languages like [Go](https://boot.dev/learn/learn-golang), 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](https://blog.boot.dev/javascript/nodejs-vs-javascript/) 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*.

## Total number of jobs doesn't matter, you only need *one*

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](https://blog.boot.dev/jobs/not-about-job-openings/) is a much more important consideration than the total number of jobs.

## You'll fail because you give up and stop learning, not because your tech stack is unpopular

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](https://blog.boot.dev/education/learn-multiple-programming-languages/) 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.*

## Anything will work, but some choices *are* better than others

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.

### Try to learn something that has jobs in your area

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.

## Choose a tech stack that you enjoy

Remember: your tech stack choice should align with your personal interests and career goals.

* If you're passionate about data science and machine learning, [Python](https://boot.dev/learn/learn-python) might be a better choice for you than PHP
* If you're interested in cloud-native back-end development, I'd certainly recommend [Golang](https://boot.dev/learn/learn-golang).
* f you're all about building sleek and interactive web apps, [JavaScript](https://boot.dev/learn/learn-javascript) and its various frameworks could be right up your alley

## Don't be afraid to learn technologies that you won't use at work

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](https://boot.dev/tracks/backend), 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:

* [OOP](https://boot.dev/learn/learn-object-oriented-programming)
* [DSA](https://boot.dev/learn/learn-algorithms)
* [Databases](https://boot.dev/learn/learn-sql)
* [HTTP + Basic networking](https://boot.dev/learn/learn-http)
* [REST APIs](https://boot.dev/learn/learn-web-servers)
* [Functional programming basics](https://boot.dev/learn/learn-functional-programming)
* [Security](https://boot.dev/learn/learn-cryptography)

## Don't worry, you can always learn more

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."