

Which languages young and intrested student should choose? - JJKraMer

Hi!<p>20 year old finnish (soon to be)University student here!<p>I've got some experience with C -based languages from vocational school, but thats pretty much it, so i figured i should come and ask from the experts as i really didnt get a clear image what different languages are used for(about any other languages besides C &#38; C++ atleast) from the classes i attended at vocational school<p>my main interests reside within games and systems they run on, as well as platforms, so my 3 main subjects will most likely be<p>1.Programming/Software Developement<p>2.Electronics<p>3.Economics and Enterpreneurship<p>Sooo any thoughts?
======
kaolinite
As you're interested in electronics you may be interested in Arduino, which
you can program in C (and perhaps some other languages too). If you do decide
to pick C, I'd really recommend picking up a copy of K&R's "The C Programming
Language": [http://www.amazon.com/C-Programming-Language-2nd-
Edition/dp/...](http://www.amazon.com/C-Programming-Language-2nd-
Edition/dp/0131103628/)

You're also interested in games, so you could consider Python and the PyGame
library: <http://www.pygame.org/> Or if you want to go with C, try the allegro
library: <http://alleg.sourceforge.net/index.html> (Learning this library was
what taught me C, after picking up the basics of C I picked up the rest as I
went along).

End of the day though, just pick something and learn it. It's better to be
learning than worrying about what to learn.

~~~
JJKraMer
I'm already quite familiar with arduino as we used it a bit at school(had a
project where we built and programmed dmx-ethernet converter with an add-on
dmx-shield) and took bit of intrest in arduinos.

I said I have some experience with C -based languages, but that doesnt mean i
would be sticking with just C, as i have have taken strong interest in C++,
which is likely going to be my #1 language.

Python sounds decent, but i heard some heavy recommendations to learn Lua for
the games from my contacts working on gaming companies (in finland there are
loads of smaller and bigger gaming companies rightnow...)

Anyway as I have been discussing about this with my friends and contacts I've
gotten an impression that I should also Learn some kind of web -enviroment
programming/scripting language such as jsc or php (though I've been
considering mostly learning some Lisp and proceeding to Perl)

Currently my cocktail of languages looks like this

C ->C++ Fortran (though going to learn on my own accord, just to understand
how things worked in past) Lisp ->Perl Lua

thoughts?

~~~
kaolinite
I'd recommend learning something like Python over Lua as it is more widespread
and is used in a lot more areas, but that's up to you.

Python can and is used for web development, though if that's what you're
interested in then you might find PHP easier to get into.

Fortran is an interesting choice and I understand your reasoning, however I
wouldn't put too much time into that right now (up to you, however, just do
what you enjoy).

Basically, there are tonnes of choices each with their individual merits. Pick
something with a decent community which you enjoy. Python, Perl, PHP, C, C++,
Lua, Java, Javascript.. they all suit that perfectly. If you really can't make
up your mind, toss a coin and read up on that language for half an hour and if
you like it, keep learning :-)

Another thing to add: it's not just about the language. Once you've learnt a
language, you need to learn the commonly used libraries/modules. How to decode
XML/JSON, how to talk to a database, socket programming, etc, etc. You might
find it better to concentrate on those in a language you already know. It's
better to be an expert at one language than mediocre at a dozen.

Also, check this out: <http://learnpythonthehardway.org/book/advice.html> Just
found it and it's sound advice.

------
drallison
"Which programming language?" is not meaningful question. You can learn a new
programming language quickly. What you will need is an understanding of
computer science (theory and algorithms) and mathematics. On top of that,
you'll need deep familiarity with your domain interests -- software
development, electronics, and economics. Different programming languages
provide different frameworks for thinking about problems, but don't provide
much help in solving them (unless it's done in the standard library ;-) )

