Instead of deciding between Python or Lisp for a programming intro course...What about an intro course that uses *BOTH*? Good idea?

Chris Angelico rosuav at gmail.com
Sun May 10 22:11:57 EDT 2015


On Mon, May 11, 2015 at 6:43 AM, Chris Seberino <cseberino at gmail.com> wrote:
> Instead of learning only Scheme or only Python for a one semester intro
> course, what about learning BOTH?  Maybe that could somehow
> get the benefits of both?
>
> I'm thinking that for the VERY beginning, Scheme is the fastest language
> to get beginners up and running writing code due to the extremely minimal simple syntax.
>
> I'm thinking half way into the semester, instead of moving into intermediate Scheme, perhaps that is a good time to switch to Python?
>
> Would a little strong intro to 2 nice languages in one semester be
> same/good/worse/better than just 1?

I strongly recommend learning multiple languages, but not at the cost
of proper comprehension of one of them. Pick one and get started with
it, and once you have some basic competence, pick up another; you'll
gain a better appreciation for both that way.

As to which one first... I always recommend Python as a first
language, due to the lack of boilerplate and the simple layout. But if
you have a background that makes LISPy languages a better fit for you,
then by all means, take Scheme first. For most people I work with, an
imperative language makes a better first fit; most people understand
the concept of giving someone a series of instructions and expecting
them to be performed in sequence down the page, but functional
languages take more getting used to. But if you're already accustomed
to a functional style - maybe a heavy mathematical background - then
LISP-family languages will be a logical extension from that.

Eric Raymond recommends [1] learning five languages with distinctly
different styles: Python, C/C++, Java, Perl, and LISP. Of the five, I
would recommend leaving C and Perl for later, as neither is
particularly friendly to a new programmer; the other three you could
pick up in any order, and there are commercial courses using all of
them. (I personally don't think Java offers much that other languages
don't, and haven't used it for anything since the days when Java
applets were the only decent way to embed executable code in web
browsers; these days, I'd much rather do everything in Python or Pike.
But that doesn't mean Java isn't worth learning.) The more languages
you learn, the better you'll be as a programmer - but don't skimp on
one to pick up another.

ChrisA

[1] http://www.catb.org/esr/faqs/hacker-howto.html#skills1



More information about the Python-list mailing list