But Which Programming Language Should I Learn?!
Tags: beginners, healthydebate
Published: 2020-03-07 16:08:50

*Each week I'll be combing through the #HelpMeCode hashtag on Twitter and looking for questions that I believe I can help answer and would benefit from a deeper dive than the Twitter platform offers.*

**Today's Tweet:**

{% twitter 1234820861670105089 %}

My post today is in response to a query from [@KyleZollo](https://twitter.com/kylezollo). He posted a poll asking for input on which programming language he should learn next, and had some follow-up questions about his results.

*Pretty interesting split in this poll. I’m aware that Java is one of the more popular languages. Not totally sure where Go is used (containers? Advanced web dev?) Would anyone care to enlighten me?*

It's a great question Kyle! You're certainly not the first person in technology to wonder where to focus your time and energy for learning. We all want to make sure that what we're learning has value to employers, customers, and ourselves. Even after 24 years in this business, my career with CBT Nuggets forces me to ask this question routinely. After all what good is my training if I'm not learning and teaching the valuable stuff that people want to know?

But IT is an enormous field. Even in our subset of IT, as programmers, the choices are varied and wide-spread. Do we focus on front end technologies like [React](https://reactjs.org/) and [Redux](https://redux.js.org/)? Or should we bone up on the back end languages such as [Node](https://nodejs.org/en/), or [PHP](https://www.php.net/), or [C#](https://docs.microsoft.com/en-us/dotnet/csharp/)? Maybe we need to understand better how to work with a database and leverage the power of [SQL Alchemy](https://www.sqlalchemy.org/) or [Django ORM](https://www.fullstackpython.com/django-orm.html)? It's enough to send your head spinning!

![Spinning Head](https://res.cloudinary.com/benfinkelcbt/image/upload/v1583594213/devto/spinninghead_bsxdnb.gif)

There's certainly no easy way to answer a question like this, but I believe Kyle cuts right to the heart of a good approach in his query. When Kyle asks **what** the applications for a language like Go are, he's framing his question in a much more answerable way. By identifying a use-case.

Defining learning goals in technology should not be about learning a given language. I can spend ten minutes and write an If-Then-Else statement in a dozen different languages, but it's not clear what value that would add to anyone. Instead I choose to define my goals by output. What do I want to accomplish? What tasks can I perform? What's a problem to solve? 

It's only with an end project in mind that we are ready to explore the underlying technology that goes into it. The question isn't "Should I learn Go?" but rather "I want to implement a high performing Pub/Sub server on a public cloud service. What do I need to do that?" By answering that second question you may find that Go is the right choice. Or you may not! You'll research the technologies that accomplish your goal and learn how to leverage that research into achieving that goal.

At the end of the day your **most valuable asset as a developer** is not what you know, but your confidence in **your ability to learn what's needed** for any given project. Understanding this will make your journey through IT interesting and successful and, just maybe, fun!

---

*Find all of Ben's training content here, at CBT Nuggets - http://learn.gg/ben-finkel *