Learning Ruby on Rails

Learn Ruby Programming
Share Button
Puts “Hello World!”

My name is Riley, and I have chosen to learn how to develop web applications. I started this journey after battling WordPress to create my own podcast network (iClub.fm) and later to develop a Music Festival review site, (FestivalFling.com). I came to learn that WordPress is a great platform if you want to use/modify/tweak 3rd party plugins, however if you really want to make your own dynamic web applications, knowledge of a syntax beyond HTML and CSS is absolutely necessary. At the time of this writing I have gone through UCSD Extension courses in HTML5, CSS, a tiny bit of JavaScript, and a few different online Ruby and Ruby on Rails learning resources (which I will go over in more detail later.) I am currently learning Ruby on Rails, and do not yet have a grasp of the platform, but know with enough determination that it is a feat that is possible.

One of the goals of this writing is to help whoever may wish to learn how to code through my own documented experience.

Being a product of the computer age, I am no fool when it comes to understanding that there is a wealth of information on how to learn virtually anything via the internet, and I have been pleasantly surprised on the amount help, guides, tutorials etc. that the online community has put together to help others learn any programming language or coding syntax. In more than one of the many amazing articles I have read regarding the learning process of programming, one of the most common themes seems to be that you should document your own learning in order to help solidify your education. Documenting the process also can provide a future learner with what works best in the learning process. One of the goals of this writing is to help whoever may wish to learn how to code through my own documented experiences.

My Learning Process

Now if you are familier with WordPress you might be wondering why this entry is not titled “Learning PHP Programming” as PHP is the backbone of the WordPress platform. I chose Ruby for a number of reasons, some of which are:

  • Ruby is a syntactically elegant language, meaning it is a bit easier for humans to read, understand, and write.
  • Ruby is a younger language that many web applications are beginning to be developed on, such as Hulu, Twitter, Shopify. Check out more examples here.
  • Ruby has the robust Rails framework for getting from ideas to code quickly. *Most other programming languages have frameworks as well.
  • Ruby has emerged recently as a major contender as the programming language of choice for many startups.
  • WordPress is well known to have security issues. I would rather learn to develop on a more secure platform than on a notoriously insecure one.

How I came to learn Ruby on Rails.

My biggest failure in learning has been my own over-analyzation of the complexity of programming. Don’t hold yourself back.

I have a bachelors degree in History from SDSU, so needless to say my educational background in programming is non-existent, however I have taught myself a lot about web design and other platforms extracurricularly since High School. This is where I would like to de-bunk a terrible disservice I have done to myself over the last 5 years. I used to believe that computer programming was something only super smart people were able to comprehend. I never even really gave myself a chance to dive too deep into it because the syntax seemed so foreign that I figured I would never be able to learn something like HTML. Programming syntax used to look about as understandable as the code in the Matrix (movie). Now that I have gone through learning some of the easier stuff like HTML and CSS I realize that it is more constructive to think about it like you would when learning a literal language like Spanish. It might look totally foreign when you start out and you might think “I can’t learn that, I have no idea what the words mean!” Well that’s because you havet learned it yet! Taking HTML5 as my first introductory class into the ‘coding’ world was great, because I realized I already knew the majority of the language. My biggest failure in learning has been my own over-analyzation of the complexity of programming. Don’t hold yourself back.

When learning programming I wanted to do it right. I wanted to learn from the very beginning; Programming 101. So I started with brushing up my HTML skills by taking the Web Publishing certificate course at UCSD. These certificates are common at many University extension programs, and they will teach you a solid foundation in building static web pages. After feeling I had a half-decent grip on the building blocks of web design, it was time for me to make the leap into programming. I would have preferred to take a UC course, however no Ruby classes were offered in the San Diego area that I could find. So onto the internet I went to see how others learned. After reading up on learning programming, it would appear that there is a bit of a blackhole in the education world in offering programming courses. Even beyond the Ruby language, many programmers learned their chosen languages on their own, with a plethora of unattractively large books. Recently a series of programming schools that focus on getting students from 0 -> intermediate level in a matter of months in an intense and immersive course have sprung up across the country, however many of those are not in the San Diego area (where I live) and the costs can be high. Many of these courses sound to be pretty amazing, boasting all-star teaching staff and all the latest information and connections you would ever want  in the “Programming for Startups” world. Here is a list of the best schools I came across, that I would love to attend if the money and time wasn’t that much of an issue:

The Starter League The Flatiron School The Dev Bootcamp
Chicago, IL New York, NY San Francisco, CA
$2,000 – $8,000 $5,500 $12,200

If you have the cash to drop on going through one of these courses above, I would recommend it.  Their platforms sound incredible, and their programs allow you to learn with others. One of the biggest learning issues I am having right now is that doing it solo can be tough. I often run into bugs/problems and it would be great to have a buddy there to help hash out the issues that come up when learning programming. Online educational platforms have begun to surface, and offer a different style of learning that can be good or bad depending on how you learn. One of those resources I have been using is CodeAcademy.com, which is a product of the 2011 Y Combinator startups. I go into more detail on the CodeAcademy.com review below, but it has been helpful to learn and practice different languages. For more online resources, check out more of the resources I mention later on in this article.

So where am I now, and what am I planning on learning?

My Learning Progress:

TryRuby.org (Online Learning)

TryRuby.org (Online Learning)
100% Complete
  • 100% Complete: Try Ruby Course

TryRuby.org Review – A fairly short introduction to Ruby Programming (not rails). It is a very well designed platform and lesson structure, but it is very short. I think the shortness is the point of it though; to show people new to Ruby that it isn’t too intimidating to learn. When you complete the program it suggests other helpful sites to learn more about Ruby and Ruby on Rails. Definitely worth a try, especially if your just starting to try out Ruby. (and it is free)

Education: A Cost: A++ Satisfaction: A
Lynda.com (Video Tutorials)
66% Complete
  • 100% Complete: Foundations of Programming: Fundamentals with Simon Allardice
  • 100% Complete: Foundations of Programming: Object-Oriented Designwith Simon Allardice
  • 100% Complete: Ruby Essential Trainingwith Kevin Skoglund
  • 40% Complete: Ruby on Rails 3 Essential Trainingwith Kevin Skoglund
  • 20% Complete: MySQL Essential Trainingwith Bill Weinman
  • 10% Complete: Git Essential Trainingwith Kevin Skoglund

Lynda.com Review – This is a great resource to learn almost anything. The courses for programming fundamentals and Ruby are very thorough, and talk through every aspect. All of the Lynda.com library is available for $35 a month, which is a great deal when compared to the prices at a UC. Their iPad app is a little buggy, but still a great asset if you have an Apple TV to stream the videos to while following along on your computer.

Education: A Cost: A Satisfaction: A+

CodeAcademy.com (Online Learning)

CodeAcademy.com (Online Learning)
53% Complete
  • 100% Complete: Web Fundamentals
  • 35% Complete: Code Year
  • 25% Complete: JavaScript Fundamentals Track

CodeAcademy.com Review – I understand that this is a fresh startup, and their lesson library is not very extensive, nor is it very refined. A problem I had with CodeAcademy is that some of the lessons skipped around and tended to assume prior knowledge in some of the material, which made it hard to follow along. I know I am not alone in this from spending a lot of time in the Q&A sections of the lessons. It seemed that many others were lost in some of the problems and a general complaint was that the problems were poorly worded/explained. It’s hard to really complain about CodeAcademy because what they are trying to do is awesome (teaching people to code), and the application is actually really good if you can get around some of the poorly written lessons. It is also free, and adds some neat motivational elements like progress tracking, badges for completing corse packages, and it will alert you if you havnt coded in a few days. I am sure CodeAcademy will get a lot better after they are able to process all their user feedback and add some additional courses beyond HTML CSS, Python, and JavaScript.

Education: C Cost: A++ Satisfaction: B

UCSD Web Publishing Certificate (Formal In-Class Education)

UCSD Web Publishing Certificate (Formal In-Class Education)
50% Complete
  • 100% Complete: HTML5
  • 100% Complete: CSS
  • 0% Complete: JavaScript
  • 0% Complete: Elective

UCSD Review – UCSD was by far the most expensive courses at around $600 per class, but it made me really focus on the material and I had someone to ask questions if I had an issue. I think it was good to get these foundational courses done for two main reasons: HTML and CSS are great to know if you are planning to continue onto anything else related to web technology, and the Web Publishing certificate is something I can place on a resume that shows I attended a University for some of my education.

Education: A Cost: D Satisfaction: B

Future Learning Resources (I haven’t started these yet, but plan to):

0% Complete

Invaluable online resources and tools

StackOverflow.com – google your error code and it’ll probably bring you to StackOverflow.com where someone  awesome probably already answered what went wrong.
GitHub – I am not far enough along in my learning to use GitHub yet, but that doesnt mean I dont understand a bit about what it is. This site it beyond awesome, and allows users to post their open source web applications for free and have other users work on them. GitHub is the ultimate collaborative programming social network (and built with Ruby on Rails if I’m not mistaken.) You can bet that once I learn programming well enough I am going to be all over GitHub helping others with their projects. It can be a great way to show your skills to large companies, as the majority of the large tech companies like Facebook, Twitter, Google etc. are on GitHub.
RubyonRails.org – Kind of self explanatory, it is the online Ruby on Rails resource and will help with installing rails etc.
Pulse News – Pulse News is a News feed reader for the iPhone and iPad. While I use it on both those devices, I prefer the iPad version because of the larger screen. Pulse News is one of the best RSS feed readers I have come across, and it turns RSS content into a beautifully readable iOS magazine. It is a great way to stay up-to-date on your favorite news, blogs, and industry trends.

Hacker News – Hacker News is a news feed aggregator produced by the team at Y Combinator. I have the RSS feed plugged into my Pulse News reader for my iPad and it pretty much reads like a magazine. (There are plenty of RSS readers out there, but Pulse News happend to be the one that worked best for me.) Hacker News is great at highlighting cool articles from across the web. It could be a useful tip blog post, a news article, a feature on a cool new Startup. Reading is a great way to get acclimated with the scene, and Hacker News does a great job at posting relevant content.

That about does it for now. I’ll be adding onto this as I get farther along into Ruby on Rails. If you have any questions, comments, words of wisdom, or anything else to jabber about drop me a comment!

Share Button
Riley scribbled this article down on: September 22, 2012