Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What language should I invest my time into?
12 points by niix on Jan 20, 2015 | hide | past | favorite | 15 comments
Hello all, I'm a professional web developer and live in JavaScript land. By night and by day, its my passion also my career.

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?

Don't learn a specific programming language. Learn programming.

The book you want is here: http://mitpress.mit.edu/sicp/

Exactly this.

I'd take this a step further and expand your knowledge with a sense of breadth too. Suppose you currently only know Java, it's far more useful to learn something completely different, e.g. Lisp/Clojure or Prolog than it would be to learn C#.

The broader one's background the easier it is to pick up anything new along the way, and if there's one fact of life as a developer, there'll always be knew things to learn along the way.

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.

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


I was going to say "learn the universals, not the particulars" but you have said it well.

Good advice. I almost kind of expected this sort of answer :)

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.

"Go forth"

pun intended?

Learn Clojure (and LISP).

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

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.

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.

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.

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.

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.

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

Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact