[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
strategies for learning new languages
- To: address@hidden
- Subject: strategies for learning new languages
- From: Vadim Nasardinov <address@hidden>
- Date: Wed, 26 Mar 2003 17:58:53 -0500
- Sender: address@hidden
- User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020607
To follow up on the "learning languages" thread
(http://www.ai.mit.edu/~gregs/ll1-discuss-archive-html/threads.html#02557),
I'd be interested to hear resident polyglots comment on the following
question.
What strategies do you use for becoming proficient in a new
language?
By "strategy", I mean something along the following lines:
* Pick up a book like "Teach yourself Befunge in 21 days" and read it
cover to cover.
* Skim over the language manual, pick up quickly basic constructs,
and start writing code as soon as you can, consulting the manual
for more advanced features as necessary.
* Find a relatively short, self-contained program whose purpose you
clearly understand, and try to read and understand the code,
consulting the language manual when necessary.
* Find someone proficient in the language and have them help you code
up a meaningful piece of functionality.
* Try to identify and concentrate on features of the language that
are absent from other languages you know. A few random examples to
illustrate the point may be in order.
** Perl (and Python, and probably a bunch of other languages) allows
you to dynamically create named procedures. Example:
http://www.ai.mit.edu/~gregs/ll1-discuss-archive-html/msg02158.html
** JavaScript's prototype object allows you to add new methods and
attributes to all instances of a class. For example, you can add
the reduce() method to the Array class:
http://w3future.com/html/stories/hop.xml
** Tcl allows you to create and manipulate Tcl interpreters
programmatically:
http://www.tcl.tk/man/tcl8.4/TclCmd/interp.htm
** Tcl allows you to manipulate stack frames:
http://www.tcl.tk/man/tcl8.4/TclCmd/uplevel.htm
* Find a feature-for-feature comparison between the new language and
another language that you are already proficient in. Something
along the lines of
http://merd.net/pixel/language-study/syntax-across-languages/
http://groups.google.com/groups?selm=3D2D52DE.93BEF1B1%40info.unicaen.fr
* Look at the language implementation, if the interpreter/compiler's
source code is available and written in a language in which you are
fluent.
* A combination of the above?