Launch of the 3rd Edition of the Ruby on Rails Tutorial Book
news.railstutorial.org
news.railstutorial.org
For all the "non-technical" people out there who want to see their ideas come to life, who are considering hiring contractors or paying for a class, or posting on HN or founder dating for a technical co-founder, stop. Take a step back. Forget about your idea for a week or two and immerse yourself in this tutorial and learn about what it takes to put something together. You and your software related projects will be better for it.
The magic of the tutorial (to me) is that it tries to package together the entire development cycle for you. It gives you the foundation for building a real usable, launchable application. Concepts like authentication and authorization are extremely important and usually not covered very well. You learn to set up heroku and push updates. You learn testing, version control etc.
For someone who has finished codeacademy, javascriptissexy, etc., I think a common problem is, "ok great ,I understand for loops, and while loops, wtf do I do now? I have this CRUD problem I want to solve that no one else is solving. How do I put it together? I want a login page. I need to input information. How do I connect all this?"
Once you finish this tutorial, you know what the process looks like for Rails. Then you can genericize your knowledge and explore Sails, Meteor, Django, Flask, Ember, MEAN, Play, etc with a foundation and an ability to start asking questions.
Not everything will necessarily click for you as you read it, but it is a great entry point.
Thank you Michael!
Thanks for the book.
It's also super refreshing to see the changes made to the TDD approach in this revision. I run a small community coding programme for people new to programming and whilst we love referring to Rails Tutorial (among other things), the students often get massively disheartened when they have to face the dreaded wall of testing before they can actually produce something tangible. I completely get the merits of TDD, but I definitely favour the 'produce something interesting, get excited about it and then revisit it and understand how it works' approach for newer students.
Once I have some free time and finish getting through "Agile Rails Development 4th Edition" I'll likely be taking another stab at your Rails tutorial. I started learning Rails with the previous version, but quickly got overwhelmed with things and needed to take a step back. I had an overwhelming sense that I was just following the examples without really understanding why I was doing something, why syntax was a certain way, etc. (particularly with unit tests). Now that I've improved my overall knowledge a bit, I'm not as intimidated by these concepts so should be able to make it further in your tutorial while internalizing more than before.
Interesting choice to move to a cloud-based IDE and I can see where it makes a lot of sense. That said, having recently started exploring the world of Vagrant and Chef (and all the frustrations therein), it would be interesting to go down that path as well to walk people through setting up their development environment. Of course I can see just as many reasons (if not more) for why that was not included in the scope of the tutorial.
I actually made a VM using Vagrant when scoping out the 3rd edition, but getting everything to work cross-platform was almost as much trouble as just installing things natively. That's why I ended up going with the cloud IDE.
By the way, I recommend reading the Rails Tutorial before Agile Web Development with Rails, which makes a good follow-on (as indicated at https://www.railstutorial.org/book/following_users#sec-guide...). But of course go with whatever works best for you.
Can you elaborate on why specifically you recommend your tutorial first? Are there certain foundational topics you feel are left out of Agile Web Development with Rails that are important for a novice to understand?
Michael Hartl, if you're reading these comments, I attribute much of my best Software Engineering practices to you.
This book focuses on Ruby and Rails, but it is one of my favorite programming books that I always recommend.
It's a great comprehensive guide to how things fit together that doesn't make much in the way of assumptions about the reader's prior knowledge.
I work full time as a Rails developer and this is pretty much mandatory reading for new developers to our group without previous Rails experience.
I would love to see you get some coverage of Docker in there. Heroku is great, but virtualization is just such a big part of web development these days; it would be a great addition to an already wonderful learning resource.
Keep up the good work!
Had I started out with this book first, the learning curve would have been so much easier to traverse. I can't speak highly enough about it.
Using this as an into to Rails allowed me to become far more productive at what I do, and frankly I owe much of my success over the past two years to what this book instigated.
Thanks, Michael!
I ended up getting the job, then I found out they used Rails 2 (not 3, which the book covered) so I had to forget a bunch of stuff for a year until we started doing Rails 3 apps. Also found out they didn't do tests so I 'wasted' a lot of time on those with the book. Rails was also a PITA to setup the first couple times, thank god for StackOverflow and Ubuntu Forums. Either way it was a great book.
I prefer dead trees and was glad to spend real money on the book. Borders, where I bought the book is closed now, so I at least hope the author(s) got a buck or two from it and it wasn't completely wasted.
https://www.scribd.com/doc/52657907/Feynman-Lectures-on-Comp...
If everyone asked for upvotes based on merit, the system would break down.
https://news.ycombinator.com/newsfaq.html
I've deleted the offending tweet and won't do it again.
Isn't the point of a voting system to enable stories that many people value to be more visible?
In this case, it is not "manipulation" unless their accounts were hacked?
Asking for agreement is not manipulation.
That said, we routinely override the ring detector when the post is good original work, which this obviously is. But we don't do that more than once per project. The trouble here is that from an HN front page point of view, these are all effectively the same story:
https://news.ycombinator.com/item?id=8460670 (the current post)
https://news.ycombinator.com/item?id=8308320
https://news.ycombinator.com/item?id=8263611
https://news.ycombinator.com/item?id=8259528
https://news.ycombinator.com/item?id=8238823
Of course, to someone immersed in hard work on a big project, those are all very different milestones, each worthy of a post. But from an HN point of view, this project has appeared on the front page a lot lately. At least two of those posts got significant attention within the last couple months. That's a lot—already more than pretty much anyone else gets. So I don't see how we can justify overriding the ring detector in the present case without being unfair to everyone else to whom these rules apply. (It goes without saying that none of the above is meant to impugn the quality of the book, which I don't doubt deserves the enthusiasm of its fans.)
Edit: We restored the post because mhartl explained in an email that he didn't know the rules, and I believe him. I'll leave the above comment in the hope that it makes things clearer for everybody, or at least somebody.
I think a lot of people make a strong distinction between draft (or MVP) and launch, etc. This kind of continuity is good for every news cycle of any length, including HN's. :) People like seeing updates.
In cases such as this one where it is so helpful to so many people building a business, occasional updates are warranted. There are countless stories in here of people who have bootstrapped businesses using this very book, and mhartl is an extremely responsive and responsible person and member of the community. He answered some of my detailed questions last time around in an email, and I appreciate seeing the update about the launch on the front page now.