SpaceHobo | 15 years ago | on: That mysterious J in emails
SpaceHobo's comments
SpaceHobo | 15 years ago | on: What programming language has made you the happiest?
Perl.
Oh sure I detest Perl, now. It provides you with too many ways to make code that fails to express the problem clearly to another programmer, and I'm long past believing that code can survive having only a single mind contemplate it. But it came at a perfect moment for me.
I had spent my childhood dreaming of science fiction futures and tinkering with electronics and computers and always feeling like I was missing some last little a-ha that could make it click and put all the facts in my head together toward acts of creation. I hung out on BBSes with cocky BBS software authors and hackers and really wanted to be part of that crowd. I figured I would take a course at some point and they'd lead me by the nose and by some sort of socratic process I'd suddenly snap and be just like these folks.
So at this point C was being poo-poo'd in favor of C++, and C++ was rapidly on the rise as the premier industry OOP language par excellence. So I tried to learn it. I enrolled in a CS program that taught C++, and made some small progress, but not enough to work on the projects I found interesting. I raced ahead in the assignments and read ahead in the book and found myself in an inevitable slide down the terrible valley Louis Brandy once wrote about:
http://lbrandy.com/blog/2010/03/never-trust-a-programmer-who...
Further, no one had ever explained to me the true role of libraries in programming. I saw an entire empty field ahead of me, thinking I'd have to write my own pixel display routines and modem drivers and input handlers in C++ just to get to a point where I could BEGIN to express the problems I was trying to solve. All the textbooks bragged about how I could do my bone-stupid corporate spreadsheet applications in C++ and have them run on PCs and "mainframes" alike, and not one said "chillax bro, there's a bunch of libraries for the low-level stuff."
I entered into a serious depression, partly because this utterly absurd and inconsistent language just felt like something I'd never truly understand, and partly because working in it made me feel like I actually didn't have it in me to stomach coding.
At my university there was an install disk that wiped a PC and flattened it with a new OS image off of an NFS share or some such. I asked the author how he wrote it and he explained it wasn't hard bit-banging work but just making use of Unix's features, mostly emulated by the Perl 4 interpreter he'd included on the DOS boot disk. I looked into it.
Going from C++ to Perl was the single greatest ramp-up in ability I've ever had. Suddenly I was writing system scripts, games, Internet-connected BBSes, library database programs, and all sorts of things just to solve any problem I encountered. The two Perl books at the time, camel and llama, had great prose, great examples, and a catalogue of library functions that reassured any fears I had of having to re-invent the wheel. Even today I feel like those books do better than most for teaching new programmers.
Dynamic typing was one thing, rich core libraries yet another, but the goofy second-guessing nature of Perl syntax kept the house lights low long enough that I never felt incapable or insecure. It wasn't too long before I felt cocky and disdainful of C++. It just didn't feel expressive enough to me.
I think I must have stuck with Perl for five years before slowly jumping ship. On the bottom I was getting better at bourne shell and awk, and on the top I was getting better at Python. I was also finding my brain able to accept more novel systems like Lisp and Forth and Prolog.
I'll never use Perl again if I can help it, but I have it to thank for getting me out of a real crisis in my youth. That nutty Jackson Pollock painting of a language is responsible for all the programming happiness I've had since!
SpaceHobo | 15 years ago | on: What developers think when you say "Rock Star"
I would point out that the weird contractual demands are often canaries meant to uncover a venue that has not read the contract closely enough to guarantee the safety of all performers and the audience. The famous example, of course, is Van Halen and the brown M&Ms:
SpaceHobo | 15 years ago | on: Why I Love the Khan Academy
But as to his teaching style, the videos I've seen have caused me to react less like Patrick Mylund and more like this MetaFilter poster:
http://www.metafilter.com/78770/Welcome-to-the-Khan-Academy#...
Perhaps there's an ordered curriculum you're meant to go through, but every time I've sampled Khan's videos at random they've been structured as "if these are the exercises you need to do right now, now you can see me solve one."
Sure he does a good job of narrating his steps, explaining details and side-effects, and making illustrative mistakes. I just feel like he's all about the how and never about the why.
SpaceHobo | 15 years ago | on: Why you should learn at least a little bit of Awk
http://zork.net/~nick/loyhargil/if/if.awk
For comparison, here are all the published examples of this exercise in a variety of systems:
http://www.firthworks.com/roger/cloak/
I won't say it's the best tool for this job, but I feel that the awkishness provides a certain elegance to some aspects.