views:

326

answers:

9

Possible Duplicates:
What is the easiest language to start with?
What programming language should I choose for an independent study language?

Well as the title says what language is good for a beginner and for a hobby? I'll probably be making some games or desktop apps with a gui most likely. I'll be working in Windows and Linux. Oh and could you also give some links to tutorials for the language?

+8  A: 

Python:

  • cross-platform
  • lots of GUI toolkits (Wx, Qt, GTK)
  • easy
  • tons of support (like here on SO :-)
jldupont
Tutorial: http://www.diveintopython.org/
itowlson
PYTHON !!!!!!!!!!!!!!!!!!!!!!
Hamish Grubijan
Yarr..as much as I love Python...that isn't the reason I voted it up. It really is a nice, clear simple language (yet powerful).
Mark
All 4 points apply for C too (and 'easy' is too subjective to be taken in consideration, IMO) :-)
Soufiane Hassou
+6  A: 

This is a subjective question.

We're used to see C as a starting language in schools/universities, but it varies a lot. Some are using Pascal (or were using it) and some are using scheme or Python.

In my opinion, buy yourself The C Programming Language and start learning C.

Soufiane Hassou
(+1) but it is offtopic for a hobyist :D
Hassan Syed
Eh... I was gonna say, when did you go to school? But you're 22 too... my school was more about Java. I'd say C++ is a good first choice too because it really gives you a deeper appreciation for how stuff works, especially with regards to memory. But C is arguably even harder and less friendly, that might be taking it too far back?
Mark
C isn't hard or unfriendly. C is consistent and simple. And for a hobbyist, it's the best way to really learn about programming and computers (discounting assembly, which is really difficult to get into). The learning curve is no problem: you won't be making really complicated games for quite a while, no matter what language you use.
Chris Lutz
+2  A: 

Python is a good all rounder. GUI wise Java / C# and Objective-C are good because of the tools available.

Lua is a good stepping stone; however it's for a much more advanced programmer.

For serious desktop application design and games I would go for C++, however try your hand at C# first since it has XNA for game design :D

Hassan Syed
+1  A: 

I would say Python

  • Easy to learn
  • Covers both of your operating environments
  • PyQT would help you with GUIs

This post lists out a few good tutorials http://stackoverflow.com/questions/207701/python-tutorial-for-total-beginners

cheers

Andriyev
+4  A: 

This goes for both, beginner and hobbby: C#. I think the language is very easy to learn, there are many easy-to-follow-videos in the msdn.com network: http://msdn.microsoft.com/en-us/vcsharp/aa336766.aspx and you can do very useful utilities, games, etc.

Once you've got the grip on C#, I think you would enjoy coding in vBasic or Java.

All in all, I don't think there's an order for this, but I do know some are more complex, and therefor I'd advice you to start with C# for the fun and for the outcomes.

cr0z3r
+1  A: 

I would recommend a dynamically typed language like Python.

Python is multiplatform, has a very good online documentation, source code is usually easy to read (even if you aren't the coder) and it comes with "battery included" (has a extensive standard library). PEP20 - The Zen of Python resumes the spirit of the language.

In the documentation section of the homepage you can find a Tutorial, and others links like a complete specification of the standard library and language reference.

Note: I made a really nice post with a lot of links but since i'm a new user, i'm not allowed to post more than 1 link, what a shame. Edit: Now i could add the links =)

KurzedMetal
A: 

Since you mentioned Desktop, GUI, Games, Windows and Linux, I suggest that you also have a look at

RealBasic

If you decide on doing Web development then there are many good answers posted above.

Square Rig Master
A: 

It is a matter of taste. C seems to be the lingua franca of programmers and a great procedural language paradigm. My selfish mathematical bias goes for Haskell. I would recommend you to read "Programming Language Pragmatics" by Michael Scott or "Concepts in Programming Languages" by John C. Mitchell, for a good survey in different programming language paradigms.

dsantos