Which languages young and intrested student should choose?

3 points by JJKraMer ↗ HN
Hi!

20 year old finnish (soon to be)University student here!

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 & C++ atleast) from the classes i attended at vocational school

my main interests reside within games and systems they run on, as well as platforms, so my 3 main subjects will most likely be

1.Programming/Software Developement

2.Electronics

3.Economics and Enterpreneurship

Sooo any thoughts?

4 comments

[ 4.1 ms ] story [ 21.6 ms ] thread
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/...

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.

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?

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.

"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 ;-) )