Been researching the best way to get my feet wet in the world of Programming .. and I think I might've found an answer » How to Design Programs.
More info about HtDP can be found at » Teach Scheme. It's based on the classic Structure & Interpretation of Computer Programs (SICP), which which Peter Norvig calls "probably the best introduction to computer science."
Everything about both SICP & HtDP is free (freely downloadable) .. tho you can also purchase dead-tree versions of these texts.
HtDP, which is a watered-down version of SICP, even comes with a graphical "programming environment" called DrScheme, which offers 5 incremental language-functionality settings (to avoid overwhelming the n00b):
- Beginning Student
- Beginning Student with List Abbreviations
- Intermediate Student
- Intermediate Student with Lambda
- Advanced Student
••• today's entry continues here below •••
This GUI comes as part of the language itself, called PLT Scheme (« as in "PLaneT Scheme") .. a 23-MB download, last updated January 21, 2009, which decompresses to ~200MB on your hard drive .. comprising nearly 11-K files in roughly 700 directories. (Good compression there.)
It was especially encouraging to read that even middle-school kids have been successfully taught this course. So maybe there's hope for me. =)
I've accumulated a considerable amount of info on the topic of the best way to approach introductory programming, which I may share later. I mean, I've read enough articles & opinions that my dang eyeballs are ready to fall out.
The last time my eyes burned this bad was back when I was researching Virtual Private Servers (.. and that turned into a Rad guide). If I'm going to spend time learning a subject (like I did with XHTML and CSS, for example), I like to invest in some research, so I feel confident I'm using my study-time wisely.
For now however, my goal is to develop a solid foundation in the world of programming, and I think HtDP is the option that will help me accomplish this best (.. by allowing me to learn skills & techniques that can be applied to any programming language).
Every once in a while, I ran across a recommendation for Ruby (a language which has interested me, primarily cuz of the Rails web framework), especially when combined with Chris Pine's book (see here for reviews on the first revision) .. but those recommendations were usually followed by disagreements asserting that Ruby obscured too much of what happens at a lower level to be a good language to learn the basics of programming.
For more along these lines, here's a Google search preconfigured for the query » how to best learn programming language introductory