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

Should I Start With Rails??

I want to begin the path to learning web development but I'm unsure if doing the Rails track alone will give the the skills I need to build websites and eventually get a job. Is starting with the Rails track a good idea or should I start with Front-End development to reach my goals?

6 Answers

Absolutely you should not start with Rails.

My path to getting a job can be summed up like this:

  1. From 'ground zero', signed up with Treehouse,
  2. Did HTML/CSS
  3. Tiny bit of Javascript; wanted to be a Web Designer
  4. Switched to Ruby; decided on going down the Backend route
  5. Learned some Ruby
  6. Learned Rails, built lots of stuff with it,
  7. Hit brick wall; realised I had a massive hole in my knowledge that was only getting bigger and bigger. Couldn't reach next level of skill / complexity.
  8. Realised I had two options: plug away on my own for another year or pay for a coding bootcamp.
  9. Chose the latter (Makers Academy in London),
  10. Did Makers Academy,
  11. Got a job at Sky in Leeds as a Developer (Junior, of course),
  12. Gained the knowledge of what I should have done but, unfortunately, this knowledge would have been extremely difficult to get on my own without doing Makers Academy and getting a job.

I will now quickly sum up what I now know. I should probably write a blog post about this so I don't keep having to repeating myself on this forum.

Despite being a Moderator, I will bestow upon you what I believe to be Treehouse's big dark secret: They don't teach you what you really need to know because it would be bad for business. I'll elaborate...

There are two MAJOR things they don't cover in nearly enough depth that you need to know to get a job: TDD and Design Principles. Last week they added a 'Design Principles' workshop to their library, thankfully, but it's really only a starting point. They also have some stuff on RSpec and other testing libraries, but it's not something that is embedded in the rest of their tutorials.

It would be bad for business because learning TDD and really internalising Design Principles is hard to learn and hard to teach. By omitting these things they deliver more 'instant gratification' for their users, which keeps the subscriptions going. Can't blame them, really.

In my professional opinion, it's very unlikely you'll get a job without this stuff.

Thankfully, (some) help is at hand in the form of an excellent book by Sandie Metz: 'Practical Object-Oriented Design In Ruby'. This has your back covered for Design Principles.

List of tasks you need to complete before even THINKING about Rails:

  • Work your way through the pure Ruby modules on Treehouse
  • Find a book on RSpec and TDD that DOES NOT use Rails (they do exist). Read it.
  • Read that Sandie Metz book I mentioned.
  • Write a Rock/Paper/Scissors game in pure Ruby, using TDD, that can be played in the Terminal. Have a professional Ruby developer review your code. Pay them if you have to. This stage is CRITICAL and, if you get it right, you are on your way to getting a job.
  • Hook up your Rock/Paper/Scissors app to a browser, using Sinatra, and using TDD, so you can play it in your browser. If you manage to do this you are ahead of 99.9999% of everyone else on Treehouse and you are close to being able to get a job. To get this far you will likely have had to pay someone to help you out. Nothing wrong with that.
  • Do more stuff like this with different domains eg making a Battleships game is the classic test. You can google for more.
  • Once you've done three or four of these and you have had a good professional Ruby developer review your code and tell you it's good, then and only then should you move onto Rails.

The above is hard - really hard, but more than possible if you're determined. The fast-track way through this is to pay for a bootcamp, but not everyone has a spare few thousand lying around.

If anyone thinks I'm wrong, they are more than welcome to criticise what I've said, but I'm unlikely to agree unless you're a professional developer.

PS You don't need to know Rails to get a job. In fact, you might be better off without it.
PPS Here is my CV as it was when I applied for my present job.

Thanks Andrew, that was very very helpful. I noticed you said that I might actually better off without Rails. Could you elaborate on this a bit? Do you mean it would be wise for me to simply focus most of my energy on the Front-End side of web development?

Jason Cornwall , you mean the very last thing I said? Rails is basically a framework built on what is considered good practice and good design patterns (how to arrange your code). It also does an awful lot under the hood straight out of the box. This is why you hit a big wall eventually if you just do Rails.

Following the path I outlined will enable you to get a job as a junior Ruby developer. Sprinkle in a bit of Rails on top of it and you'd be able to get a job as a junior Rails developer, too. Just do Rails and you won't be able to get a job as either.

If you want to be a Front-end Developer, you need to seek advice elsewhere and follow a different path. Does that make sense?

Thomas Beaudry
Thomas Beaudry
29,084 Points

Hi Andrew, wow! Thanks for this eye-opening explanation on Rails, I am a newbie on Ruby and I definatley agree with your views on Treehouse alone, will not get you in the front door of a prospective company. Yes, books and "bootcamp" is needed as well. Great answer! :)

John Steer-Fowler
PLUS
John Steer-Fowler
Courses Plus Student 11,734 Points

Hi Jason,

It depends on the knowledge you have currently.

I really don't recommend attempting Ruby on Rails if you don't have a good knowledge of:

  • HTML
  • CSS
  • Some Javascript maybe
  • Understand how databases work (theres a course on here for that too)

If/when you have a good understanding of HTML and CSS, you could start the rails track.

Make sure you don't jump straight in at Rails. Do all the Ruby courses first, otherwise you won't understand what is happening.

Hope this helps

I agree with John S-F. If you are just starting on the road to learning web development, start with learning HTML and CSS. Every web page uses them. Even if you are a back end developer you still need to have a grasp of them. After that then learn a language (or two), such as javascript or ruby, and then onto frameworks. If you want to build the second story, you still need to build the foundation first.

Michael Fish
Michael Fish
7,804 Points

I'm not a rails developer but the work I do does encompass the full stack(Single page applications using various js frameworks and PHP). After doing treehouse and other tutorials 5 hours a day for 6 months I was lucky and given a job by a guy I met in line at a sushi restaraunt. It's client driven work and I don't use TDD on a daily basis.

I don't know if I was ready when I took the position and I still find myself living on stack overflow and tutorials to accomplish even small tasks. Perhaps I'm missing something that would enable me to write entire applications on my own from scratch but if I am I don't know what it is.

I do know that I can get my job done either way and my boss is cool with my contributions. I just feel like I'm missing something major that would be a massive mental breakthrough and I really want to find out what it is.

jaisonbrooks
jaisonbrooks
4,608 Points

Rails was the first web development framework i had learned and is definitely something i'd recommend to other to learn.

Kevin Korte
Kevin Korte
28,149 Points

Neither Hampton or Jason work for TTH anymore. Rails is good. The Rails tack here is severely outdated. They are using Rails 3 here, and Rails 5 already has RC1 that was released on May 6th. So the Rails tracks here are years behind. They've said they are working to update everything with a new teacher, but with that much content needing updating, it will be awhile.

With that said, Rails is still pretty relevant. It's one of my favorite frameworks still. There is some value to to still use the Rails 3 lessons here. You'll still see a lot of the "Rails" way of doing things. It'll at least get you going in the right path so making the jump to Rails 4 or Rails 5 won't be so big. My advice though is to follow along with Rails 3 in your project. If you're just learning, and you are trying to build what was built, like it was built in Rails 3 but you're using Rails 4, you're going to frustrate yourself very early on.

John Steer-Fowler
John Steer-Fowler
Courses Plus Student 11,734 Points

I agree. However, remember Rails 4 was used for the ODOT application course.

Jason's older stuff (Treebook) is really outdated now but can just about still be followed along to gain the concepts that are not covered in ODOT which has only become outdated in the last week

Kevin Korte
Kevin Korte
28,149 Points

Ahh gottcha. I haven't done the ODOT, so I didn't realize it was Rails 4. Good to know - thanks!!

Michael Fish the learning never stops - I'm constantly baffled at work. It does sound like you lack support at work though and don't have good developers to mentor you and give you the time and attention you need. Look for a job somewhere else!