I'm feeling conflicted on which languages to learn

As I continue to learn web development I come back to a personal conflict of mine which continues to bother me. For the past several months I took a break from, learning Javascript to focus on other projects of mine, at the same time I’ve focused on learning a programming language called Elixir (awesome programming language).

During this though I have continued to wonder, what other languages (not including HTML/CSS - I already know those practically by heart) should I focus on if any. Is javascript the most important (more refering to server-side js - client side js is fairly simple and it’s not something that takes me a long time just reading MDN a bit and I’ll be fine - NPM/Node.js is a bit different), should I try to learn Ruby or Python, what about Go (Google’s programming language)? There are so many different languages obviously I can’t learn them all and it’s difficult to decide which languages what to stick with and invest my time learning.

Functional programming languages like Elixir are easy to understand yet people seem so hyped about object oriented programming languages, it’s difficult to decide what types of languages are best.

What are your thoughts on this?

I’m a practical guy. Whenever I want to know what to work on, I scour the local job ads to see what is getting hired. SO also collects a lot of day about what is popular, what people are using, and what is paying well.

3 Likes

The market for Ruby & Ruby on Rails is very saturated due to so many Bootcamp’s teaching it and so few job’s for it. I would recommend looking into C# & .NET

If you want to know how to learn more C# then follow my guide on it.

3 Likes

Learning new languages is a bit pointless unless they introduce you to new concepts, paradigms or you actually need them (eg. you want or need to contribute to an existing codebase). Nobody really cares how many languages you know, but if you can deliver.

2 Likes

I’m not interested in writing applications for Windows / Windows Server.

C# & .NET creates Fullstack Web Applications. It is a very popular technology and also very flexible.

1 Like

An alternative would be Java, Spring and Angular stack.

But best way to choose is to do a research on what languages are sought after in your area.

There’s no point in learning Go, for example, if all the local job postings need a Java developer.

1 Like

It’s primarily used on Windows Server, a platform I will avoid developing on.

In my area there’s one company I’m interested in working for who primarily codes in Ruby and Elixir.

Like the others have said the local listings are valuable. Which is why i’m currently working on PHP (please spare the guffaws) as where i am in the UK it is in very high demand.
Interestingly the last stack exchange statistics I saw showed a significant decline in ruby/rails. I similarly have taken a break from front end to focus server side and would have prefered python but if the lang don’t pay, it hold’s no sway. Also PHP is a segway into the huge cms market involving wordpress, drupal etc Admittedly less fun but they pay out. And correct me if im wrong but isn’t OOP so preferred because once projects get large you need more abstraction than functions alone can provide?

Yeah I’ll move to a new area before I even think of dooming myself of a life of maintainining legacy PHP code :roll_eyes:

Based on advice from other people I’ve talked to & my own experience, to give a broad enough spread to be able to understand/pick up almost anything put in front of you:

  • A low level language (C/C++/Rust; OCaml and Haskell can produce very fast low level code as well)
  • A primarily OO language (C++, Java, C#, Ruby, Smalltalk)
  • A primarily functional language (ML, Haskell, F#, OCaml; also Clojure, Elixir)
  • A language built for distributed/concurrent systems (bit nebulous, but Erlang, Elixir, Oz, Scala/Akka)
  • A logic language (Prolog, Mercury)
  • A Lisp (Clojure, Racket, Self)
  • JavaScript for hopefully obvious, pragmatic reasons.
  • Edit: possibly an enterprise language, again for pragmatic reasons (Java or C#)
  • Edit: a declarative language (not normally a Turing complete language, cannot exist in isolation: SQL, Regex and CSS are the most obvious and probably the most important)
  • Edit: other options are a scripting language (very useful, different languages are useful in different situations, list is huge - eg Bash, Python for CLI; Lua, C# for games), a stack-based language (useful for embedded, Forth is the primary example and is great), a language designed for maths (R, Julia).

Also advice I had was learn one a year. Gets a lot easier after the first two languages. Also in many cases it doesn’t matter what the languages are, though note some things are harder than others (you can do functional programming in C#, but it’s much easier in F#)

3 Likes

I think because your attitude stinks so badly towards PHP, you should learn it. Are you aware that PHP came out in 1994 and JavaScript in 1995? Do you have any real argument against PHP other than it being “legacy”? Who knows, maybe if you actually used the language, you could form some better arguments on these forums against it that could actually hold some weight. Seriously, find some new arguments against PHP and maybe I’ll start taking yours posts on here more seriously.

“My toy is newer than your toy.” Yes, but only by a year. Not to mention, there are 6 figure jobs out there for PHP developers!

2 Likes

I might just stick with Elixir Primary, and Javascript for projects that require it, I’m considering C++ just for technical interviews,

Honestly both PHP and Javascript are legacy, I’d really like to know who decided it was a good idea to invent server side javascript.

Technologies like WebAssembly will eventually replace Javascript or at least complement it. As for PHP it’s legacy style of coding, that’ll be years from now if not decades. Libraries like React are nice but I ask you, is it really the best solution to solving UI Challenges. Elm looks promising to me :slight_smile:

I never said there were not PHP jobs available, I said I don’t want to spend the rest of my life maintaining legacy PHP code. I’m betting on functional languages being the future of web development.

You can write functional PHP :wink:

I had no idea either until going back to PHP after a while and feeling like the language was “archaic” only to find out that you can write functional PHP! But much like JavaScript, how many tutorials out there use functional programming? (unless of course, it’s an actual article ON functional programming).

2 Likes

You “can” but is it the best solution? Other languages exist that were built as functional from the ground up. PHP also tends to run slow compared to other languages. It’s yet another reason I choose to avoid the language.

As for javascript it’s a popular language so many people have built on top of it making more and more new things that rely on it, at its core though it’s an still an old language people are constantly making major changes to it so I see it still having a long life though I have my concerns, I guess javascript is worth learning due to the vast amount of open source projects written in it and the many UI Libraries like React and Vue which require it.

I don’t see much value in learning PHP unless you want a job maintaining older codebases which rely on it. I’d rather not spend the rest of my life maintaining a PHP codebase, it would be a very dull life to me.

EDIT: I’ll add the javascript version made around 22 years ago, isn’t the same javascript we have today. I don’t know which variants of javascript to consider relevant to today’s work vs which variants of javascript are legacy. I’m conflicted as to which types of javascript are relevant.

Ah but I have used the language, in fact I’ve written a good chunk of freeCodeCamp’s PHP Guide: Issues · freeCodeCamp/guide · GitHub I obviously had to use PHP to learn the language to use it. I still dislike the language, it’s style seems bad, it runs slower than other languages (slow == need more servers == high cost language | Boss ain’t gonna be happy to know he’s paying money he could save if you used another language), and back to the I don’t want to spend my life maintaining legacy code.

“A language that doesn’t affect the way you think about programming is not worth knowing.”
Alan J. Perlis

4 Likes

Any new language I learn should give me new ideas about how I develop. Great quote.