rails初学者请教如何更快的掌握rails开发的能力
by Daniel Lv on Sep.08, 2009, under Geek
比较奇怪,Rails小兵级别的人物如我,居然经常在Blog上被人问起Rails初学者如何上手这样的问题。今天在Shanghaionrails的Group上,Barry也问了同样的问题,于是我仔细回复了Barry,我回复同时也是为了给所有初学Rails的人一点点建议。
——————– 分割线,Barry的问题 ——————–
各位好,
在 Daniel 的介绍下,第一次在shanghai rails group上发帖子,虽然我已经认识其中的一些成员。有感于组员的热心讨论和rails相关的问题,想请教各位如何才能尽快的掌握rails。
目的: 希望能够学习一些rails的知识,开发一些自己感兴趣的网站。
背景: 几乎没有任何计算机的背景知识。大学的时候没有怎么学过计算机编程课。目前从事的是和知识产权相关的律师工作,包括open source, web2.0什么的。
我对rails感兴趣,是看到一个介绍美国的peertopatent.org网站是用rails的技术来做的。这是一个我很关注的和专利有关的网站。因而读了一些文件,说是rails是一个非常方便,快捷的网站开发工具。于是就顿时产生了兴趣。
最近已经看过一些html和asp的书籍。也读了headfirst 系列的深入浅出 rails一书。知道一些rails的基础知识。但是在继续看更多的书的时候,却发现rails,还有ruby,语法真的是非常的灵活,以致于常常摸不着头脑。特别是那些个object的属性,书中的介绍几乎是信手拈来的使用。还有引号,顿号和逗号的使用,看起来非常吃力。
近期目标:之前请人做了用asp做了一个英语的法律问答的网站, www.15minutes4u.com。在shanghai rails group上看到了之前的一个外包消息,于是在接洽请他们用rails改版和升级。
请各位多提宝贵意见,有没有什么外行人的捷径。目的是自己开发一些感兴趣的网站。。。
多谢!
Barry
——————– 分割线,我的回复 ——————–
我来尝试回答一下,关于楼主这一系列问题,我最想说的第一句话就是,“相信我,面对这些问题,你并不孤独…”
先泼冷水吧,我希望楼主先弄明白两个问题,为什么是Rails?以及为什么要自己搞Rails?
关于为什么是Rails,我认为酷学的小星一次在宾馆跟我聊天的时候,总结的最为精辟:”如果你有个好的想法,想要互联网创业,想要快速实现一个原型并马上推到市场上,接受市场检验,这时Rails是最佳选择“
关于为什么要自己搞Rails,需想明白投入产出的关系。因为这意味着长期坚持投入大量时间和资源。我从创业角度理解,一个专精市场或者业务的人和一个技术型的人互为创业合作伙伴的组合,是一个不错的选择,可以互相取长补短。
好,现在说说入门成为一个Rails程序员吧。
我想以自己作例子来说一下,我大概是06年底07年初接触Rails,是看着JavaEye的Robbin的文章受其蛊惑,开始学习的。Robbin写了很多RoR系列文章,适合按照时间顺一篇一篇阅读。
地址 http://robbin.javaeye.com/category/5473 这些文章我深以为然。
关于RoR学习书籍推荐 http://robbin.javaeye.com/blog/58287
不过我有一点不同意见,我认为两本书《Agile Web Development with Rails第二版》和《Programming Ruby》就足够了。
不用担心那些Ruby语法上的细枝末节,其实那些并不重要,RoR最大的好处是,你可以先从Rails框架开始学起,然后顺便学习Ruby基础知识。注意,你的目标是熟悉并理解Rails这个框架,这个才是重点,等过一个阶段,对Ruby基础知识的需求才会凸显出来。
说完了书的选择,我想说说学习过程,我认为想要掌握Rails,制定一个好的,合理的初级目标非常关键,《Agile》那本书中的“书城”的例子,就非常适合作一个初级目标,我可以负责任的告诉你,当你把这本书上的例子烂熟于胸,并对这个实例项目的需求实现的前因后果深刻理解后,你已经掌握了至少80%的Rails知识,足以应付工作中80%的问题,这个过程,如果对自己要求高一点,施加的压力大一点,大概需要三到六个月吧。不用感觉这个时间太长,其实少既是多,慢既是快,如果能用半年时间,将这两本书上的内容学通学透,后面的学习过程将会是突飞猛进,摧枯拉朽的。
说说捷径,我可以负责任的告诉你,如果你真的打算走技术道路,打算自己折腾Rails作web项目,走捷径是不靠谱的,你可以直接放弃走捷径的可能吧。
如果非要头撞南墙找捷径的话,我偷偷告诉你,你不是有项目正在用Rails升级么,将这个项目中一些小模块揽下来,多跟Rails团队沟通,偷师也成,利用项目压力来推进自己的学习进程,是可能压缩总体学习时间的,但是过程会很痛苦,呵呵,我就是这么走过来的。
好了,我就说这么多,其他的楼下补充!
Daniel Lv
——————– 分割线,未结束,新回复会更新在这里 ——————–
Barry,
First all, www.15minutes4u.com is a decent site, nice clean UI. And I
love the fact that you didn’t put any ads. on. It has a great
potential. I can see myself and some of my friends using the site.
Don’t give that up.
about rails, Daniel is right, it is best for rapid prototyping. And
before we can give you any useful suggestions, you need to tell us
what you goals are, what you are trying to achieve with Rails.
in general
http://www.rubycentral.com/book/ is a good free online book to get
started.
http://pragprog.com/titles/rails2/agile-web-development-with-rails is
probably one of the best books for learning rails.
Two should be enough, if you start practice and have any questions,
stackoverflow is a nice place to ask. you can also post questions to
here.
hope that helps.
Eric
—————————————-
如果只谈rails中ruby的语法问题的话,那么可以看看这本书
《Ruby for Rails 中文版》
这本书有380页左右,
对于一个有些编程经验且理解面向对象的人来讲,这本书不错。
能够快速掌握ruby的语法。
相关网址如下:
http://www.douban.com/subject/2123090/
http://www.china-pub.com/209179
还有一本书,《Programming Ruby 第二版 中文版》。
但这本书有800页左右,不适合快速掌握ruby语法。
里面介绍的东西有些和rails没有直接关系。
相关网址如下
http://www.china-pub.com/30059&ref=ps
http://www.douban.com/subject/1422056/
如果想学rails,这两本书都要买。
《Ruby for Rails 中文版》用来快速掌握ruby语法。
学习起来更容易,完全是针对rails而学ruby。
跳过很多不直接相关的技术问题。适合rails的新手。
《Programming Ruby 第二版 中文版》用来做ruby的参考手册,有什么不明白的可以去查查。
不过,如果想真正掌握ruby这门语言,而不仅仅是rails方面,那么还是要多这本书。
这两本书我都有,我也都读过,所以不是空谈。
如果你在上海,我也可以把书…….借给你看看,呵呵呵呵。
希望能真的帮到你。
Ery
—————————————-
我要说的,怕是有点不搭调。
首先很钦佩楼主的学习热情。不过从目标导向来看,我觉得楼主可以走合作这条路。利用你的律师工作经验,将你的idea让rails使用者帮你实现。至于个人要不要通过学习rails进而开发感兴趣的网站,我倒认为其次。
打个比方,一个好的idea,通过合作可以2周实现,如果自己干,从头开始,1个月实现,可能还问题多多,你觉得哪种更划算呢?
当然认同你的idea并且有rails技能的未必那么好找,但是志同道合者未必很少。
术业有专攻。这话应该有它的道理。
– Qi Xiang
—————————————-
没有什么捷径,只是哪种方式更适合你。如果想尽快看到效果,照着书上的例子就可以了,不过以后你会发现基础还是比较重要的东西;如果想真正去了解它,建议从基础学起,在学习过程中尽可以用自己学会的东西去实践,这样会有更大的帮助。
– 马玉潮
—————————————-
呵呵,太喜欢这个讨论主题了。
我的理解这是一个”学习的困境“。
首先,楼主一定会很勤奋,说不定比很多人都更加勤奋。不惜投入时间精力。
其次,楼主花费更多的时间精力寻找”捷径“,因为勤奋的楼主认为时间总是不够,希望加速学习过程。
大家其实总结的已经很棒很全面了,放弃寻找捷径吧,学就对了。一段时间,就会非常清楚目标方向了,但是不尝试,很难明白到底什么方法更合适自己,祝楼主好运。
Best,
Daniel Lv
—————————————-
看标题还以为是Barry想亲自动手作一个rails网站呢。
如果想监督rails工程的质量,那么要看他们用的插件多不多(vendor/plugins目录下)。如果插件用的多,但是对于代码却不清楚,那么说
明他们只是rails的初级用户。
如果对于使用工具的源代码不了解,很有可能会出现意想不到的问题,就是《实用主义程序员》告诫的“不要靠巧合编程”。我刚用rails作项目的时候,也
曾经安装了插件结果造成系统出错。
如果想编程入门的话,其实Ruby语言缺乏
不懂了,看了
– Jiang Wu
—————————————-

September 9th, 2009 on 10:51 am
这读书笔记写的,好认真呢!!
好学生啊
September 9th, 2009 on 11:37 am
呵呵,原来你的Blog在这里。偶然发现了。
September 9th, 2009 on 3:17 pm
@drive2me Long time no see, 很久不去 http://ruby-lang.org.cn 啦。