Whether your just getting started with programming or you have been learning for many years now, the most common question you have probably asked yourself is: What language should I choose?
I asked myself that question quite often for a long time, but now I have the answer and I'm here to tell you it!
1. Consider What You Enjoy
Maybe it sounds obvious but, how much you enjoy writing/testing/debugging in a language plays a huge role in your confidence and in turn ability to code with that tool-set.
When you find a language piquing your interest you want to learn more and more about it, you get that drive to dive deeper and deeper down the rabbit hole.
One language that really gave me that feeling was Gleam, it managed to wrap everything I liked about languages such as JS, Rust and even Java into one brilliant type-safe package.
Not for a long time before I met Gleam had I wanted to try creating so many different things just to get to the bottom of how this language ticked, as it were.
So let's say you want to do web development, you watched some YouTube's and all the cool kids are using React and Next.JS, maybe you decided you would go another route like Golang with HTMX. Whatever it is, you have inadvertently joined a cult, welcome!
All jokes aside the framework or language you start with can typically stick with you the longest, like Javascript or perhaps Python. From that point you have options, you could do what I did and just follow demand or like some others have done and just tried absolutely everything their language had to offer (that means all frameworks too).
Maybe you decided you would stick a limb out and jump on the Rust bandwagon, ride off into the sunset and crash into the borrow checker inevitably a few hundred times.
The point I want to make is, if you have an itch for a certain language or tool, go ahead and try it. And once you find something you love, stick to it!
2. Demand in the Industry
The second key decider is simple: Is it in demand?
When choosing a language or framework, you want to make sure your skills align with industry needs, unless you're freelancing. Freelance work typically gives you more flexibility in your choice of tech stack since, at the end of the day, clients care more about results than the tools used to get them. For instance, Martha who just wants to share her 56 cats with the world via a blog that automatically gets cat photos from her phone and posts them will not understand the difference between a backend in Rust or VisualBasic when she is using her site. If it works, it works. If you love what your doing, your on the right track.
If though your looking to join the next big unicorn startup, it's worth understanding the tech trends in your desired industry. A large amount of startups have been using Javascript frameworks like React or it's many delineations such as Next.js or Remix. So your best bet will be learning as much as you can about Javascript and trying out a few frameworks for yourself.
If your looking for maybe a more backend focused position though at a startup I have heard Golang is becoming more and more popular, but make sure to check your facts!
In general my advice is, if your going freelance, do exactly what you want to do! Use Rust and Dioxus, use Gleam and Lustre, use Python and Django, whatever your heart desires follow it.
If you though want to go after startups or just a company in general, do some research into companies in your local area if that is an option where you live or start doing market research into the most sort positions and compare the requested skills with what you enjoy, that will help you make a better guided decision.
3. The Importance of Experimentation
Ultimately, thereβs no substitute for hands-on experience. One of the best ways to learn and grow as a developer is by trying different languages and frameworks. Each one will teach you new concepts and offer unique insights into how problems can be solved.
Over the years, I've gone from Java to JS, dipped my toes into Rust, and many others, all while picking up knowledge along the way. The more languages you experiment with, the broader your problem-solving toolkit becomes. Concepts like concurrency in Go, type safety in Rust, or the asynchronous, non-blocking, dare I say rage inducing, nature of JavaScript all build your understanding and make you a more versatile developer.
If youβre interested in a language other than the one your currently the best at, give it a go! The only way to know if you like something is to try it.
Final Thoughts
When deciding which language or framework to learn next, balance personal enjoyment with practicality. If you like a language, you'll naturally lean toward mastering it. At the same time take a good look for the opportunities available for you and how they align with your interests.
No matter what you choose, whether it's diving deeper into a familiar stack or venturing into new territory with a brand new language, the key takeaway is this: Experiment, learn, and apply. Every language you learn contributes to your growth as a developer, and in the end, itβs not about the language itself but how well you can use it to solve problems and in turn make the world a better place.
This has been Jasper, until next time π
Top comments (6)
I love Go and HTMX, but modularizing HTML templating into components can be a real pain. On large, more robust products you will find yourself repeating code and when you make changes you'll have to update several spots at a time.
I also fell into the rust hype, but Go is actually very similar in speed and even handles concurrency better and the syntax is much more simple.
Just some of my experiences I felt like sharing. Very well written article! I really love the part about experimentation! So important at the beginning stages :)
Yeah, I definitely agree about that Go is superior in its friendliness + speed compared to Rust. Me personally I tried Go but something about it's syntax really "triggers" me haha.
I just can't enjoy writing in it which is a real shame.
Thanks for the comment, always love to respond to them :D
I think it's important to learn a language that will let you see results ASAP. JavaScript is a good one because you just need a web browser and you can start messing with things in the console, the feedback is instant.
Ruby is a nice gateway drug as well, it's a little more difficult to setup but if you start learning Sinatra or Rails you'll be able to get a working website up and running, at least locally, very quickly as a beginner.
I'm partial to Elixir (I've been programming in it for the past 5 years) I'd argue it's just as beginner friendly as Ruby but with even fewer gotchas along the way.
Your point is so true Travis, finding a language you can really get your teeth into early through making all sorts of projects is super important.
I have heard a lot of good things about Ruby and I am extremely tempted to try it out, only thing holding me back would be lack of time and I had heard that Ruby's LSP (Rubocop) is not very good which could make it harder to get into.
Feel free to correct me if I am wrong haha.
That may be true of older Ruby versions but there are several LSPs for Ruby out there now. Unfortunately, I can't vouch for any, most of the Ruby I do at work is kind of legacy. But I know Shopify has their own LSP for Ruby now. And there is also Sorbet from Stripe . Also newer Rubocop may be alright.
Oh alright, I'll definitely look into Ruby again thanks!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.