These days, I am learning Ruby on Rails(RoR for short).
Building my happypeter.org, basically I want to share my screencasts and have a HackerNews-like forum, so that people can come, see, and talk. Ready-made things like phpBB are far from what I wanted quite frankly, since they have a lot of features I don’t love or need. Hey, I am a coder, so I do not mind learning a whole new framework and do the code from scratch.
It’s all because github (built on RoR). I love it and I also love some other neat RoR-based tools like showoff and jekyll there, anyway the whole ecosystem looked charming and promising to me as an outsider.
So I did not give Django a try, even though I have some python experience while knows nothing about Ruby language.
The author of RoR, DHH, said he built this to fight against java for programmers’ happiness, productiveness, and more importantly freedom. Freedom is sexy, thus RoR over java is a natural choice for me.
More importantly I think, when you want to get your feet wet in a new area, it is more than wise to find a group of smart people you can join(I already knew some of these people even before I started learning RoR). So now even if RoR is not the best web framework on this planet, it’s still great for me to get access to these nice guys to guide my way. Otherwise, I would simply get lost in the vast ocean of concepts, like html, css, restful design…
Yes, I was right, and it is even getting righter as my study continues.
I started with an official guide, quite a good place to start from ZERO.
Then I found RailsforZombies. I had never seen some cooler screencasts before. Again, it is definitely friendly for absolute beginners.
When I had the very basic concepts in hand and really wanted to do some real code, I found railscasts.com. Episode 250: Authentication from Scratch, was really a big help.
If you do not have basic command line skills, like you never heard of what a shell script is, you may have less joyful learning process. RoR is a typical Unix toy, it gets really naughty on Windows.
BTW, knowing git-scm is also a big bonus to make the learning process exciting.