So many languages, what to learn?

C, C++, C#, Java, Python, Perl, PHP, ect. An awful lot of languages it seems to me. I'm learning programming (Starting with C++ and a decent ways into learning it) and I was wondering what languages I might find most useful? Lets say Windows aps, Android aps, and games where my main focus(MAYBE a bit of web stuff too). What languages would help me the most in this? I want to learn at least two maybe more, because one doesn't seen like enough.
I think for Android aps Java would be a big help because that's what they are programmed in, right? Also afaik Java is a good place to start for game programming... it is also required by every C.S. major.

There is a school by my house called UCI (located near Blizzard Entertainment headquarters) and their "game programming" bachelors is listed on the website as "java intensive". Every other school I have looked at( i hope to transfer within 3 years time) has had Java as a language that is looked at in depth.
Well, for windows programming you'd probably want to look into C#. Java is always good to know, and C++ of course. Knowing one or two scripting languages like Lua or Python also doesn't hurt.
As many as you can. Java is the industry standard for some reason (I like it but IMO C# is a nicer language). That and C++ will give you a good foundation and you can go from there.

[edit] Do make sure you learn languages thoroughly; I used to try and learn several languages at once but it gets complicated. Rather than getting good at both languages, you end up being barely able to write in either.
Last edited on
That's very helpful, thanks a lot guys.

 Do make sure you learn languages thoroughly; I used to try and learn several languages at once but it gets complicated. Rather than getting good at both languages, you end up being barely able to write in either.


I know, I want to learn more than one at once, but I'm making myself stick to C++ for now. I've had a few people tell me that's a good place to start. I've had more luck understanding it than Java. Next on my list is defiantly Java, then probably C# and a bit of Python.(Python doesn't look to hard from what I've seen.)

Also, by learning them 'thoroughly' what do you mean? What would you consider thorough? Being able to use it fluently, or near a pro at it?
Last edited on
closed account (zb0S216C)
Zexanima wrote:
I was wondering what languages I might find most useful? (sic)

It greatly depends on the circumstances. Each language has it's own disadvantages and advantages, agreed? Each language performs task T more efficiently than the others, while other languages allow low-level processing. Some languages do task T while others do not.

The matter of fact is, you can't choose a language solely based on its popularity. Choosing a language depends on the task in hand, not the level of popularity. Speed, efficiency, flexibility, and functionality, to say a few, are the factors to take in consideration, as well as the project in hand.

It's almost impossible, if not impossible, to learn every language. The most useful language, and so far, the most flexible, and quickest language would be C/C++. C++ has vast 3rd-party libraries such as Qt that encourage quicker UI production. It's not without its handicaps, however.

If I had the give a quick evaluation of two languages, I would indefinitely choose C/C++ and Lua as my weapons of choice. Lua and C/C++ are fast; mixing the two together is music to my ears. The API for Lua is written in straight C, which makes it a little faster, but the interpretation stage lets it down.

Wazzak

The most useful language, and so far, the most flexible, and quickest language would be C/C++.


This is a personal opinion, that may change in the future. I also thought that when I was a beginner (= learned C++ at university). For me it is neither the fastest to execute (assembly is faster), nor the fastest to code in (Scala is much faster), nor the simpliest to learn, nor the most popular among scientists / business, nor the most useful (if judged by number of areas where it excels), nor the most portable (C kicks its ass) and lot of other nors... :D

Choosing a language is a multicriteria optimisaiton problem. There is no optimum. Only many Pareto-optima.
Last edited on
I want to develop applications and games for windows and android. Considering this, what language's would you consider to be most practical for these goals? To tell you where I'm at, I'm just thinking about writing the names of languages on a wheel, and where ever it stops is what I learn. My only one I'm semi certain about is Java(other than C++), because I know it's good for games and android apps. I get that it varies between person/project, but given my interest could you speculate, give me a heading at least?
@ rapidcoder: Writing code in Assembly is only faster if you are able to optimize for the specific tasks in a program better then a C\C++ compiler can. And if you factor in upkeeping your code as far as speed goes then writing in Assembly fails as an option.

Right now the only metric to go by is what positions are being hired for right now. If you are at least 16 years old then I'd say learn Java next, this will give you the highest probability of landing a job as a programmer, you'll mostly be upkeeping someone elses code but that's what passes for entry level work in this world.
I'm 18 btw, and yeah Java is defiantly my next then. I mean, I really love programming, I could do it all day every day. Only makes sense to make a career of it. I don't really see myself getting burnt out on it either. There is just so much to learn, and so many things to do with the knowledge. Thanks for the insight guys, you really seem to know your stuff.
Sounds like Java or C#. They're basically the same...I'd go Java. If you're after a scripting language try Python.
I don't know why so many promote python for a scripting language of choice. I didn't like it, personally. My preferred scripting languages are Perl, SmallTalk, and Tcl. But that's just me O:
http://xkcd.com/353/

Hovering the mouse over the comic will give Randall Munroe's opinion on Python vs Perl...
Personally I get in touch Perl first before Python. So despite this, I feel Python is more structured in the way the language is being designed. It is more OO than OO Perl :P

I also like the many data types like set,list etc and abundant pre-packaged libraries similar to C++ STL that is part of the Python core language features. This makes it ideal to implement a lot of algorithms in double-quick time. Hence a lot of Computer Science professors are using Python as their algorithm implementation.

The only downside I found about Python is depending on what task you are doing, it seems to execute slower than Perl. One task is regular expression parsing and execution speed. This is debatable but at least in my own testing based on my own RE input, I am getting much improved timing from Perl.

The future of Python looks bright so I am keeping tab on it's development. Hopefully, the Regular Expression engine get faster in newer version :P
He does have a point, it's soo much easy to write a small script in python than perl. How is it for file handling though? I mainly use perl for parsing plain text files.
it's soo much easy to write a small script in python than perl.


Errr.... when you say easy you are referring to the number of lines of code ?

Perl is well-known for it's terse and compact-ness so it can achieve a lot of functionalities with few lines of code. This however make the code rather ugly and hard to maintain so it is not recommended.
I meant, if it's an easy task and would be quick to write to begin with, it would be easier to write it in python than perl. By short script I meant relative to a script that has to do a large amount of things.
@xander337: File handling in Python is very simple and intuitive, I definitely recommend it for parsing plain text files.



Python and Perl are ok as long as you write short programs in them. But for longer things, lack of static type system really sucks. And it sucks even more for maintenance.

Among dynamic languages I seriously recommend learning JavaScript. It could be prettier, but still it is the only scripting language for web applications you cannot replace with a better one for that particular tasks it has been created for.
Last edited on
Python and Perl are ok as long as you write short programs in them. But for longer things, lack of static type system really sucks. And it sucks even more for maintenance.


Scripting languages have often been criticized for not being ready for 'big' program. To a certain extent based on my 'brushes' with them, it is true. But for the systems administration side, I have seen 'big' program written in Perl to do their daily or periodic systems related tasks. It spans over 10+ files all called each other into a 'big' program. My gut feel is since most of their logic involve calling Unix commands and then pipe their output to process etc, it make perfect sense to use scripting languages as it is easier to 'interface' with those built-in Unix commands.

This is a classic case of when a scripting language would be more appropriate than a compiled language IMO.

Among dynamic languages I seriously recommend learning JavaScript. It could be prettier, but still it is the only scripting language for web applications you cannot replace with a better one for that particular tasks it has been created for.


Agree. For website client side scripting, JavaScript seems to have few rivals but for server side, you do have varieties like Perl,Python etc.
Topic archived. No new replies allowed.