Tutorial :Learn a new language or continue with Java?


I'm thinking about going back to school in a year and turning my CompSci minor into a major. I feel that in the meantime I should keep learning, but I'm not sure what to learn. In school we mostly worked with Java, so I'm most comfortable with it, but obviously there's plenty more for me to learn--for example, I'm not that familiar with making GUIs in Java. On the other hand, I could try to learn a completely new language like C++ or Python.

I mainly want to be able to find an internship (whether or not it's paid) if I go back to school. If I should learn a new language, which one?


Every programmer should learn at least a couple of languages. What you mustn't forget is that once you have the logic figured out that's already 90% of the battle. Ultimately all programming languages can, in one way or another, achieve the same goal*. Some languages make it easier, some languages make it faster, some languages care about types, and some don't. Being able to adapt to syntactical changes each language may enforce is an immense strength for a programmer to harbour.

One think you must not do is learn an absolute mass of different programming languages just to say you have. Get the absolute best you can with Java (if you feel that's a language you enjoy), then start looking into other languages. There is usually a programming language best suited for a particular task. Sometimes people are forced to learn new ones based on these tasks, and that's not a bad thing.

* Yes it's debatable.


Push yourself and learn a different paradigm - something that will expand your mind, not just the number of languages.

Haskell is a pure functional language - hard to learn and understand if you come from OOP.


While I would personally recommend learning at least two languages, just so you can appreciate the differences and will be able to choose the right tool for the job, there's also something to be said for specializing in one and being able to whip up a complete application


If you are looking into getting an internship, I suggest you study algorithms, data structures, and other CS concepts that are language agnostic. Because when the interviews come up, the languages you partially know won't be as important an hiring factor as how you approach a problem and your understanding of fundamentals in programming.


It is good to learn new languages, it is better to familiarize yourself with a new paradigm. I suggest learning functional programming. There are good functional languages for the JVM. Examples are Clojure and SISC. It is also nice to take a fresh look at OOP with languages that provide true meta-programming facilities and extreme dynamism. For instance, have a look at Smalltalk, CLOS, Io (or Ioke, Io for the JVM) etc. Also see this article by Peter Norvig.


Before you migrate away to another language I would try focusing on the different aspects of the software development lifecycle which are language independent. For example a solid understanding of version control and how to use it to maximise your own/team productivity is worth gold.


I think you should maybe do/find the thing you like most in Computer Science. This is a very large ground with big possibilities. You can do many, many things, like GUIs, web development, databases, data mining, software engineering, network administration, algorithms, bio-med, etc. etc.

If you find out what you like, then you can test what programming languages would be best for you. Knowing Java very good is really valuable, but I think it's also good practice to discover something else. To compare and evolve yourself. Then you will know that some things can be made simple and faster in one technology and other things in other technology. You can also start thinking out of the box.

I would advice to learn pure C, can be ANSI, to know some quite low level programming. You can compare the speed of programs written in C and Java.

I can tell you that if you know one programming language very good, then learning new one is quite simple. They taught me that when you know C, you also know other languages (well in real it's not so obvious).

Main thing is to stick to what you like most. To enjoy it :) Yes, enjoy it!

So I would suggest to learn functional language like C.

Best regards, ventus

ps. sorry for not perfect English ;)


If you plan on finishing a Computer Science minor (making it a major), then you're bound to come across plenty of new languages to learn. The best part is you will be lectured on them rather than having to read tutorials.

That in my opinion is better than just saying "Hmmm.. what language should I learn?"

But still, taking these computer sciences courses will probably limit you to core languages (ie Operating Systems and such.) If it's web apps you're looking into making, then yeah... stick with Java, make it your hobby and learn to make Java Applets. If you find Java isn't your favorite thing, then move onto something like PHP.

You can always practice another language (at your leisure) while you're learning in school.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »