Homepage

3 Weeks With Tealeaf Academy

2015-01-18

The last time I posted I listed out 18 resources that I was going to utilize to really teach myself Ruby on Rails.

I started my coding journey by working through Learning to Program by Chris Pine. Thankfully I had read a few articles in the process of picking out a programming language (it came down to Ruby and Python) that had stressed the importance of learning Ruby well before moving on to Rails. Learning to Program helped a lot.

After Learning to Program I jumped to CodeSchool for a bit and then to Upcase. I picked up some useful tools from each, but I still wasn't writing my own apps.

One of the trails at thoughbot recommended going through The Ruby on Rails Tutorial by Michael Hartl to supplement what they were teaching me. That book was simply awesome. The book builds a Twitter clone from the ground up and gave me a ton of applicable knowlege. I was able to build a silly little password generator with a word database in a weekend with the knowledge gained from that book SimplyStrongPasswords.

But The Ruby on Rails Tutorial really held my hand and I still couldn't do much with Rails that wasn't simply a variant of a chapter covered in that book. It was a lot of doing and good exposure, but it did not require much in the way of problem sovling.

But Michael had one last gem for me tucked away in the final notes of chapter 12 in his Guide to further resources. He said...

Tealeaf is an especially good choice if you want instructor feedback within the context of a structured curriculum

Structured Curriculum... That is exactly what I needed and what Teafleaf promised. I had been jumping from resource to resource picking up a bit of knowledge here and a bit of knowledge there. But several months in I was no closer to building my own professional app than I was when I started.

I have put in approximately 60 hours of learning in my first three weeks with Tealeaf Academy and I feel like the amount of applicable knowledge that I have learned, and more important can use, is greater than the sum of everything else I have tried to this point. Some of my highlights include

  1. Using Pry to debug instead of spraying my code with puts 'got here'
  2. Finding my own way to an algorithm to determine a winner in Tic Tac Toe
  3. Figuring out array methods like map and select for iterating over an array and returning a new array. I really could never figure out anything but the each method previously.
  4. An introduction to Object Oriented Programming that included concepts like declaring classes as the nouns of my program (the is-a) versus using modules for has-a relationships between classes.
  5. Finally learning what self actually represents within a class and how and when to use attr_accessor and attr_reader.
  6. A great refresh on CSS
  7. Figuring out some cool regex tricks to validate my username and bet amount in my blackjack app.
  8. Learned how to find the process id (pid) of stuck Shotgun process using ps ax | grep shotgun and then how to kill the process using kill -9 pid

And probably my favorite highlight was feeling confident enough after watching just the intro videos in week 3 to build the Blackjack web app without any reference to the solutions.

There was a ton of stuff I learned to do better after watching the solutions and so I spent as much time refactoring as I did building it. But there were actually some pieces of the flow of my original program that I liked better.

Overall I could not be more pleased than I am with my first three weeks at Tealeaf. I am extremely excited to continue and I look forward to sharing along the way.