Found in 1 comment on Hacker News
g42gregory · 2013-11-12 · Original thread
Absolutely, Yes. As somebody mentioned, the more languages you know, the better you understand any of them. More specifically:

You need to know at least one of the fast, compiled languages. The choices here are C++, Java or C#. Among these three, Java is by far more pleasant to work with (personal opinion). C is not really an option, unless you need to do networking, drivers, and work directly with hardware.

Please do not equate Java with J2EE or Applets! :-) J2EE sucks and Java rocks (again personal opinion). Modern Java programming style is a lot less OOP-rigid. We will have Closures and lambda functions in Java 8 in 2014. Here is a good book with more modern views on Java programming model: http://www.amazon.com/Introduction-Programming-Java-Interdis...

Here is what Java is actually good for:

- Natural Language Processing and Machine Learning. Collections APIs (Thanks to Joshua Block for designing them!) rock there. Yes, you could do the same things in C/C++ but it's a lot more painful. And no, you can not do this in Python, it's too slow.

- Information Retrieval at a large scale.

- Any large systems. Java has debugging capabilities like no other language I know. Please don't use J2EE!

If you want to work for Google, you need to know C++. C++ is 20 - 30% faster then Java and it matters at Google scale. But no one else has the Google scale in the corporate world.

JavaScript is another "must to know" these days, especially Node.js and AngularJS.

Python is the nicest interpreted languages I know. Really good for learning data analysis, machine learning and natural language processing. Tons of good libraries.

Fresh book recommendations delivered straight to your inbox every Thursday.