PDA

View Full Version : Most efficient way to learn a second (third, fourth) language?



acroposthion
April 5th, 2010, 01:23 AM
I think I'm starting to get reasonably good with Python, and soon I want to start getting a feel for C.

A lot of Python tutorials made notes specifically for C programmers to help clear up the differences between the languages. I haven't looked much, but I doubt I'll find C tutorials with notes for those who know Python.

I realize I'll pick up each new language more easily than the last, for the most part, which I assume is why I haven't seen any resources detailing how to learn another language. But should I go about it the same way I did learning Python? Is there even another option?

If anyone can recommend anything for a Python programmer learning C, that would be great. But all I really want to know is if learning a second language can/should be any different than learning your first.

gnometorule
April 5th, 2010, 01:55 AM
I don't think learning additional languages is really that different. What changes is that you get a feel for what you can do with a language, and how a new language supports features differently. Example, C is a full subset of C++; but you'll use C++ very differently as it was designed that way. So maybe you should start by asking yourself what you would like to use your language for. That you can easily google.

In terms of learning C, even if there are on-line tutorials, get yourself a copy of Kernighan/Ritchie. It's extremely well-written, in particular when you already know another language well. True classic in computer science.

loell
April 5th, 2010, 02:07 AM
be more semantic? and be less syntactic? ;)

mmix
April 5th, 2010, 02:31 PM
A language is fire.
B language is water.
C language is dust.
D language is wood.
E language is soul.
...

i think you chose A and B.

MindSz
April 5th, 2010, 04:37 PM
If you already know programming, learning a different language shouldn't be as hard as learning the first one. Still, it all depends on how different is the language you know with the language you want to learn. I mean, going from Java to Assembly is a lot harder than going from C++ to C.