多数应该都是 PHP、Java Web 干过转的吧,我纯属于业余爱好者,了解编程基础(variable、conditional、loop、OOP basics etc...),用 PHP 能够写个最阳春白雪的留言板,可以说没有任何实战经验,最近慕名而来开始学习 Rails(现在还在从 Ruby 基础开始学习),接触了一下 Rails,几点菜鸟体会:
有完全没有任何经验直接开始学 Rails 并有小成的吗?想请教下你们的经验,谢谢!
最后还想打扰大家帮忙看看下面这些 Ruby 的知识点都掌握后是否就可以开始 Rails 的正式学习了?还有欠缺的知识点吗?
Basics Conditionals Loops and Blocks Procs and Lambdas Classes Methods Modules Exceptions
STL Classes Strings Arrays Hashes Regexes
Techniques Inheritance and Composition Mixins
这里的大部分是科班出身的把,所以这个问题可能很难回答你。
你的两个问题:
行话
,这个就帮不了你了,是知识积累,只有多谷哥,多问人了你以前学的东西,在我看来,已经足够上路开搞 Rails 了。挑个好教程很重要,好在 rails 的教程都很给力,神马?文档?。。。。。哎,这么好的天气别谈这种扫兴的事了
回答一下——
请大家一起说黑话
,所以如果你是香港人可能就会不理解山口组的切口,这个没问题,一个办法是加入山口组(完整的学习 rails 官方站上各种 api、tutorial),这样马上就有一个靠山但是有组织约束,另一个办法是自己组建红星社(先看看 rack 框架——相当于 java 的 servlet 或者 python 的 wsgi——然后自己做一个 rails 出来),那就比较自由但是需要你自己挑头。楼主,我给你个建议,首先你有其他语言框架经验,没问题。第一步就是你要知道 http 请求的过程,根据这个过程来了解 rails,你会很快明白,你在什么地方要做什么事情。 拿我的情况来说,刚学 rails 的时候,真的一点基础都没,现在总结下来就是: 1、浏览器,发起请求(表单或者链接)到服务器 2、服务器由路由解析你要到哪个 controller 和 action 3、action 接收到你的请求,然后可以根据你的参数,访问模型对象,然后。。。增删改查对象(操作数据库)。 4、获得处理的结果后,经过 helper 的封装,配合 view 形成 html 回到浏览器。
恩的,很通俗吧,rails 就这点东西。。。。这个能掌握,我感觉就入门了。
跟着楼主的话题,也谈一下感受:
@durden 我去年刚毕业的时候差不多零基础,最开始也是直接上手 敏捷开发 那本英文 PDF, 之前学了半个月不到的 html + css,完全是照着葫芦画瓢把流程过了一遍,后来也没有复习下,现在估计那个 depot 让我做估计都不会做了。我的建议是
大家都在讨论书的问题,其实我现在很少从书上学东西了(除了一些基础知识),象 rails 这种急速变化的框架性技术完全应该搜索式学习,官网要翻一翻,然后看看在线教程(不是实体书),配合各种 github 上的项目代码阅读,这个比较有用些
我算是非科班、没有任何 web 开发经验就直接学 Ruby/Rails 的吧:-) 基础差,数据结构、算法、操作系统之类的都不懂。四级没过。 刚学 Rails 的时候用了一个月都没把 depot 搭建起来。
我也是新手,Rails 起步时确实让人晕头转向,Rails 那些“约定”看上去确实折腾。后来想明白了,弄懂一大堆概念确实很费力气,但之后再复杂的应用也不会超出这个圈子,为了这个辛苦点也值了,大投资带来大回报。
另一方面,我听人说“没有经历过用狼狈的手段解决问题,就不容易明白为什么需要框架,约定,模式……”(大意如此),能从这个方向考虑问题,就好理解了,写 Rails 耗费的一些额外功夫,是在为今后的扩展省下时间。
阳春白雪....是下里巴人! 没 web 经验做 rails 确实事倍功半,有 web 经验然后深感其他语言的不足再用 rails 就感觉如沐春风,甘之如饴了!
和 lz 有相同感受。前几天看到《说 ruby on rails 很简单什么的都是骗人的!》 http://blog.dygvirus.info/?p=117,感觉挺有意思的
看书看了两三章,又要回过头看其他的东西,之后再重新看一遍,再看两三章,再学其他的东西……不断重复中
现在决定还是先把 HTML,CSS,JS,HTTP 等过一遍
@hooopo 我要有你一半强就知足了...单表继承多态继承用法现在完全不自信了。。。缓存过阵子还得请教你 @durden rails 不太适合新手,虽然很好写,但是涉及了很多设计模式的概念所以不太好理解,但是 ruby 确实非常适合非科班出身的人接触编程,建议先学好 ruby,然后去了解一些 rails 的基本概念,mvc,model2 啊啥的。。。这样就可以在 rails 上自由发挥了~勤读源码,其实不难的
话说 会 php 的话 推荐先看看 cakephp,抄 rails 抄的很像,但是因为是 php,所以代码很不优雅。。。不过算是思路上最接近 rails 的了 我基本上做了一年的 cakephp 然后转 rails 的时候 没有学过 ruby 看一些 samples 就可以构建一些小的玩具了 基本思路都是用的 cake 的经验
先把基础打牢吧,ror 是用来做 web 开发的,网上有很多免费的 html,javascript,css 基础视频,asp.net 或者 java 教学视频里面都会讲这些,电驴上面找找,优酷里面翻翻,入门的时候看着别人敲代码比看书强,等有了一定水平再去看书。
我先看 PHP,没学会怎么写网站; 再看 JavaEE,被恶心到了; 再看 Ruby on Rails,终于摸到门道一个网站要怎么写。
所以我觉得我在 Web 编程是通过 Rails 入门的。Rails 组件虽多,但对 Web 开发都是有用的。有人喜欢从精简的框架开始,往后做加法;我就喜欢走别人铺好的铁轨,按需增删组件。看你怎么想,总之从 Rails 入手是可行的。
#39 楼 @Rei 最近在想一个问题,感觉现有的教程都是一步一步走,‘搭积木’式地教课,然后涉及的知识点非常多,新手们会经常感觉力不从心容易忘。不知道有没有一个可行的方法‘庖丁解牛’去解析简单的源代码。至于约定俗成,其实有时候是看官方文档不细心或者英文不够好把。例如建立 join_table 的时候就应该按照 lexical order。
Active Record creates the name by using the lexical order of the class names. So a join between customer and order models will give the default join table name of “customers_orders” because “c” outranks “o” in lexical ordering.
#40 楼 @sundevilyang 我觉得新手看完《Agile Web Development with Rails》最新的中文版就好了。但是实际上经常有人喜欢走「捷径」:
新手搭积木是最好了,写一个搭积木教程其实很难,很容易略过自己觉得不重要但是新手并不懂的东西,但是《Agile Web Development with Rails》被我亲身检验过可以从 0 开始入门。
还是希望新手不要急,我学了半年才写出第一个实用程序(一个博客),一年后才开始了解到 Web 编程需要去学些什么,现在第三年不断发现有要学的东西。跟一些悟性好的人比我算是挺慢的,不过庆幸自己没有三心两意一时学这一时学那。Rails 一直在改动,去掉不好的组件,引进好的设计,所以我用 Rails 的过程也跟着进步了。
@Rei 恩,你的这个是比较踏实的,我之前是看 AgileWeb4 的英文版,但是发现我要用的数据库是 mongodb(是基于 lbs 的应用),后来我就看了 Ruby and MongoDB Web Development- Beginner’s Guide 这边,直接讲的是 mongodb 和 rails 开发的,需要配合着 AgileWeb4 来看,后者能讲比较细致,mvc 内部的原理等。
我高一没读完就辍学在家玩了,对编程没有任何概念,后再接触到 ruby on rails, 抱着 programming ruby 后面的 api 一个劲的背,是在忍不住就看了 Agile Web Development with Rails 中文版,当时的 rails 版本也跟书上的不一样,也是折腾那个 scaffold 折腾半天。到现在也就是对 rails 的程度一般把。别人说不会 ruby 最好不要看 ruby on rails,但我觉得这话不是针对我说的。起码了解 ruby 在 ruby on rails 中是如何工作的。还有 mvc 刚听人说的时候也不懂。我只能按着字面的意思慢慢深入理解。千万不要急于求成。如果你想做,那就做把!学任何一项技能都不是很简单的事,当你慢慢了解之后,你会有很大的成就感,自信心也帮你无形中培养起来了。
我大半年开始自学 Rails,现在说不上很懂,但是写个基本网站的问题不大。 神马 HAML,SASS 等等,我只能说,越用越好用。 还有当年完全不知道什么是 Git,什么是 MVC,什么是 Routes,什么是 Nginx。现在都一起学了。 以前英文烂到一个境界,然后誓死如归,一个一个单词的查,一句一句的看,一步一步跟着做,把《Rails 3 in Action》啃了一大半,突然有种感觉,就是从一个什么都不懂的人,发现了 Web 原来很多东西需要去学。 我之前在大学只写写 JS,那 JSP 老师教的,完全不知道讲什么,后面毕业设计,完全没有 MVC,从数据库查询数据,竟然是写 SQL 的。然后想起以前写的东西,我只想说“次奥!!” 我觉得就如楼上说的,不是 Rails 不适合入门,是我们觉得他很好学,所以希望非常快入门,是我们浮躁了。