Ruby on Rails入门之道

我被问到最多的一个问题是我该如何学习Ruby和Ruby On Rails,另外还有诸如我该从哪里下手,我该如何做,以及我要怎么样才能成为更好的Ruby/Rails开发者等等此类的问题。



51CTO编辑推荐:Ruby入门教程与技巧大全

我希望以简单明了的方式来回答这些问题,如阅读某本书你就可以成为一名优秀的程序员了,但事情并非如此简单,因为每个人的基础不一样,学习方式也不一样。因此我在开发者社区中做了一次调查,下面是我收到的一些回复。

你是如何学习Ruby和Rails的?

DHH: 我是在对编程开始感到愤怒的时候开始学习Ruby的 DHH:我是在对编程开始感到愤怒的时候开始学习Ruby的。我想做真实的东西,而不仅仅是一个玩具程序。(51CTO编者注:DHH是Ruby on Rails框架的创始人,他认为Ruby是Java在Web上最大的威胁者。)

David Black David Black:“我是通过一点一点积累起来的,经过了大量的实践和阅读,并尝试在Ruby_Talk中回答别人的问题”。

Evan Phoenix Evan Phoenix:“写代码的同时阅读和借鉴别人的代码”。

Yehuda Katz Yehuda Katz:“我是强迫自己学的”。

Ninh Bui Ninh Bui:“本来我是一名Java程序员,但我的老大要求我周末熟悉熟悉Ruby,于是我借助Google学习了一些基本知识,后来通过阅读有关书籍和源代码就越来越熟悉了”。

还有一些网友说是通过阅读Rails社区中高手的博客文章,Rails广播,Rails指南和API文档等手段来学习的。

你有什么好的学习建议?

网友Bob Martens说“多去社区逛逛,那里肯定有你不知道的”。

网友@jeromegn说“学习RoR最简单的方法就是亲自动手做点东西出来,Rails文档和Ruby学习资料也对我帮助很大”。

网友@ryandotsmith说“在github上找几个流行的项目(如radiant),学习它们的规格说明”。

网友Sunil Karkera说“开始时理解Rails中的MVC是最重要的”。

网友Ryan Bates说“Rails涉及到许多技术(包括HTML,CSS,Ruby,OOP和SQL等),你需要把精力放在你不熟悉的领域”。

另外还有一些网友则建议遇到问题就要问,可以去各大社区,邮件列表,IRC支持频道提问。

什么!还没听说过RoR?

使用Rails开发的软件编程语言叫做Ruby,如果你刚进入程序员这一行,学习起来还是很容易的,我推荐一本书给你,由Chris Pine编著的《Learn to Program》最新已经是第二版了,Ruby是一门优雅容易上手的编程语言,但也不要指望安装好Rails就可以用Ruby创建一个Drupal克隆了,Rails只是一个Web开发框架,它只能协助你快速开发Web应用程序。

友情提示:Ruby官方站点有很多资源,不妨去看看。51CTO的Ruby专题中也一定有您想找的东西。

我熟悉PHP/Perl等脚本语言,但我对MVC和面向对象开发一无所知

这要取决于你平时是如何学习的了,对于喜欢问如何的人,我推荐你观看Ryan Bates的Rails广播和阅读Rails指南,而对于喜欢问为什么的人,我推荐你阅读Ruby编程指南和Ruby for Rails第二版。

你也应该经常去Rails Wiki看看,如果发现你遇到的问题还没有出现在Wiki中,当你解决掉问题后,别忘了把你的解决办法提交到Wiki上。

阅读一些与Ruby/Rails相关的博客,订阅rubyinside网站的RSS feed,访问本地Ruby组。

友情提示:持续关注你学习的内容,渐渐地就会提高了。

我写过Rails应用程序,但受框架和语言知识缺乏的影响,总感觉受限制

首先我要说这是一个正常的阶段,这时千万不要放弃!请阅读《The Ruby Way》和《The Rails Way》这两本书,前一本最适合喜欢问为什么的人,后一本适合喜欢问如何的人,我建议两本都要读,有问题时不要犹豫,拿起Google这强大的武器进行搜索吧,也可以发布博客文章或通过同行进行交流,有一点可以肯定的是,不要害羞和气馁,坚持就是胜利!当然,51CTO编辑也了解到Ruby存在一些瓶颈:其对原生库和类的缺乏使得很多从如PHP投奔过来的开发者感到比较不方便。

增强Ruby/Rails技能的一个好方法就是阅读别人的代码,去GitHub逛逛看是否有人遇到你相同的问题,当然,你也可以参加Ruby/Rails培训。

友情提示:当我在文档中寻找一个函数/类时我经常使用apiDock。

我写过Rails程序,理解Rails规范,感觉能够编写新的程序

恭喜你,你应该为自己感到自豪!但不要停止学习,你为你的程序编写了测试吗?你真的测试过你实现的程序吗?还是你自我感觉良好?你使用了插件吗?你看过这些插件的代码吗?你理解它们是如何工作的吗?你自己能够编写插件吗?另外,你对Javascript熟悉吗?对CSS和DBA方面的知识熟悉吗?你应将精力放在自己薄弱的环节。

我强烈建议你为某些开源项目贡献代码,为GitHub重要项目打补丁,这样你会提高很快。

我写了多个Rails程序,还写过插件

太棒了,现在你应该对Rails和Ruby都很熟悉了,你可能想要研究得更深入一点,这个时候可以试试元编程或编写C/FFI扩展,看看Ruby的源代码学习学习它是如何工作的为何不可?

这个时候你还可以学习一下其它语言和框架,看看为什么其它人会选择那些语言和框架,如Python,Java,Scala,Clojure,Objective-C,Ocaml和Scheme等,你不用掌握其它语言,但应该理解每种语言存在的原因,它们的优点和缺点是什么,可以扩大你的视野,有时根据其它语言的特性对于你加深对Ruby的理解说不定还有帮助。

我已经很熟悉Ruby和Rails了,甚至可以背出Ruby和MRI的源代码

如果你已经到了这种境界了,我希望你能为Ruby 1.9(51CTO编者注:目前为止Ruby的最新公开版还在1.8下)出一份力,为其它实现(IronRuby,JRuby,MacRuby,和Rubinius)捐献你的代码,并帮助一下Rails 3(现在Rails在2.3下,社区对下一个版本的Rails 3普遍充满期待)。

原文名:How do I learn Ruby & Rails?

作者:Matt Aimonetti

【编辑推荐】

  1. Ruby on Rails 2.3.3发布 主要修复Bug
  2. Ruby on Rails开发的五点建议
  3. 浅谈Ruby和JRuby的学习
  4. Web开发谁更高效 Java对决Ruby on Rails
  5. TOP50用Ruby on Rails开发的网站

转载至:

http://developer.51cto.com/art/200908/141995.htm

文字承载思想,阅读改变人生 十一城

欢迎添加十一城人人以及十一城新浪微博

发表评论

电子邮件地址不会被公开。 必填项已用*标注