I actually think C has something important going for it as a beginners' language: minimalism (small and internally consistent and not overengineered). But it's too low-level, and I would be nervous starting with C because I wouldn't want anyone to get the mistaken impression that C's types are, you know, types. I want a first language to be high-level, minimal, and functional (so you can relate it to the math you already know), which is part of why I think Scheme is great as a first language. Python's not bad, either. For a second language, some ML-family language seems like a great idea to me, but Haskell isn't necessarily the best choice, in my opinion -- I still want minimalism at this stage. For a third language, learn C along with learning to understand the machine and the OS. For a fourth language, learn a language designed for working on large distributed projects, as well as the tools that go along with it, and at the same time, learn how to work on large distributed projects.
no subject
Date: 2010-07-29 10:00 pm (UTC)From: