Wed Sep 06 16:29:34 PST great horny toads!: I never thought that natural, wild creatures and beauty would be my favorite thing about Los Angeles, but I really think it is. The plants here are fabulous (although most of them couldn't survive without our help and associated environmental cost), but more specifically the hummingbirds that have been to my feeder -- lately it has been a non-stop drivethrough -- mcdonalds eat your heart out. And unlike mcdonalds, even though I purvey sugary water to young creatures, I don't have to suffer with the guilt of creating a generation of diabetics.
Anyway, today in Temescal Gateway Park I saw a huge (12 inches nose to tail) horned lizard (aka horny toad on my run. It scared the crap out of me because it was just laying in the middle of the trail and usually you don't expect anything to be there. He seemed almost completely unconcerned by my presence. He just turned his head (never moved his body) and stared at me with one big eye. A dragonfly or somesuch landed on his nose; he looked at that and then back at me. I kept expecting him to dispatch the dragonfly, but he pretty much ignored it and just stared me down until I left. I tried to spook him into leaving the trail but he wasn't having any of it.
I have spent more time than I should have trying to ID the species of this guy online, but nothing seems to look right given what I've read about their ranges... and I didn't know enough to memorize his horn configuration. Seriously though, this guy was gigantic.
Sun Sep 24 22:04:11 PST grad school begins: I start grad school at UCLA tomorrow. I'm going to try and use this space as a place to comment on school and Computer Science related issues.
Here goes...
Mon Sep 25 11:45:26 PST first day: Well, I missed the campus tour I was going to go on -- the bus took a lot longer than expected. No big deal... I can go tomorrow, or if it doesn't work out, that's fine.
I have been thinking a lot about school, obviously, and my reasons for going, how likely I am to find success (or enjoyment) in it, what it will mean for the future, and also what my greatest obstacles will be.
First of all, I hope that I haven't taken too many classes at once.
Anyway, the biggest reason I am here is to "fill in the gaps" of knowledge I have because I never formally studied CS, and even in my work/projects I have usually taken an OSPF (Open Shortest Path First... nerd joke) towards completing that activity, rather than actually learning the "right way" to do it. And that brings me to my first self-realization: I'm really good at getting something done, but not necessarily good at learning all the details along the way.
And that ties into another thought -- I am very good at memorizing trivia and factoids -- I do it almost effortlessly. I can read an article about some piece of history or some Andean Butterfly and tell you all about it -- But if I am trying to memorize, let's say, fundamental properties of Boolean algebra, it suddenly becomes very difficult for me, and I don't know why. Specifically, I think I have difficult translating symbolic representations of abstract concepts into mental models that I completely understand. (Learing directly from a math textbook is very difficult for me.) Instead, I'm fairly good at recalling and synthesizing concrete bits of information. Unfortunately, math, logic, programming languages, interactions of command-line switches... are symbolic representations of abstract concepts. I'm not sure if it's an attention span problem or just one area that I'm not particularly "good" at.
And that ties into the next thought, which is that I am one of the kind of people who usually does well enough at things without having to try particularly hard (but not necessarily finding excellence at anything). As my piano teacher said, "Jack of all trades, master of none." I had friends who had to work hard for their grades -- and in the end, regardless of who may have had more or less raw talent -- the friends of mine who had to work hard generally had a better grasp and intuition than people like me who just floated through.
The consequence of this is that I am not very good at confronting a problem when it is truly difficult for me. I look for a way around it rather than a way through it... and in a subject like Computer Science especially, that is absolutely not the point, and thus I can't allow myself to just fall back into that mode of finding success, because it will not help me find the kind of understanding I am here for. I hope that I can find new mental models and ways of learning to leverage the talents I do have against my deficiencies.
Speaking of abstract concepts, it's time for Computation and Automata!
Tue Sep 26 15:00:57 PST first day of quarter... not of classes: Whoops again. Apparently it was the first day of the quarter, not of actual instruction, which starts on Thursday. All right.
So instead I wandered around campus, wandered around the SEAS (School of Engineering / Applied Science) complex, found all my classes, and then went back to the coffee shop I posted from yesterday and worked on some code I've been working on for a new website.
Since I'm using this to reflect on CS topics and my own self-education in general, I did have an interesting experience yesterday, although it is a fairly elementary observation to most experienced programmers who use multiple languages.
Anyway, somehow, in the course of people talking about coding, and which language is better for x or y (x, obviously), or which language is awful (usually Perl) or wonderful (often Python), and in trying to think more abstractly about what programming languages do and why, somehow I had gotten on the path of thinking that different languages are just different ways to approach the same problem and, at least in well-developed general purpose languages the process of coding in those languages is roughly equivalent.
But then I tried to convert a shell script into a python program (but I could as well have been converting to Perl). While it was possible to make it work, it got much more complicated to "say" the same thing in python than in bash. I realize this is not because what the computer does is actually simpler (ignoring different methods of run-time compiling scripts between bash and python) but because of what bash (by necessity as a shell scripting language) hides from the user or provides because of its design (i.e. using mixed types, scoping, easy access to the output of a command, etc.).
I am sure there are a multitude of examples of this kind of thing, but it was enlightening for me because I had never thought concretely about how language design choices very directly affect the suitability of that language for different applications.
Unless otherwise noted, all content licensed by Peter A. H. Peterson under a Creative Commons License. |