While this approach can be frustrating initially, because it slows progress at the outset, while foundational concepts are digested on an emotional level .. it allows me to crank thru with confidence (at an accelerated pace) once the foundation is set. [ See note #1 for an example. ]
- SICP = Structure & Interpretation of Computer Programs (based on Lisp)
- HtDP = How to Design Programs (uses Scheme)
- Both languages are similar. So the two courses complement one another nicely.
- The SICP videos and the HtDP text are freely available online, along with the SICP text.
The SICP course is legendary in the world of Computer Science. More people refer to it as the single best course on Programming .. than any other.
It was designed and presented by two professors at MIT (.. arguably the world's finest institution of geekdom). Moreover, it was recorded and the videos posted online, where they remain available for download & viewing (free).
I admit, I need to view each video multiple times before feeling comfortable enough to move on to the next lesson. But I *am* getting it .. and enjoying it.
The HtDP course is a simplified version based on the concepts presented in the SICP course.
Neither the SICP videos by themselves, nor the HtDP text alone works for me. But .. combining both courses really makes things click. I get it. I see what's happening .. how things work. It makes sense. And I look forward to learning more.
••• today's entry continues here below •••
SICP is taught by two professors from MIT .. Abelson & Sussman. I prefer Sussman .. cuz he talks fast. His presentation doesn't give my mind a chance to wander. Attention is constantly rewarded. Abelson's approach, while captivating at times, is more reflective.
I find it interesting that both languages are highly parenthetical .. since I tend to communicate parenthetically myself (.. as anybody who's been Radified any length of time well knows). So Lisp & Scheme seem a natural fit. Plus, programming is mathy, and I'm good at math.
It has been difficult to make progress with all the legal stuff I've had to deal with .. seeing I have no attorney. (Must do everything myself, including the research.) Currently have 3 court dates lined up. That's a record (for me. I'll be in court again next week.)
Plus, even when I'm not defending myself against false accusations, the associated stress and emotional turmoil can be distracting. Hope I don't sound like I'm whining, but if I wait until my legal battles are over, and the emotional stress subsides, I'll never learn Programming.
I'm also learning a lot about the Legal system .. unfortunately. Anybody who sits in court as many hours as I do (waiting for their case to be heard) is bound learn a thing or two about how "the system" operates. (It's a business, an industry .. where numerous 'ecosystems' depend on one another.)
Nevertheless, I feel surprisingly good. Had a magical dream last night .. which involved sparkling water. (Maybe I'll share it later.) Left me feeling upbeat & energized. My coolest dreams all seem to involve clean, sparkling water .. in one form or another .. usually in concert with warm, summery days and/or balmy, moonlit nights.
Anyway, gonna get back to it. Blog less, learn more.
Note #1 - One of these foundational concepts is known as » 'Black Box Abstraction' .. which is used to supress detail .. as one of the methods to control program complexity (.. along with 'Conventional Interfaces' & 'Metalinguistic Abstraction').
For more along these lins, here's a Google search preconfigured for the query » learn computer programming sicp htdp