

Ask HN: Python or Scheme? - sigilyph

The introductory computer science course at Berkeley (CS61A) is going to be taught in Python in Fall 2011 instead of Scheme. I've heard many moaning about no more Brian Harvey and SICP; on the other hand, MIT has long switched over to teaching in Python.<p>I'm currently a freshman considering a CS major with limited experience in Python. I was just wondering what HN thought of this changeover- tbh, I feel like I'm missing something by not going through SICP like most Berkeley computer scientists, but then again it'll be interesting to be in a class taught for the first time.
======
ColinWright
Personal opinions only ...

Scheme and its relatives in the Lisp family is seriously different, genuinely
attitude and mind changing, and having it no longer an essential part of the
curriculum makes it much, _much_ less likely to be learned or used.

Python is a superb language, but I for one can see the Lisp influence in my
programming, and I'm a better programmer for it. I think it's a shame that
universities are moving more towards "relevance" and further from "what's
actually good for you, and you won't really get a chance to do elsewhere."

And that takes us back to the question of what universities are for, and what
the value is they provide. People are saying "Why should I go to university -
I can learn this stuff elsewhere!" And for many things that's true. But there
are things you simply _won't_ learn elsewhere.

Lisp is one of them. I think losing it is a shame.

~~~
pavelludiq
_Lisp is one of them._

Fortunately this isn't true. I'm living proof. People go to lisp for various
reasons when they are ready, you don't need a university for that. In fact,
teaching scheme badly to people who are not ready for it is probably a bad
idea, and is the prime reason why some people actively avoid lisp later in
their career.

------
dkersten
My uni did the usual Java bullcrap (with a lot of assembly, a little C++,
Haskell, Prolog and matlab thrown in), but since I've played with Scheme, a
little Common Lisp and a lot of Clojure and they have an enormous influence on
how I program and think about programming in any language. So, regardless of
what language(s) they teach you in uni, I think it is worthwhile picking up a
Lisp-based language along the way (in your own time, if needed). The SICP book
is also an excellent read, IMHO, and an excellent investment.

I think its worthwhile learning any language that is in a significantly
different paradigm to what you already know, so I wouldn't stop at Lisp.

------
dmn
My university started with Java. Fortunately two of the (especially
intelligent) professors wanted scheme to be the first language we were taught.
Of course the other professors voted against that because they wanted
something more "relevant", so Java it was.

So instead there's a required programming languages course we spent half the
semester learning/using scheme and the other half using it to understand other
types of languages.

It's definitely worth taking the time to learn IMO.

------
drallison
The particular language used is not as significant as learning the principles
of programming. The fundamental ideas are language independent. Programming
languages help problem solution by providing a framework of abstractions,
managing the many little details, and providing a plethora of libraries and
tools. Why not learn both on your own?

------
Tycho
I would speculate that students who learn Python are more likely to go off and
build their own pet-projects (web-apps etc.) using the many popular frameworks
and resources. When they leave, they will be better programmers for 'having
actually built something.' So it's not just that Python is more 'relevant' to
the job market.

------
open
For most intro CS courses, the language is not as important as the lessons
being taught. That being said, Python is an amazing language. I don't believe
you're missing out on anything that you couldn't otherwise pick up later on if
you were interested in learning Scheme as a language itself.

~~~
hdanak
In cs61a, it really takes one or two lectures to teach Scheme - that's the
beauty of it, there is not much syntax to learn. Like almost every other CS
class at Berkeley, it's not a language course; it's a computer science course.

A major part of the class was writing a Scheme interpreter in Scheme, which I
imagine will not be possible in the new 61a (writing a Python interpreter in
Python, that is). Considering how utterly jacked up Python's syntax is,
compared to Scheme, I can't wait to see how they manage to pull this one off.

Really, if any Berkeley CS student can't learn Python on their own, their job
prospects should be nil anyway.

------
pavelludiq
I wouldn't worry about it. My school starts of with C++ (ugh), and the
experience has taught me that its the teachers that matter more than the
language.

