3 Replies - 1293 Views - Last Post: 06 April 2013 - 04:30 PM

Deciding on languages to learn

Posted 06 April 2013 - 04:38 AM

I am having a little trouble deciding which classes I want to take. I am already learning Visual Basic and Java, and have decided that C# is probably a good idea, but don't know where to go from there. Here are my goals.

I am active duty military (enlisted). I plan to get my commission when I get my Bachelor's and I want to be a programmer in the military. I plan to develop software for DOD use, but I'm not sure what languages (outside of the ones I named) would be most beneficial. I was wondering if I could get some suggestions.

P.S. If there are any non-language classes that I should probably take, feel free to suggest those as well. My degree is pretty flexible.

Replies To: Deciding on languages to learn

Re: Deciding on languages to learn

Posted 06 April 2013 - 05:01 AM

Becoming proficient in either of Visual Basic or Java is a major undertaking so I wouldn't worry about other languages at the moment. Once you've become proficient, and confident, in one language it is easier to pick up another, but jumping between different languages, especially while still at an early stage, will IMO hinder your progress.

Eventually, moving to C# from either Visual Basic or Java should be relatively straight-forward; it uses the same .NET Framework as VB and its syntax is very close to that of Java.

ViviWannabe, on 06 April 2013 - 11:38 AM, said:

P.S. If there are any non-language classes that I should probably take, feel free to suggest those as well. My degree is pretty flexible.

Why not do something completely different - something that interests you

Re: Deciding on languages to learn

Posted 06 April 2013 - 07:43 AM

C++, Java and VB.NET are more or less different syntaxes for the same thing. All three are object orientated imperative languages. Add to this that the .NET library has a lot of similarity with the Java class library that you can jump right into programming with one language if you know the other. The differences are mainly bells and whistles. The big one is lambdas which once Java 8 comes out this year will be supported by all three languages.

If you want to learn more about programming in general then you could learn languages form different paradigms:
Imperative: C, C++, C#, Java, VB.NET, Ruby, Python
Functional: Haskell, Lisp, Erlang
Logic: Prolog

Or by some other language features
Object Orientated: C++, C#, Java, VB.NET, Ruby, Python
Concurrent: Erlang