Migration

November 7th, 2011


Read about migrations in Ruby on Rails here.

Cheat Sheets & Flashcards

November 5th, 2011

The thing I’ve found most difficult about learning to write code is remembering all the syntax and method names. I just can’t keep it all in my head (at least, not yet). So, I’ve been making flashcards and have printed out some cheat sheets to have handy when I can’t remember things like when an object is supposed to be plural vs singular, or when to use . or : or () or {} or [], or what the method name is for that thing that encrypts passwords, etc etc.

I don’t know why I didn’t think of this earlier. I’m sure my reliance on these aids will fade with practice, but right now it is immensely helpful.

Why Web Development?

November 3rd, 2011

There are several reasons why I decided to move away from animation and get into development. The main reason is that I’ve been increasingly frustrated with my inability to create the ideas I envision in my head for web content and apps. As much as the web is about user-generated content, I still feel like a passive consumer. And as I watch the technologies evolve and see what people are creating with those technologies (like the experiments at Chrome Experiments), my work as an animator has started to seem more and more boring. I want to transition out of linear media (film/video) and into non-linear media.

Another reason I’m getting into development is that I like to problem solve. There’s a lot of problem solving involved in the process of creating animation, of course. But what animation is really about is story-telling. Development is sort of the opposite. There’s story-telling involved in the development process, but what it’s really about is solving problems. Another way to put it is I want to balance out the right-brain heavy process of animation with the left-brain heavy process of development.

The final reason I’ll mention here is one that maybe not everyone will agree with, but is important to me. As the web becomes more and more central to our daily lives, I feel like I have a kind of civic responsibility to understand how it works. As I try to imagine what the world will be like as my son grows up, it seems obvious that if I want to participate in that world with him, I’ll need to keep up with the changing technology. I think of the generational digital divide that exists today, and it makes me sad. I don’t want my son to feel disconnected from me because I don’t understand the world he lives in, and I don’t want to feel baffled by “kids these days” as I get older. Learning to write code seems like a necessary step in the process of understanding the future.

Unlearning the Animator’s Mindset

October 31st, 2011

One thing I was taught as an animator was the dictum “If it looks right, it is right”, meaning that all that matters in the end is what people see on the screen. If you create a 2D cheat for a 3D effect, or you add a fake element to hide something that shouldn’t be in the frame, it doesn’t matter. As long as it looks good in the end, it doesn’t matter how much “cheating” or rule-bending you do to get there, or even how sloppy your process is (although a sloppy process does tend to give you a sloppy final product). What happens behind the scenes is not that important.

Animators are sort of like stage magicians, using visual tricks and misdirection to create the illusion of a moving image. Whenever I’m creating something, I tend to default to that kind of mindset. How do I make this look right?

But, the mindset of a developer is much different. It’s not enough to create something that merely looks right. The code behind the scenes has to work, repeatedly. Your code should be clean, efficient, well organized, DRY, stable, not sloppy. No cheating. No tricks. Unlike animation, software is not an illusion. It actually has to do what it’s supposed to do. It’s about function, not image. “What does this do?” Not “How does this look?”

Thinking like a developer means thinking in terms of function.

Week 4

October 28th, 2011

Just finished week 4 at Code Academy. I think my current skill level with Rails is analogous to my 20 month old son’s skill level with speech. He’s at the stage where he can understand what others say, but he himself can’t say much. He’ll say something like “Eee! Eee!” (Eat! Eat!) and I’ll say “Do you want to go to the kitchen?”, and he’ll say “Ay” (Yes) and run to the kitchen. With Rails, I can look at code and understand basically what’s going on, but I myself can’t yet write functional code directly from memory.

As an animator, I’m used to having all my tools laid out in a GUI. Buttons, icons, menus, slide bars, time lines, etc. I can see what I’m working with and create things using my hands (via mouse or stylus). With code, the tools are conceptual, and to use those tools, I have to remember the correct syntax to tell the computer what I want it to do. It’s a totally different way of thinking that I’m slowly learning. It’s sort of like animating, except I’m blindfolded, so I have to instruct a different person to do everything, and this person doesn’t speak any English, so I also have to learn to speak another language.

One to Many Association

October 25th, 2011

One-to-Many Association

Week 3

October 24th, 2011

Weeks 3 at Code Academy has concluded. My understanding of Ruby on Rails is becoming less and less fuzzy as time goes on. I oscillate between feeling like I’m falling way behind everyone else and feeling like I’ve got a reasonably solid grasp on things. I’m definitely way ahead of where I was 3 weeks ago. So that’s reassuring.

I’m trying to learn more about HTML, CSS,  JavaScript, etc, particularly the animation capabilities they allow. My mentor, Josh Davey, recommended I check out jQuery for Designers, and I’m contemplating getting a membership at Think Vitamin. Between web design and web development, I’m finding myself much more attracted to the design side of things.

Character Map Test

October 16th, 2011

I made a quick test for my study map idea. You can see it here.

Right now Hamlet is the only clickable character (click to go to the Hamlet view, click again to go back), and there isn’t any real info in the pop up box. But you get the idea. It’s a start, at least.

Practice & Metaphors

October 14th, 2011

End of week 2 at Code Academy, I’m realizing I need to keep up a consistant daily practice outside of class to keep everything fresh in my mind. Just like learning to speak a new language, you have to keep practicing everyday for it to really stick. Otherwise it will fade and you have to spend time catching up to get back to where you were before. Luckily there are plenty of good resources out there. Right now I’m going through Learn Ruby the Hard Way, which has been really helpful so far. The pace is very slow and thorough, which is good.

I’m also trying to come up with metaphors to help me translate the abstract concepts into something that’s more easily understandable. For example, Rails works sort of like a restaurant. There’s the customer (the person using the app), the waitor (the user’s web browser), and the kitchen (the server where the app is located). Within the kitchen is the chef (controller), the raw ingredients for each dish (model), and the recipes that the chef can cook up (view). The customer chooses a dish from the menu (app interface) and tells the waitor what she wants (input). The waitor sends the request to the chef who then combines the ingredients according to a specific recipe and hands it off to the waitor to give to the customer (output). I’m pretty sure that this is an accurate metaphor, but it’s still kinda fuzzy in my mind. So I might be a little off.

Sacrifice

October 12th, 2011

In week two at Code Academy, I’m finding that I need to get much more organized with my time. With my wife in school full time as well, it’s getting tricky for us to coordinate our schedules in a way that we each have enough time to work and still take care of (and clean up after) our toddler and pets.

But perhaps the more challenging task is deciding how much time I really need. I have things to learn, projects to work on, events to go to, books to read, enough to fill my every waking hour. And I would love to do it all, but I can’t.

So where do I draw the line? What am I willing to sacrifice? How much time am I willing to take away from my wife and son? What projects am I willing to let go of?

It’s something I’m trying to figure out.