Learning multiple languages (question for general discussion)

J

John Salerno

After my last post, I thought of another question as a result of the
following:

------------------------------
Mike said:
> [Wants to learn C# and Python simultaneously.]
>
>>So my question is, is this feasible?
>
>
> Should be. It might be faster to do them sequentually.
------------------------------

I thought it might be interesting to get some opinions on when you know
when you're "done" learning a language. I've been learning C# for a few
months (albeit not intensively) and I feel I have a good grasp of the
language in general. Of course, I haven't messed much with databases, or
at all with ASP.NET...so far just WinForms. But as far as the syntax of
the language, I understand that, as well as a lot of how the .NET
Framework works.

I know this is a very subjective situation, but when would you say that
it's 'safe' to move on to another language? How do you define a language
as being "learned"? For me, I'm just doing this for fun, but I imagine
in the computer programming world, you constantly need to learn new
things, so I wouldn't assume that you completely learn a language before
moving on to another.
 
T

Thomas Guettler

Am Thu, 03 Nov 2005 14:47:52 +0000 schrieb John Salerno:
After my last post, I thought of another question as a result of the
following:

Unfortunately there is not C# section in Pleac:

http://pleac.sourceforge.net/

You can learn both languages by reading the python solutions in pleac,
an try to translate them to C#. Please submit the code to the
project.

HTH,
Thomas
 
I

infidel

Python has spoiled me. I used to periodically try out new languages
just for fun, but since learning Python, it's become a lot less
interesting. I find myself preferring to just try new ideas or
techniques in Python rather than searching for new languages to dabble
in. The last few I've downloaded were, in no particular order: Perl,
Ruby, Lisp, Io, and Scheme. I usually get as far as installing the
necessary interpreters/compilers and opening up a tutorial or two
before I lose interest.
 
J

John Salerno

LOL. As weird as it sounds, that's what I *don't* want to happen with
C#! I've spent a lot of time with it, and I love it, but I don't want
Python to take over! :)
 
M

Magnus Lycka

infidel said:
Python has spoiled me. I used to periodically try out new languages
just for fun, but since learning Python, it's become a lot less
interesting. I find myself preferring to just try new ideas or
techniques in Python rather than searching for new languages to dabble
in.

Agreed. It's a bit like getting married. Maybe it seems a little
more dull than chasing new girls now and then, but it's really
much more rewarding to grow together with a (person or language)
that you know and like really well. Particularly when it's such
amazing darlings such as Python and my wife! :)
 
M

Magnus Lycka

John said:
LOL. As weird as it sounds, that's what I *don't* want to happen with
C#! I've spent a lot of time with it, and I love it, but I don't want
Python to take over! :)

Then it might be better to keep away from Python. It *will* spoil
you. Python is a good team player. It's excellent to use in large
projects where different languages fit better for different parts
of the final system,and it's excellent as a programmers tool even
if all production code is written in C# or whatever. Given a free
choice, you'll probably shift more and more of the code to Python
though,since it's faster to write and easier to maintain that way.
 
K

Kent Johnson

John said:
I thought it might be interesting to get some opinions on when you know
when you're "done" learning a language. I've been learning C# for a few
months (albeit not intensively) and I feel I have a good grasp of the
language in general.

Never? When you move on? You can become proficient in a couple of months but that is different from "expert" which is different from "knows everything there is to know". I have been using Python for several years and I still learn from the old hands in this news group.

Kent
 
A

Alex Martelli

Magnus Lycka said:
Then it might be better to keep away from Python. It *will* spoil
you. Python is a good team player. It's excellent to use in large
projects where different languages fit better for different parts
of the final system,and it's excellent as a programmers tool even
if all production code is written in C# or whatever. Given a free
choice, you'll probably shift more and more of the code to Python
though,since it's faster to write and easier to maintain that way.

Yes, but I haven't found knowing (and using) Python dampens my
enthusiasms for learning new languages. Using a language for real life
programming isn't the only reason to learn it, after all. Mozart (==Oz)
is a great way to reflect on programming paradigms (and Van Roy's and
Hariri's book is the 21st century equivalent of SICP!!!); Ruby offers an
interesting perspective of a slightly different ways to do the same
things Python is good at; O'Caml is an object (;-) lesson in how not all
functional languages are elegant rather than practical; Boo shows how
Pythonic syntax might go with static typing and inference; pyrex shows
how Pythonic syntax might go with optional static typing to generate
quite decent C code; sawzall
(http://labs.google.com/papers/sawzall.html) is a great example of a
very specialized language; Limbo
(http://www.vitanuova.com/inferno/papers/limbo.html) has its good
moments, and any language designed by Ritchie must be worth looking at
for that sole reason; Erlang shows a very different FP language...

These are all languages I studied after falling in love with Python --
i.e., in the last 6 years. At 8 languages in 6 years, I meet or exceed
the "one new language a year" recommendation of the Pragmatic
Programmers, on average -- admittedly, out of these, only sawzall and
pyrex are ones I've used "for real", the other ones I've studied but
never found real-life occasions to use, but that, too (using IRL about
25% of the languages one learns), is roughly par for the course (I would
guess that over my lifetime I've learned about 50 languages and
seriously used maybe a dozen of them...).


Alex
 
M

Magnus Lycka

Alex said:
Yes, but I haven't found knowing (and using) Python dampens my
enthusiasms for learning new languages.

But you're more enthusiatic than most of us Alex. I wish
I could say the same, but I must admit that I only did
halfhearted attempts at learning new languages after Python.
I've looked a bit at most of the ones you mentioned, but
there was nothing that gave me the drive to really follow
it through. I've somehow become content in this regard.

This doesn't mean that I'm not evolving. I regularly program
in three languages (Python, C++ and SQL) and I must learn
new things the whole time to keep interested, whether it's
in the current problem domain, in architectural matters, in
regards to libraries or development tools or whatever. Now
it's Twisted for instance. Still, finding Python was a lot
like finding a permanent home (which doesn't exclude various
excursions, or prevent another move or two in this life.)
 
A

Alex Martelli

Magnus Lycka said:
But you're more enthusiatic than most of us Alex. I wish
I could say the same, but I must admit that I only did
halfhearted attempts at learning new languages after Python.
I've looked a bit at most of the ones you mentioned, but
there was nothing that gave me the drive to really follow
it through. I've somehow become content in this regard.

I can't imagine NOT getting enthusiastic and stimulated by reading Van
Roy and Hariri's book -- it IS quite as good and readable as SICP.
Ruby's also blessed with good books (and the excellent Rails, too).

This doesn't mean that I'm not evolving. I regularly program
in three languages (Python, C++ and SQL) and I must learn
new things the whole time to keep interested, whether it's
in the current problem domain, in architectural matters, in
regards to libraries or development tools or whatever. Now

I agree, languages are not the only thing worth learning -- they just
tend to be more fun (although big frameworks compete with them for this
distinction;-). Knuth's latest work is always stimulating, too, even
though the new RISC MIX isn't particularly so;-).
it's Twisted for instance. Still, finding Python was a lot
like finding a permanent home (which doesn't exclude various
excursions, or prevent another move or two in this life.)

Yes, good analogy, I think -- just the right mix of elegance and
practicality one would look for in one's home!-)


Alex
 
P

Paul Rubin

I can't imagine NOT getting enthusiastic and stimulated by reading Van
Roy and Hariri's book -- it IS quite as good and readable as SICP.

It's been on my want-to-read list for a long time. I have the
downloaded draft edition (from before the print edition came out) and
it looks quite good. The Oz language has some interesting approaches.
Ruby's also blessed with good books (and the excellent Rails, too).

I haven't been terribly interested in Ruby; it may have a more
rigorous OO approach than Python, but Smalltalk already did that
decades ago. So Ruby seems like yet another Perl-like language. Am I
missing something?

Do you have any opinion of "Types and Programming Languages" by
Pierce? Autrijus Tang (the guy who started PUGS, the Perl 6
implementation in Haskell) raves about it in an interview, and another
guy I know recommended it too, but I haven't actually looked at a copy
yet (stores I've looked in don't have it). Haskell is the language
that I guess interests me the most these days (in terms of learning
new ones), but I haven't yet attempted doing anything with it.
 
D

Diez B. Roggisch

Do you have any opinion of "Types and Programming Languages" by
Pierce? Autrijus Tang (the guy who started PUGS, the Perl 6
implementation in Haskell) raves about it in an interview, and another
guy I know recommended it too, but I haven't actually looked at a copy
yet (stores I've looked in don't have it). Haskell is the language
that I guess interests me the most these days (in terms of learning
new ones), but I haven't yet attempted doing anything with it.

It's a great book - I cetainly owe it the better part of my thesis about
multi level specification for functional languages. If you want to
understand type-systems, its a great comprehensive read.

Diez
 
P

Paul Rubin

Diez B. Roggisch said:
It's a great book - I cetainly owe it the better part of my thesis
about multi level specification for functional languages. If you want
to understand type-systems, its a great comprehensive read.

So do I really want to understand type systems? I mean, I think I
understand Haskell types from reading the manual, but probably not at
the level of that TAPL book. Am I going to find out anything
important as an implementer?
 
D

Diez B. Roggisch

Paul said:
So do I really want to understand type systems? I mean, I think I
understand Haskell types from reading the manual, but probably not at
the level of that TAPL book. Am I going to find out anything
important as an implementer?

I don't know what you want to understand - I never learned a language by
a book, if it's that what you want to know

But to understand type systems in detail, compare them and know their
limits will certainly make you a better programmer I guess - and
especially in functional languages,as these are more or less built
around their type-systems.

Regards,

Diez
 
A

Alex Martelli

Paul Rubin said:
It's been on my want-to-read list for a long time. I have the
downloaded draft edition (from before the print edition came out) and
it looks quite good. The Oz language has some interesting approaches.

Yep. In particular, it's designed to support a wide variety of
programming paradigms, and the book gradually explains, uses and
compares and contrasts them all.

I haven't been terribly interested in Ruby; it may have a more
rigorous OO approach than Python, but Smalltalk already did that
decades ago. So Ruby seems like yet another Perl-like language. Am I
missing something?

I don't think Ruby is all that perl-like, despite some legacy things
that work like Perl (e.g., the global $_) but are mostly starting to get
deprecated in today's Ruby. Compared to Smalltalk, Ruby has much more
Python-like syntax, the rough equivalent of Python's property, and the
same ability as Python or Perl to "infiltrate niches" versus Smalltalk's
typical insistence that "It is the world" (workspaces &c). Oh, and a
reasonable approach to 'mixin' multi-inheritance which, as far as I
recall, Smalltalk didn't have (at least not back when I studied it).

If I had to nominate one Ruby feature that is particularly interesting,
it would be the way in which any method (==function) can take a block of
code and 'yield' values to it. Besides supporting uses similar to today
Python's generators (whose 'yield' sort of "goes the other way"...),
that also affords the functionality of stuff that will be introduced
only with Python 2.5 ('with' statement, 'yield' returning a value...).

While Ruby and Python essentially overlap on all dimensions, doing just
about the same things with often very similar code, I think there are
enough differences in detail to make studying Ruby interesting.

Do you have any opinion of "Types and Programming Languages" by
Pierce? Autrijus Tang (the guy who started PUGS, the Perl 6

Sorry, no opinion there.


Alex
 
E

ERowe

Alex said:
Yes, but I haven't found knowing (and using) Python dampens my
enthusiasms for learning new languages. Using a language for real life
programming isn't the only reason to learn it, after all. Mozart (==Oz)
is a great way to reflect on programming paradigms (and Van Roy's and
Hariri's book is the 21st century equivalent of SICP!!!);

That is "Haridi" and "Van Roy"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top