First Day

May 13, 2013

App Academy W1D1

Day 1

Hello Everyone

Today is the first in what I hope will be a long string of posts about my time here at App Academy (I shall call it AA from now on). In addition to the rigorous reading schedule and Ruby oriented projects is a daily reflection on what I have learned in class today.

I first found out about the program through a HackerNews post. Back then, AA focused on mobile and iPhone apps and being the Apple fan boy that I am, I jumped at the opportunity. That was almost five months ago and since then it seems like the class had switched away from Obj-C to Ruby. Fine by me. Ruby is an elegant and beautiful language. I had started studying Ruby on my own while I was consulting for startups around the Valley. I picked up the Ruby For Professionals book and worked through the majority of the book while couchsurfing in Mountain View at a friend’s place. Ah, what times it was! I wanted to learn Rails to try to get a dev job then but I could not stick to it. Instead, I learned RubyMotion and worked on iPhone apps with that. (Shameless Plug: Just this week I found that the App Store had published my first app!)

I had expected the AA lectures to be much like a college course with lectures and perhaps discussion. So it was a little surprising to me when I found out that the format was more like being all discussion and a relatively small amount of lecture. There was a short introductory talk by Ned, the big honcho who I thought looked like Jesus with his long Dude-like hair. It seemed like to me that he, like with any other intro lecture I have ever attended, was trying to scare the bejeezus out of us by telling us how much we were expected to work and all of the various punishments that could befall us if we did not adhere to the rules. Then we were paired off and given a set of projects and meetings to do.

In this first day, we started with keyboard shortcuts and walked through many of the primitive Ruby common methods that we had to learn and know by heart. These included arrays, strings, hashes, and objects. Some of these projects were complex and took a long time to grasp. All in all though I do not think that they were especially challenging. But I think the thing that was most challenging to me was pair programming.

In pair programming, you would sit with someone and the two of you would switch off between the other. One person would have control of the keyboard and the other would communciate to them the ideas that they want to type down onto the screen. To me, it was definitely a change of pace. The way I like to write code is very stop and go. There are a lot of false starts and things that do not work. I start with a vague idea of what I want the thing to do and then slowly “feel” my way through it. So it was difficult for me to communicate in words what exactly what I wanted to do. There were many times when I had the big idea in my mind but struggled so hard to put it into words. The result was that I would be a little frustrated that we were not making the progress that I had imagined us making. This was doubly frustrating because I felt that I was paired off with someone who was very good at intuitively understanding the code too. You feel a little bit of pressure here. Every day there is a lot to get through and the pace waits for no one! However, I feel confident that as we adjust and get better things will come out roses.

My top ranked-4 things that I learned today:

You can hit “tab” in your Terminal and it would autocomplete the text! This is great for my RubyMotion work too. It’s the little things.

if FILE == $PROGRAM_NAME, which allows you to more easily debug the sub programs behind a Ruby script. Before I had had to comment out the “main” method so that I could debug those sub programs. I am still getting a hang of not doing this anymore though.

Sets are Hashes that are unique

Enumerables methods can be called on both Hashes AND Arrays. How about that?

Other things that I think I think about today:

  • Not using your phone during the day can lead to great progress

  • I really have to focus more on maintaining my energy through the day. I felt really gassed by around 1 PM and struggled to put 100% on the projects. This means I have to go to bed early tonight.

  • Great being in SF again. The weather always surprises me

  • I find it amusing that Ned looks like Jesus AND AA sits on top of a church … COINCIDENCE??

  • Array/Hash.Inject is some crazy shit