我经常被问到这个问题:
我应该从哪儿起步呢?我应该怎么做的?我怎么做才能成为一个更好的Ruby/Rails程序员?等一系列这样的问题。
我希望以上的这些问题有一个简单且正确的答案。有人说“看这本书吧,你会变为一个很棒的开发人员”。不幸的是,事情并不是这么简单。我们是不同的,我们学习方式不同,而且我们大家都来自不同的背景。
所以 我决定向社区提问,而不是告诉你我所认为的最好的学习方式。这里我收到了一份简短的回答:
看看社区里是怎么说的:
你是怎么样学的Ruby 和/或 Rails的?
DHH:我激情地编程来学习Ruby。努力实现某东西,而不是编一个玩具。
David Black:我通过镐头书、实践和阅读/回答ruby-talk上的问题来学习Ruby。
Evan Phoenix:写代码的同时,却研读源代码。
Yehuda Katz:我尝试挑战难事来让我自己学习。
Laurent Sansonetti:我通过这些来学习Ruby:镐头书,阅读ruby-talk上的帖子,还有阅读MRI的源代码。
Ninh Bui:我之前是一个Java爱好者,编写struts + J2EE企业级应用,Hongli在一个周末让我看看Ruby,我就学习了Ruby的基础,然后我通过Google来学习Rails,读书和源代码。
Tim Connor:社区里有想法的博客也许是我最大的帮助。
Lar Van Der Jagt:当然是Ryan Bates的rails学习视频啦。《The Rails Way》 这本书也让我了解得更深。我希望和专家一起工作。
Arun Gupta:The Rails Guides和《应用Rails进行敏捷web开发》
Geoffrey Grosenbach:在我阅读了一些教程后,我开始花几个小时来阅读API文档,即使不了解每一个细,这是一个很好的方式来熟悉已有的知识。
Nate Todd:我一开始是通过一些CakePHP应用来学习MVC的,它让我学习到了最佳实践。
Chris Wanstrath:我通过写Rails程序来和阅读框架的源代码来学习Ruby On Rails。
你有什么建议?
Bob Martens:融入社区,大家懂得比你多 :)
Ismael Celis:理解MVC,许多投入Rails的人都不知道Rails是怎么样的一个设计模式。
@jeromegn:我觉得学习ROR最好的方法就是试着做一些东西。Rails文档和Ruby可以一起学。
@johnbender:理解实例变量为什么可以用在模板中,etc。了解Ruby基础知识,这是我最起码的建议。
@ryandotsmith:寻找github的热门项目(如radiant),从它们那里获得知识。
Sunil Karkera:在我起步的时候理解Rails中的mvc是最重要的事情。
Luke Burton:基础的代码很少的视频来展示一些印象深刻的东西,我觉得这是一个很好的开始。
DHH:动手搞一个真实的项目,这是我推荐的学习包括Ruby/Rails在内的任何一门语言的建议。
Anthony Green:接受这样一个观点:Rails有它自己的方式,你要学习它。什么帮助我最多?社区。
Kent Fenwick:通过做一个真实的项目来学习。找一个你想做的项目,并慢慢地拆掉它。
Trevor Turk:通过写和读代码来学习,同时你要按最教程中做出东西来。
Ryan Bates:Rails就由多种技术构成的(如HTML, CSS, Ruby, OOP, SQL),如果你正在捣鼓Rails,关注你最弱的部分。
Geoffrey Grosenbach:许多例子可以帮助开发者熟悉Rails的思想。Rails from Scratch series at PeepCode
@eifon:在你起步之前理解MVC。
John Yerhot:不要害怕提问,使用支持频道,irc,邮件列表,Rails Bridge等等...
Roy Wright:使用与你所用的书中一致版本的代码。
@brianthecoder:阅读他人的代码。
Ninh Bui:我通过经常与大家讨论来学习,我很肯定地来推荐这个。
Chris Wanstrath:停止向他人求建议,并开始编写一些东西出来。
以上各不相同的答案,但是很有趣。接下来我收集了一些对我和我交流过的人有帮助的资源。
听来没有听说过Ruby或Rails,它是什么?
从观看Rails方面的视频
起步。Rails和用Rails开发的软件是用Ruby写的。如果你是一个新的软件开发者,我向你推荐一个好书叫Learn to program by Chris Pine
。Ruby是一门优雅直观的语言,你可以很快地学起,同时可以长期地学习其中的新的技巧。然而,不要期望你安装好了Rails之后,你就会有一个Drupal
克隆的Ruby版。Rails是一个WEB框架,也就是说,是一个工具来用帮助你快速高效地编写你自己的应用。
提示:Ruby官方网站有很多信息和资源来起来。
我hacke一些PHP/Perl/脚本,但是我不懂MVC或OO开发:
这儿有一个关键来决定你怎么样学习东西。你是一个"How"或"Why"的人吗?一个"How"的人会通过展示的东西来重观它来学习。一个"Why"的人需要知识为什么事情是会是以某一种方式来完成,以便可以应用到其它的挑战上。
好的消息是Raisl中使用许多的约定,如果你掌握了它们,你可以很快的搞定,并且感受到Rails给你带来的回报。这对于"how"的人来说,很好。但是"why"的人得需要有一点耐心了,开始玩玩框架在完全了解了Rails框架。
"How"的人一定得看看Ryan Bates的Rails视频
和Rails Guide
。"Why"的人可以读读《Programming Ruby
》和《The Well-Grounded Rubyist, aka Ruby for Rails 2nd edition
》
你也应该看看Rails wiki
并且贡献可能潜在的信息。
开始阅读Ruby/Rails方面相关的博客文章,订阅Ruby Inside
的rss,加入到你们本地的Ruby群组。
提示:开通一个博客,并且写下你学到的东西和遇到的问题。这可以帮助你和其他遇到同样问题的人们。
我开始编写一个Rails应用,但是我感到我对Raisl框架和Ruby语言了解得有限。
问这个问题很常见,不要放弃。这里有两本好书《The Ruby way
》和《The Rails way
》,《The Ruby way
》应该能满足"why"的人,而《The Rails way》能取悦"how"的人,我推荐两本书都要读读。不要犹豫提问,使用google,Twitter,博客评论,邮件列表。去找到本地的ruby爱好者和他们一起分享交流。找一个你熟悉的主题去演讲,或是在博客里写出来与大家分享。一定
不要害羞或是气馁。坚持,这是值得的(你可以到外面走一会儿,然后再回来继续)
一个很好的提高技术的方法就是去阅读他人的源代码。在github上去转转,看看他人是怎么样解决你遇到过的问题。你可以注
意一下Ruby/Rails方面的培训,Rails Bridge
就是为那些想成为一个更好的Rails开发人员服务的,去看看呗。
提示,我在查找文档和类/方法的时候,经常使用apiDOCK
。
我写了一个Rails应用,我接受并理解了Rails中的约定,我感到写一个Rails应用是很快乐的。
祝贺你,你已经很熟练的掌握了Rails。不要停止学习!你对你的程序写了测试吗?你的测试能的能测试吗?你修改好了代码
后,测度还能通过吗?你使用过插件吗?你看过它的源代码吗?你知道它是怎么样工作的吗?你有没有自己写过插件呢?Ruby
Gem呢?另外,你的Javascripts技术怎么样?CSS?DBA?关注你的弱项。
你已经达到了这个程度,这时候我强烈建议你贡献代码了。对github上的项目提交补丁,甚至是Rails。我们会学到很多的。
提示: 看看 Gregg Pollack’s Scaling Rails series
我写了好几个应用,我还编写了一个插件/Gem呢
很棒,现在你应该是对Ruby和Raisl非常熟悉了。你也许还想研究得更深,你可以关注元编程和写C/FFI的扩展。为什么不去看看Ruby的源代码,看它是怎么样工作的呢?
这时你也可以去学一门新的语言,看其它社区是怎么样做的。看一下其它的框架,看看它的方式方法。玩玩Python
,Java
,Scala
,Clojure
,Object-C
,Ocaml
,Scheme
或者是其它你感兴趣的语言。你不必精通它们,但是你要了解这背后的理论,你对于你的Ruby和Raisl技术也有提高,能扩充你的视野。
提示:在各种会议上准备一些演讲(不要局限于Ruby大会)
我对Ruby和Rails非常了解,我甚至记得Rails和MRI中的代码
这时,我希望你帮助Ruby1.9
,为Ruby的其它实现贡献代码(IronRuby
,JRuby
,MacRuby
,Rubinius
),为Rails3
作贡献。 :)
----------------分割线--------------
如果你看到了这篇文章,你应该也是以上说的某个层次中的一员,留下你的建议,有用的链接和评论吧。
-----------------
原文:How do I learn Ruby & Rails?
分享到:
相关推荐
在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on Rails 培训。学习英语这门世界语言是很重要的,但先通过母语学习往往会更有效果。正因为这样,当看到 ...
### Ruby on Rails 101:深入理解与实践 ...通过这五天的课程,读者不仅能够系统地学习Ruby on Rails的核心概念和技术,还能了解到一些高级主题。无论是初学者还是有一定经验的开发者,都可以从中受益。
描述中的“这是本人精心收集的重要软件”表明这可能是一个包含Rails最新版及其相关工具和库的压缩包,可能是为了方便开发者快速搭建开发环境或者进行学习。 标签中的“on rails最新版”和“ruby”进一步强调了这个...
#### 二、什么是Rails? - **定义**:Rails是一种用于快速开发Web应用程序的开源框架,基于Ruby语言。 - **特点**:Rails遵循“约定优于配置”的原则,简化了Web应用的开发过程,使得开发者能够专注于业务逻辑而非...
Ruby语言以其优雅的语法和面向对象特性著称,而Rails则将这些优点进一步发扬光大,使得Web开发变得更加高效和愉快。在本书中,作者将引领你逐步了解和掌握Rails的核心概念和技术。 首先,你需要了解的是Rails的安装...
在学习Ruby on Rails的过程中,首先你需要理解的是Ruby语言的基础。Ruby是一种动态、面向对象的编程语言,其语法简洁明了,支持多种编程范式,包括面向对象、函数式和命令式。"Ruby语言入门教程v1.0.pdf"可以帮助你...
通过学习和实践压缩包中的"Ruby on Rails入门经典代码",新手不仅可以了解Rails的基本概念,还能掌握实际项目中的应用技巧,逐步成长为一名熟练的Rails开发者。记得不断探索、实践和学习新的Rails知识,以适应不断...
《Ruby on Rails for Dummies》这本书将引导读者从安装Ruby和Rails环境开始,逐步学习如何创建模型、视图和控制器(MVC架构),搭建数据库,使用路由系统,以及实现CRUD(Create, Read, Update, Delete)操作。...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有Ruby ...
总的来说,Ruby on Rails实践涉及的知识点包括但不限于:Ruby语言基础、Rails框架结构、MVC模式、ActiveRecord、路由、测试驱动开发、插件和gem使用、以及部署策略。通过学习和实践,开发者能够快速构建功能丰富的...
学习Ruby on Rails的过程中,你还需要了解Gemfile和Bundler用于管理依赖,以及Git和GitHub用于版本控制和协作。此外,掌握一些前端开发技术,如HTML、CSS、JavaScript和jQuery,将有助于创建更丰富的用户界面。Rails...
本书首先会介绍Ruby语言的基础知识,包括变量、数据类型、控制结构、类和对象等核心概念,因为理解Ruby语言是学习Rails的前提。在深入Ruby语法的同时,也会讲解面向对象编程的基本理念,这对于理解Rails的MVC(Model...
PDF文档通常包含详细的教程、实例代码和可能的练习题,旨在帮助学习者全面了解和掌握Ruby on Rails的核心概念和技术。 在Rails框架中,关键知识点包括: 1. **Ruby基础知识**:首先,理解Ruby语言的基本语法和特性...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的...对于Ruby on Rails初学者和经验丰富的开发者来说,这样一份详尽的API文档都是不可或缺的学习和工作资源。
Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over Configuration)和“Don't Repeat Yourself”(DRY,避免重复)的原则,极大地提高了开发效率。在Rails 4版本中,它...
这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的工作原理和最佳实践,通过实际操作来提升技能。 在Rails中,`sample_app-master`可能是一个示例应用程序的主目录,它包含了完整的项目结构。...
Ruby on Rails,简称Rails,是一种基于Ruby编程语言的开源Web应用程序框架,以其“Convention over Configuration”(约定优于配置)和“Don't Repeat Yourself”(DRY,不要重复自己)的原则著称。Rails使得开发Web...
本资源为"Ruby on Rails Web开发学习实录随书光盘"的源代码,是清华大学出版社出版的相关书籍的配套资料,旨在帮助读者深入理解和实践Rails开发。 1. **Ruby基础知识**:Ruby是一种面向对象的、动态类型的编程语言...