views:

287

answers:

6

I'm in the process of learning C++. But there's so much more that I want to do online - web apps, iphone apps, websites.

So I'm thinking of learning another language, one that would allow me to make (or at least attempt to make) useful applications.

Now, what language should I look into learning? And, how do you recommend I go about learning it?

+2  A: 

I'd guess Java wouldn't be a bad choise. You can use it for desktop applications, web applications, android applications.

c++ is a nice language for desktop applications.

Although in all honesty, learning a language is more about learning the logic/possibilities than the language itself. If you know C++ the jump to java/c# isn't too hard.

You can also use c# for desktop applications/web applications(asp.net backend).

Do take into account that iPhone applications use objective c.

As to to learning it. There are plenty of tutorials (and if you're interested in Android then the google site is a nice source). But one way of learning it that might be useful is just setting a goal for yourself and looking things up as you need them. This might cause you to review some things but it's a nice way to figure it out and try new things.

Although Monotouch (http://monotouch.net/) allows you to write iPhone apps in C#, then compile them down to Objective-C. You can use C# to write web apps within the .NET framework. (Stack Overflow is I think written in C#, for example.)
Paul D. Waite
yes Stack Overflow is writen in c#, asp.net mvc :)
CoffeeCode
A: 

.Net is a realy powerful technology! so on your place i would learn it as i language take c#

Win apps: winfroms + c#
Web apps/sites: asp.net(webforms. mvc) + c#
iphone apps: MonoTouch + C#
windows mobile: c#
Devices: .NET Micro Framework + c#

So Learn C#

CoffeeCode
c++ mutant brother
fazo
the same as java
CoffeeCode
I'd revise this answer as follows:Win Apps: C#, Web Apps: Ruby (Rails or Sinatra), Mac Apps: Cocoa + Objective-C or Ruby, iPhone/iPad Apps: Cocoa Touch + Objective-C, Windows Mobile: not if you want to make money and retain dignity.
Jonathan Sterling
Rails became popular because of the mvc pattern! but now there is asp.net mvc. i'll be quiet about windows mobile... but u cant fight with microsoft ;)
CoffeeCode
A: 

Some simple interpreted language would be good. Python, PHP, or Ruby for web development work. Python, Ruby, or Lua for applications development. Bash, or Lua for really short scripts and stuff. For stuff with a lot of text processing, Bash is king. Perl is (in my opinion) barely good for anything, but a lot of people like to use it for text processing and short little scripts as well.

Also, a good programmer is comfortable freely intermixing programming languages, so while you shouldn't be actively learning more than one at a time, it's good to know a few of them and know which ones are best for what use.

Max E.
I think that when the obsession with "simple" and "interpreted" dies out, it will be a good to know Java. Of course this hasn't happened yet, so even PHP is a good bet with a huge amount of community support (though it's a horrible language).
Yar
A: 

It really depends on what you want to do with it. For web development, I suggest Ruby. For desktop applications, try C++ or Python. It's whatever you choose.

If you're already learning C++, stick with that for now. When you master it, move on to another language.

Ethan Turkeltaub
+1  A: 

ANSI C first, then Objective C for Cocoa (iPhone, Mac), then C++. Never learn C++ first. Python is great for web development, as are a multitude of others. Get the basics first, start with C.

serotonin
I've seen what happens when people learn C/C++ as a first language. It's just sad. They think programming is all about busywork and boilerplate and details when that's really not what programming *is*. C is an important language to know, but it's not "the basics," not by a long shot.
Max E.
So it goes far off topic then. What is programming, then? (Not that I disagree, but, fundamentally, where do you start to define the expression of your ideas in the medium provided?)
serotonin
A: 

I would suggest Java because as other people have said its not about learning a language but rather the principles. Java has good documentation, has been around a while and covers pretty much every concept behind programming (I hear pointers aren't the same as in C) If you go with another language you might get bogged down in the documentation and take away from the concepts that you are meant to learn from programming.

Once your a pro at Java you should pick up most other languages very quickly. You will also find that no matter what language you chose you will one day find yourself needing another one, if you don't have the concepts behind programming it won't be easy to learn

Rudiger