

Ask HN: What language should I invest my time into? - niix

Hello all, I&#x27;m a professional web developer and live in JavaScript land. By night and by day, its my passion also my career.<p>Overall, I love JavaScript.  But I want to invest my spare time in something else.  Which languages would you recommend and can foresee having potential jobs around them in the next 15-20 years?
======
peterkelly
Don't learn a specific programming language. Learn programming.

The book you want is here:
[http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

~~~
memracom
It is a good idea to have a look at this book, but not every person will find
that a particular book speaks to them. If you can get into the groove of
Scheme/LISP then run with it, and after you finish SICP move on to Rack or
Clojure.

However it would be good to have a look at a few other books for leading
languages like Erlang, Scala, Python and see if something other language or
author fits your way of thinking better.

Because the most important thing is to get into the groove of learning at a
pace that you can sustain for several years. It will take years to master the
craft.

~~~
cpach
Clarification: 'memracom probably meant Racket (not ”Rack”)

:)

------
striking
Every language is essentially a fad. The newest fads are Julia, Go, and Rust.

Go forth and learn, if you want. But language doesn't matter, it's what you do
and how you do it that counts.

~~~
jghn
"Go forth"

pun intended?

------
tomconroy
Learn Clojure (and LISP).

If anything it will help you write better JavaScript (immutable data
structures, functional programming, functional composition, ...)

------
jacquesm
It's good this isn't stackoverflow because this question would be closed in a
heartbeat. I'm going to go completely against the grain here since you're
asking about jobs and advise that you learn Java. You already know javascript,
learning a second language will get you into the I'm a programmer and out of
the I'm an 'X' programmer mindset.

All languages are a means to an end, through various routes and with various
properties. Some are better suited to one set of problems than another.

Java may not be the most elegant language (to put it mildly) but it's a solid
one and it gives you some interesting long term options such as to use your
knowledge of the Java runtime and libraries by adding Clojure.

------
nevdka
If your concern is job security, learn COBOL.

If you want to become a better programmer, to be flexible enough to write
whatever software needs to be written over the next couple of decades, then
diversity is important. Learn a Lisp. Learn a scripting language like Perl.
Learn something low-level, like C or C++. Learn a line of business language
like Java or C#.

Most software doesn't require mastery of a specific language, and having a
broad background will mean you can adapt to whatever the future decides is
'in'. Learn a bit of everything.

Edit: Don't learn COBOL.

------
MalcolmDiggs
15-20 years is an incredibly long time in programming land. The only language
I'm fairly certain will be around then is C. It's kind of a b*tch to learn,
but once you do, it will certainly help you pick up other languages more
quickly (seeing as many are written in C). I think your best investment, long
term, would be to learn something very low-level like that; so it can help you
interpret and understand the ever-changing world of high-level languages as
time goes on.

~~~
rjammala
If there is one thing I have learned over the years it is this. If you can
really master C (not just the language but actual low level programming using
it, like the Linux kernel), no other language is necessary. And as already
pointed out, you never need to worry about job security.

------
coralreef
On what platforms/systems do you enjoy building things for? Software/internet
isn't going anywhere. Everything appears to be gradually shifting to mobile,
but I still think websites will be just as important.

------
sumodirjo
I agree with striking about Go and Rust. But I think Python and Ruby is not
going anywhere soon. Most large systems still use Java (or Scala) right now so
this is a good skill too

