4 ms·
I completely disagree with lutusp. It depends. I cannot give you an unequivocal yes-no answer. You don't learn a language for the sake of learning a language.
by argonaut 14y ago
I completely disagree with lutusp. It depends. I cannot give you an unequivocal yes-no answer.
You don't learn a language for the sake of learning a language. You learn a language in order to accomplish something. So what is that "something" that you want to accomplish?
If you want to build a web app, you don't learn Java, you learn Python or Ruby (and use one of the web frameworks). If you want to build the front-end of a website, learn Javascript, HTML, and CSS. If you want to build an iPhone/Mac app, you learn Objective-C. If you want to build an Android app, learn Java. If you want to work with machine learning, consider learning Java or Python or C++, depending on what libraries you use. If you want to build Windows apps, learn C# or Python or Java. Etc. Etc.
EDIT (reply to below):
I learned Java in school (the language and most of the essentials of the standard library). I have never touched it again. If you ask me to build a real-world product (i.e not just implement an algorithm or something) in Java today, I would not be able to do anything until I teach myself the necessary libraries. Not to mention that precisely because I never built any large projects in Java, my understanding of Java is very weak. If you're going to learn a language, you might as well learn the language that lies on the path to building something useful.
Most employers are going to hire you based on what you're capable of building, not what languages you know. (I think the exception would be "big" companies who are not technically focused).
- lutusp 14y ago> You don't learn a language for the sake of learning a language. You learn a language in order to accomplish something. Yes, and if what you want to accomplish is to be well-versed in modern technologies including the common variety, you will be familiar with Windows, OSX, Java and a few other things. Not because these represent the pinnacle of technical sophistication, but because clients and/or employers will expect you to be familiar with them. > So what is that "something" that you want to accomplish? The OP is a student, asking what technologies he needs to be familiar with in order to be functional in modern computer technology. That's what he wants to accomplish.
- duiker101 14y agoI feel I have to agree with argonaut. Even if OP is a student there must a be a project he wants to work on. Whatever it is, it can probably be done in java, and it's worth doing it to learn. Trying to learn a language without actively using it to build something on which you can experiment more than just the examples of some book is really really important and you will learn way faster.
- knkella 14y agoI think having strong programming foundations is very important. And learning any one language C++ or JAVA is enough to do it. Once you have strong foundations, then you should learn languages that you want to use to develop something. Otherwise I think learning for the sake of learning is useless.
- logn 14y agoI disagree. Your advice holds for someone already in a career. For a student they definitely should learn a language based on external factors (marketability of the skill, ubiquity, applicability to other languages, etc). To the OP, Java is a great language for students to learn. It's OOP through and through (with the exception of primitive types). It's probably a prerequisite on more job ads than any other language (at least outside the HN microcosm). It allows you to discover a whole world of Java tools and libraries. Any language you transition to will have a whole audience of people moving to it from Java/C and language designers take this into consideration for their syntax. You could spend the rest of your career writing Java, but there are certainly much better ways to write webapps now--but those ways only came about after every fortune 500 company built up a huge Java stock.