Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Ruby

Which do I do first in the Web Dev Learning Adventure?

Hey everyone,

I just finished Console Foundations in the Become a Web Developer Learning Adventure. Next on the list is Build a Simple Ruby on Rails Application, but I am wondering if I should do the Ruby Foundations first. It seems like I need to learn some Ruby before jumping into RoR.

What are your thoughts?

Hey Jonathan,

Based on other forums that i have seen with similar questions is that to do Ruby on Rails you have to understand some Ruby. Just like to jump in JQuery you need to understand some Javascript.

I'm not 100% on that. Hope that helps.

Thanks Armando. That is what I am thinking also, but they are in order like "Build a Simple Ruby on Rails Application", then "Ruby Foundations", so I wasn't sure which way to go.

Thanks for the reply.

Good question. I just noticed that on the learning adventures. Now i'm confused as well lol.

11 Answers

James Barnett
James Barnett
39,199 Points

My suggested curriculum for learning Rails is:

  1. Ruby Course by Learn Street
    1. Supplement the Learn Street course with the online book Learn to Program
  2. Ruby Bits by Code School
  3. One Month Rails
  4. railstutorial.org
  5. Build a Simple Ruby on Rails Application

The pre-req for for this curriculum is a strong understanding of CSS. With a possible optional pre-req of the Twitter Bootstrap 101 tutorial by tutsplus.

If you are curious why this order, why pay someone else when you are already paying for Treehouse, well there's no a short answer to that, so keep reading maybe you'll understand my choices.


My Learn to Program Manifesto

My view of learning to program is that you can't learn everything from one source, so consulting multiple sources helps you to understand the subject matter. Some sources favor a Project-first approach and some favor a Fundamentals-first approach is lots of small exercises. I personally favor the later.

So my suggestion is to start slow and view learning Ruby on Rails as a journey, there are no shortcuts. I suggest you start with the Ruby Course by Learn Street, it's like a course that is nothing but code challenges, it just teaches you about a concept then gives you an exercise to try it out with. To help cement this knowledge I suggest you read the online book Learn to Program by Chris Pine. It's written for those brand new to program and very chapter has exercises with it. I suggest you work on those exercises in Ruby Fiddle. After you finish the book and the Learn Street course, then there are the Learn Street projects. Complete 3 beginner projects, then complete 3 intermediate projects.

Having a solid grasp of Ruby now it's time to fill in any gaps in your knowledge around some of the intermeidate concepts. I'd suggest you check out the intermediate course called Ruby Bits by Code School. The reason I'm recommending Code School's course here over Treehouse's Ruby Foundations is because there are Code Challenges after the videos in Ruby Bits in Ruby Foundations there are only quizzes. As I'm sure you probably learned with CSS, the only way to learn a language is to use it to solve problems.

Quizzes do little to cement understanding. Programming languages like natural languages tend to be use it or lose it. So you tend to forget the syntax you haven't used recently to solve a problem. Now you can offset this issue by taking notes on the syntax during the videos and then creating out your own exercises to solve and doing them in Ruby Fiddle.

Now that you are pretty solid with Ruby it's time to get an introduction to Ruby on Rails. Rails has a lot of moving parts so first a guided tour of all of these moving parts is in order, that's what One Month Rails is for. It won't teach you to build a whole Rails app in a month (despite marketing hype to the contray) however it will provide you something essential an understanding on how these parts fit together. The goal here is to get high level overview on how stuff fits together so you can spend more time worrying about the actual Ruby on Rails when you get there than worrying about tools that are merely a means to end. About the time you finish One Month Rails you probably won't get learn about Twitter Bootstrap.

You've probably already built a your site from scratch using HTML & CSS and learned all about nerding out on Typography as well as other important design concepts. If you don't know about all of those things well there's a Learning Adventure for that. So since you've got all of that down, here's the idea when you are learning Rails you should be doing just that focusing on Rails no trying to decide at which weight your body typeface looks best. So my modest proposal is that when building a Rails app for learning purposes don't worry about design.

The easiest way to not worry about design is to use Twitter Bootstrap which happens to be the very same framework that is used the Build a Basic Ruby on Rails course. So work through the Twitter Bootstrap 101 tutorial by tutsplus to get up to speed on Twitter Bootstrap. Build yourself a site with Twitter bootstrap and now would be a good time to learn about changing bootstrap's default stylings. Practice customizing everything so it looks like it was coded from scratch and put that knowledge in your back pocket for after you make your first Ruby on Rails app from scratch you will no doubt want to but your web design skills to use then.

So now that you've gone through all of that, it's time to learn how to put everything you've learned together into a functioning app with the Build a Simple Ruby on Rails Application.

Like I said at top, this is my learn to program manifesto and remember, free advice is worth what you paid for it. So I suggest you take some time and write down your thoughts about your own journey in learning to program.

James Barnett, all I can say is "Wow!". This is the best "free advice" for learning to program that I have ever received. I appreciate it and I will take it to heart.

Thanks!

James Barnett, question for you. At what point in your suggested curriculum would you do the Ruby Foundations in Treehouse?

James Barnett
James Barnett
39,199 Points

Jonathan Wilson -

So as not to repeat my myself, I mentioned my views on Ruby Foundations here. Let me know if still have questions about Ruby Foundations or anything else with the sequence.

> Having a solid grasp of Ruby now it's time to fill in any gaps in your knowledge around some of the intermeidate concepts. I'd suggest you check out the intermediate course called Ruby Bits by Code School. The reason I'm recommending Code School's course here over Treehouse's Ruby Foundations is because there are Code Challenges after the videos in Ruby Bits in Ruby Foundations there are only quizzes. As I'm sure you probably learned with CSS, the only way to learn a language is to use it to solve problems.

So if you don't like the learning/presentation style of Code School's Ruby Bits or if you are confused on a particular topic then check out Treehouse's Ruby Foundations.

Just remember ...

> Quizzes do little to cement understanding. Programming languages like natural languages tend to be use it or lose it. So you tend to forget the syntax you haven't used recently to solve a problem. Now you can offset this issue by taking notes on the syntax during the videos and then creating out your own exercises to solve and doing them in Ruby Fiddle.

Great. Got it!

Thanks again!! :)

My respects to James Barnett and the TreeHouse Team!

Colin Marshall
Colin Marshall
32,861 Points

Excellent post James! Lots of valuable advice here.

John Matthews
John Matthews
6,241 Points

James, this is superb. Do you have a blog somewhere you could post this to? A lot of Googling I did in terms of how to learn ruby/rails resulted in discussions of which resource was the best for whom (hence why I ended up at Treehouse), but few actually suggested a curriculum of different sources with foundational beginnings.

The reason why I ask if you have a blog is I'm assuming it would appear higher on search results than this post, and I'd wish I'd come across it sooner (though I'm certainly impressed with Treehouse's instruction thus far).

The Ruby Foundations is a deep dive technically; the order of the learning adventure path is seemingly the recommended path, but I would wait to hear from an official Ruby Treehouse professor such as Jason Seifer when it comes to that.

From what I understand, the Ruby on Rails project is meant to help those who don't know Ruby still be able to get through the class and understand how Ruby on Rails fundamentally works through the project. It wasn't applicable for me learning Ruby outside of Treehouse & going through the Ruby Foundations course first because the project didn't exist until later.

Personally, I would go through the Ruby Foundations course first, but can't be certain it's absolutely necessary to complete the project that's next in the path.

Thanks. Those are my thoughts as well. If I don't get a reply from one of the profs, I will begin with Ruby Foundations and come back to Build a Simple Ruby on Rails Application.

Jason Seifer
STAFF
Jason Seifer
Treehouse Guest Teacher

Hey Jonathan Wilson it can't hurt to do Ruby Foundations first. It's not required to follow along with the Rails content but it will give you a better understanding of how Ruby works overall. Rails does a lot of tricky things with Ruby but you don't need to know any of that to follow along with the "Build a Simple Ruby on Rails Application" project. Hope that helps!

Great! That answers it.

I want to have as much understanding of Ruby as possible so I kinda know what Rails is doing. Thanks for answering so quickly, Jason Seifer!

Kevin Korte: Really? That's interesting; I don't even recall a single mention of Ruby on Rails in the Foundation course outside of Jason saying something along the likes that Ruby is commonly used to power frameworks such as Ruby on Rails and Sinatra. Ruby is great to make DSLs with.

Being a person who completed the Ruby Foundations course, zero knowledge of Ruby or Ruby on Rails is expected.

To be honest, a side note, I would say skipping the Ruby foundation course is a huge mistake. The common gotchas by many Ruby on Rails beginners is primarily because they don't really know Ruby as well as they should. It's like many who memorize 'Wordpress functions' but don't know PHP well to begin with.

Thanks again for your response Kevin Lozandier.

In the introduction video, Jason Seifer explains the layout of the learning adventure. He explains that we will go through learning how to build an application with Ruby on Rails, then learn more about Ruby. I think I will start the how to build an RoR app, then if I need do, I will jump to Ruby Foundations.

I'm determined to learn it either way! :)

I like that they did the 'Build simple RoR app' first. I found it almost lubed you up to the complicated world of Ruby! It skimmed the surface to give you brief idea of what you can do, before you deeply approach Ruby itself.

Hmm.. That's an interesting point. I hadn't thought of it that way. Maybe that is why it is ordered as it is. Thanks for the reply.

Chase Lee
Chase Lee
29,275 Points

Doing the deep dives for anything will give you a better understanding of what the teacher is doing in the project.

Thanks Chase. I know this, but my question was whether to do the Ruby Foundations first, since Ruby on Rails is based on the Ruby language, but is listed first in the Web Developer Learning Adventure.

Chase Lee
Chase Lee
29,275 Points

I would probably follow the learning adventure. Although I would wait for Jason Seifer or Nick Pettit to tell us, just incase it's in the wrong order.

Kevin Korte
Kevin Korte
28,148 Points

I tried to do the Ruby Foundation before doing the 'Build a simple RoR app' and that was a mistake. I completely abandoned the Foundation. It seems it is assumed some general knowledge of RoR is needed to grasp what is going on in the Deep Dive, and I didn't have that.

I soon later abandoned the 'Build a Simple RoR app' as well. It just wasn't clicking. I'll have to start over and try it again later.

I would think one might have a better chance at passing doing the project first, than the foundation course later.

That's just my experience.

Thanks for the reply. Good luck to you!

Jose Vazquez
Jose Vazquez
4,855 Points

Jonathan Wilson Did you feel that the path suggested to learn ruby worked for you?

Hi Jose,

I did not finished with this learning path. (Life happens) :) However, while working my way through it, I did learn ALOT! I just wouldn't classify myself as a Ruby Developer at this point (since I didn't finish).

I actually should have taken this advise but instead with PHP. I currently work full-time with a WordPress plugin development company in sales and support. WordPress is written in PHP and I have a small amount of experience with it already. I plan to go that route sometime soon.

With that said, I think that you could find success in following this path. :)

It always depends, and this probably needs to be bumped as a sticky thread or a FAQ at this point.

Jose Vazquez
Jose Vazquez
4,855 Points

Kevin, thank you. Out of curiosity, how do you feel about what you have learned here on Treehouse?

I think Treehouse is great; a lot of things I've learned on Treehouse have made me feel pretty good about what I can accomplish when I get the opportunity. Currently I'm waiting for an opportunity to show what I can do at a web firm, product design, or Rails shop when I get the chance.

I'm currently stuck in an area I absolutely don't want to put a dent in; as a result, I technically haven't cashed in my investment of what I've learned on Treehouse, my university degree education (I graduated with a degree and three minors/specializations), and what I've leaned from a variety of conferences and other resources.

That said, as I pointed out earlier in this thread months ago, it doesn't matter how you begin, but where you end up. And that path will require investing in a variety of resources. Mastering a skill needs to happen from a variety of resources and applied constantly.

Time is something you can't get back, & learning how to code needs to be done with the expectation you have to give a variety of options to give a serious effort trying out and slowly understand how you best learn rather than hear it from others.