This doesn't mean assembler or brainfuck is okay as a first language (although the former was the 2nd langauge I taught myself and its reputation for difficulty is vastly exaggerated in my opinion), but it does mean that endless discussions about whether Python is better than Javascript or C is better than Lisp is probably splitting hairs.
Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
31–40 of 141 posts
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#32I couldn't be more thankful that python was one of my first languages, and this is something that I've passed on to everybody I've ever mentored. Python is a real language that does real things, but it's also completely approachable to a newbie. If programming seems hard, then you have a bad teacher that is probably just trying to evangelize their hobby to you. And god help anybody that tries to start with JavaScript…
I don't get why people hate on starting with JavaScript. Since ES6, JS strikes a really nice balance between practical usage and theoretical value. Like Scheme it's a dynamically typed language focused around a single data structure (list for Scheme, object for JS), with first class functions. Sure, it has weak typing and there's some scoping complexity. But, that's a completely reasonable tradeoff for being one of t…
JS is a good starting language, for the typical starting student, because it helps them cultivate their intrinsic motivation.
Less importantly, but still important to me: JS is also a more beautiful language than most mainstream languages, except for the ten or fifteen god-awful warts that it admittedly has, that everyone is disproportionately obsessed with.
(I, unlike most of my students, was interested in computational thinking from the very beginning: iteration, recursion, data types, algorithms, etc, and I was uninterested in actually making things. My first languages were BASIC and Pascal and C, and as far as I can tell, that worked out okay.)
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#33I couldn't be more thankful that python was one of my first languages, and this is something that I've passed on to everybody I've ever mentored. Python is a real language that does real things, but it's also completely approachable to a newbie. If programming seems hard, then you have a bad teacher that is probably just trying to evangelize their hobby to you. And god help anybody that tries to start with JavaScript…
I say wedged because IMHO programming env's are the easiest to setup and maintain in POSIX OS's. This closed source OS I'm most in (because I stream simulations & games on this DAW) is not really suited for it.
One of the 1st languages I installed was python. For me the reason is a nice Raspberry PI I got from a friend of mine, but most of all the accessability of the language on literally all OS's you can throw a stick at.
Another reason is
python -v -m SimpleHTTPServer 8088
amazing, when you run it in verbose modeRe: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#34I contend that within reason, it really doesn't matter exactly which language happens to be one's very first programming language. Programming is ideally motivated by passion, and in that case, a person is certainly not going to give up and change career just because their intro language was a bit inconsistent or rocky. Anyone who gives up programming before at least being fluent in three languages, is giving up prem…
I'm not so sure.
Here's an example of blinking an led with Lisp:
http://www.technoblogy.com/show?1GX1
And here's one using python:
https://www.modmypi.com/blog/gpio-and-python-39-blinking-led
If I were my 12 year old me, I would probably enjoy the second more than the first.
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#35> However, he did say that starting off with python makes an undergraduate’s initial experiences maximally productive in the current environment. I read this as "the parents paying tuition wanted their kids to learn practical skills so they can make money". I learned Scheme as a first language and I will be forever grateful for it.
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#36I contend that within reason, it really doesn't matter exactly which language happens to be one's very first programming language. Programming is ideally motivated by passion, and in that case, a person is certainly not going to give up and change career just because their intro language was a bit inconsistent or rocky. Anyone who gives up programming before at least being fluent in three languages, is giving up prem…
I agree with this, but I'm not sure how many of the students taking the MIT course in question are learning their very first programming language there.
Now if we were talking about a secondary school course...
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#37Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#38I contend that within reason, it really doesn't matter exactly which language happens to be one's very first programming language. Programming is ideally motivated by passion, and in that case, a person is certainly not going to give up and change career just because their intro language was a bit inconsistent or rocky. Anyone who gives up programming before at least being fluent in three languages, is giving up prem…
Throwing objects and lambdas and type inference at kids without giving them any grounding in what a computer actually is and does is unfair, and leaves them building castles in the sky.
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#39I just wish there was a simple way to serve web pages in Python like PHP, without having to learn a whole framework/stack/templating language.
Re: Why MIT uses Python instead of Scheme for its undergraduate CS program (2009)
#40As someone who's read SICP when first starting out and re-reading it and re-watching the lectures much much later - I can say that 95% of the value of SICP flew completely over my head when I was first learning. I remembered catch phrases like 'assignment is bad', only to be led down the 'functional programming' cult years later because it reminded me of sicp. Building up entire systems from first principles is quite…
> University is not structured to give you the time to go deep or be curious - you're busy doing assignments, readings and studying for tests. That statement, while true, should anguish the heart of anybody in any way related to or concerned for academia.
You do, however, get that time when you write a master's thesis.