Popular conceit about learning programming languages

Brad Hards bhards at bigpond.net.au
Thu Nov 21 17:55:20 EST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

<interesting article about natural language comparison>

I think that this is a good analogy, and I'd like to take it a bit further,
with a couple of examples (and there is a Python link in there, look out for
it :-)

I was fortunate enough to attend Linux Kongress 2002. I did a bit of touring
around in Central Europe before the conference, mainly in Germany. It was a
real struggle at first (I am mono-lingual). The people spoke very fast, and
very few words were familiar. I had a dictionary, and when I wanted to buy
something, or ask a question, I would think about the question (in English),
translate it to German (very badly), and then try to pronounce the words
(very badly). Normally the response I got was "It's OK, I speak English", in
English.

At Linux Kongress, I happened to win a copy of the Python Cookbook (thanks to
O'Reilly). I read a bit of it on the flights back to Australia, and it looked
kind-of interesting, although some of it was very confusing. (especially the
meaning of * and ** in def(), which I thought were something like pointers,
because I do most of my coding in C). I decided that I'd like to learn more,
and bought an intro book, and started on the learning path. I coded a useful
script for testing my network driver after about a week of playing around and
reading, but I certainly wouldn't even consider myself minimally competent at
this stage. I am starting to see solutions in terms of dictionaries, but I
still don't understand some things, and most of it is "what is the problem,
how would I solve this problem (implicitly, in C), now how do I write that in
Python"

The big thing I don't yet really get is OO. I don't see solutions in terms of
classes yet. In the natural language analogy, this is the equivalent of never
come across a tonal language (for those not familiar, this is very roughly
where the meaning (in a denotational sense, not just a connotational sense)
of a sound varies with how it is pronounced - the same sound with a rising
frequency might be a verb, while a flat frequency might be a noun). No OO is
a big hole, and while I can program using classes (in C++ and Python) a
little bit, I don't really "see the solution" in those terms yet.

Also, it clearly helps if the language you are trying to learn is close to the
language(s) you already know. A lot of C knowledge translates to Python.
(like my earlier Pascal, Fortran and Modula-2 translated into C, but Prolog
was more helpful when learning LaTeX). German isn't that different to
English. By contrast, I went to Hungary for a couple of days, and it was a
huge shock. I think that I could have learned enough German to get by in a
few months of immersion. I never felt that I had any grip on Hungarian.
Hungarian is probably like the Lisp of European languages :-)

[Aside: I did formal language aptitude testing when I worked for Defence,
which said I could likely keep up on an intensive French, German or
Indonesian course; but would be unlikely to be able to keep up on the other
courses. This is better than most of my class.]

When I got back, I visited a couple of German speaking friends, one of whom
came out to Australia without a lot of English. She explained that she knew
she had really learned English when she had her first "all in English" dream.

I don't dream in Python yet. And I don't think that even a couple of months of
very serious work gives you that level of knowledge, natural or programming.

Brad
- -- 
http://linux.conf.au. 22-25Jan2003. Perth, Aust. I'm registered. Are you?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE93WRYW6pHgIdAuOMRApsKAJ4s4srcswhCH6fuTU8+so+TBOA1QwCfRT2G
aBkdji7WmbetJZz6y2dtoZU=
=np0C
-----END PGP SIGNATURE-----





More information about the Python-list mailing list