DEV Community

Benjamin Finkel
Benjamin Finkel

Posted on

But Which Programming Language Should I Learn?!

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:

Liquid error: internal

My post today is in response to a query from @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 and Redux? Or should we bone up on the back end languages such as Node, or PHP, or C#? Maybe we need to understand better how to work with a database and leverage the power of SQL Alchemy or Django ORM? It's enough to send your head spinning!

Spinning Head

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 *

Top comments (0)