Ruby 写给 Ruby 新人的公开信 (我的 Ruby 学习经历)

zw963 · 2012年03月20日 · 最后由 HDJ 回复于 2022年03月02日 · 53858 次阅读

写给 Ruby 新人的公开信 (我的 Ruby 学习经历)

分享一点点自己学习 Ruby 的经验吧,主要是给 Ruby 新人。


新人中普遍存在的错误思想:

社区里很多新人 (至少是 Ruby 语言的新人), 貌似都是为了使用 Rails 而捎带的学习 Ruby 的。我觉得这样应该是不妥的。因为我认为:

除非你实在是牛叉的不得了 (即使你再牛叉,如果之前没有接触过类似动态语言, Ruby 绝对是一个不小的挑战), 或者只是玩票性质,耍耍就扔掉,

否则最终的结果是唯一的:

将来的某一天, 你还是要系统的重新学习Ruby.

很多初入 Ruby 的新人,完全认识不到 Ruby 到底有多复杂,甚至可能他们会认为 Ruby 说白了就是为了 Rails, 为了 web 开发而生的 (就像 php, asp 一样).或者认为 Ruby 仅仅是是一个 shell 下系统维护的脚本语言,只是搞搞字符串处理啥的。

这些对于 Ruby 的描述都没错,但是都是不完整的。


(下面谈谈我的学习经历,我这人有些完美主义,我的路线不值得推荐,仅供参考)

首先我决定选择一个称心如意的编辑器。我的选择是 Emacs.

记住,类似于 Ruby 这种解释器类语言,IDE 完全是非必须的。貌似使用 Ruby 的人, 都在使用类似于 Emacs(Textmate, 被称为苹果下的 Emacs), VI 之类的编辑器, 如果以上编辑器你都没有听说过 (我有理由相信,大把的程序员没听过), 是时候 该充充电了。在我看来,选择一个顺手的,完全键盘操控的,高度可定制的, 高效率的编辑器,是一个优秀的程序员,需要做好的第一件事情。你如果打算转到 Ruby, 不要奢望会有 VS 或 Delphi 之类的全功能大块头 IDE 集成开发环境,那不属于 Ruby.

(随着时间的发展,也有了一些不是那么太小的集成开发环境,听说 Rubymine4 不错, 不过据说,很多 VS 开发人员都在使用 Vim, 而几乎所有的编程大师,都在使用 Emacs.)

有关 GNU Emacs 如何使用,这篇文章内没有什么可说的。(因为,专门写一本书都很难说清)


其次我选择了 Linux 平台,最好 64 位。我的选择是 Slackware 64 位。

你当然可以选择 Mac OS X, 但是我必须警告一点:选择 Unix like 系统,对于学习 Ruby 极其重要 (苹果 OS X 和 linux 都是由经典的 Unix 派生出来的,类似系统统称 Unix Like). 事实上稍后你就会了解,正是我这些 (明智的) 选择,让我在稍后学习 Ruby 的过程中, 可以说是相当的轻松。

必须提及的是:在 linux 下,使用什么图形界面并不重要,无论 Gnome 或 KDE, 无所谓. (如果你从 Windows 过渡过来的程序员,需要了解的第一件事情就是:并非一定要有一个 图形界面才叫做软件,事实上 linux 下几乎所有命令,都是简单直观的的命令行风格)

事实上我完全在 XFCE(类似于 Gnome 的一个轻量级的 Windows manager) 下工作,而之所以使用 XFCE, 主要因为它简单直观,而且定制性较强,其实大把时间,除了 Emacs, 我都是泡在 XFCE 自带的 Terminal 下 (图形界面下的命令行窗口), 图形界面只是为了使用 Chrome 上网而已。

说起学习 Linux, 我推荐鸟哥的两本书,也许你会认为学 Ruby 之前要先精通 Linux 下的 CLI, 学习成本太高,但从我的自身经历来说,这绝对是必要的。就算不一定要完全记住或读懂 这两本书内介绍的所有命令,但是至少,通过阅读,你应了解在 Linux 的工作方式,或者说, 你必须首先具备 Linux的世界观, 例如常说的 K.I.S.S.原则。


在以上两条我认为都足够精通以后,我才开始学习 Ruby. 汗~~

事实上真正开始学习 Ruby 之前,光学习 linux, Emacs, 就花了我半年时间. 在开始介绍如何学习 Ruby 之前,有必要先谈下记笔记这个老生常谈的话题。

谈谈记笔记。

开始使用 Emacs 以后,养成了使用 Emacs 的 org-mode 记笔记的习惯,光 Linux 相关的的笔记就 达到了一万五千多行,在这里强烈推荐如果时间允许,而且和我一样 (忘性非常的大),建议 养成记笔记的好习惯,这有以下优点:

  • 记笔记的同时,对于领悟的知识加深了记忆,而且如果能够把书本上的知识通过 自己的方式表达出来,证明你真的理解了它,就算之前的理解是完全错误的,也没关系, 将来也可以通过查阅笔记,来修正自己。

  • 方便将来复习以及工作中知识点的快速查询。

  • 经过除错 (整理,归纳), 在适当的时候,然后可以方便的转化为 html 或 pdf 文档, 分享自己的心得体会。这是很符合 Ruby 的自由精神的。

  • 最后一条,跟 Ruby 有关。学习 Ruby 并且记录笔记,是非常有必要的。(稍后你就知道为什么)


也正是因为以上精心准备,再加上之前的 OP(Delphi) 基础,面向对象的编程思想非常熟悉, 所以,我选择的第一本 Ruby 有关的书是重量级的。是 Ruby 语言的发明者 Matz 编著的Ruby程序语言中文版.

有关Ruby程序语言这本书

有关这本书,网上的评价很多,可以肯定的是:这本书翻译质量相当之高,译者之一就是 在社区被热捧的Ruby元编程的译者,凭心而论,这本书绝对不适合初学者,内容相当松散, 而且前后跨度非常大。如果之前没有 Ruby 使用经验,想顺序从头读到尾并读懂,几乎是不可能的。

这本书我看了一个月,反反复复,这本书几乎翻烂,中间有半个月没看,结果重新拿起来, 完全看不懂了!我甚至看自己半个月前的笔记都糊里糊涂,现在看来,这并非本人很愚笨。

这就是 ruby, 你会真真切切的感觉到那种发自心灵的震撼,对你之前的编程价值观的完全颠覆。

如果一定要用一个词来形容 Ruby 的话,我觉得Ruby是编程语言中的一个破坏性创新. 很明显,对于从传统的编程语言转过来的开发者,产生的震撼是极其巨大的,我觉得任何 打算学 Ruby 的新人,都必须提前有这个思想准备,因为 Ruby 是那样的不同,以至于最好能 单独抽出时间大段的时间来,专心致志的学习 Ruby, 直到入门,掌握 Ruby 的核心价值观, 再放手,否则有很大可能的结果就是:半途而废。


要多思考

看这本书,我认为一定要多思考,事实上,看这本的过程中,我经常仰着头,瞪着天花板, 反复思考,其实 Ruby 很多貌似复杂的概念,很多其实只是很小的花招而已,需要你自己用心 去体会,只要你明白了那个 trick, 很多貌似不关联的概念,一下就完全明白了。

举个例子,以下问题: "Ruby 到底是如何完美的通过类来模拟面向过程的顶层空间呢?" "所谓顶层空间,到底是不是在 Object 类的内部呢?"

从外部表现看:会有如下表现:

在这个特殊的顶层空间'内: - 顶级方法是Object类的私有实例方法 # => (貌似应该在内部) - 顶级self.方法名'是 main 对象的单例方法。 # => (怎么 self 不是 Object?) - 顶级实例变量是 Object 类的实例变量' - 顶级类变量是Object类的类变量'. - 顶级常量是 Object 类的常量' - 顶级局部变量是Object类的局部变量' - 顶级全局变量是 Object 类的`全局变量'

以上第一条和第二条明显冲突,让人很晕,而且也很难记忆. 其实,Ruby 只是用了一个小技巧:

顶层空间就是 Object 类的内部,只不过这个类内定义的所有实例方法,实例变量 它们的 self 值并非 (向正常的类那样) 指向 Object 类自身,而是指向了特殊的对象 main.

这本书涉及的内容,远比书里面表面表现出来的要多得多,很多关键概念,只是点到为止, 需要读者自己去查看 Ri 文档。说实话,很多关键概念,由于译者和读者之间对于某些汉字的 理解不同以及语言组织方式的不同 (不得不惊叹汉字的博大精深), 还是给我带来了不小困扰. 好在可以方便通过 Ri 来确认真实意思。

还有一点比较郁闷的是:这本书中很多术语,让我郁闷很久,什么內插, 单键, 哈哈。

最后,总结下来还是那句老话,有能力绝对看原版。不过如果你没接触过 Ruby, 第一本书, 强烈建议还是老老实实看中文版吧。这里推荐一本入门书籍:我没看过,就凭 Matz 亲自写序, 应该不错: Ruby-programming, 向Ruby之父学程序设计.


有关纸版书的优势

这里再谈一点点有关纸版书的优势。

很显然,你可以方便的前后随便翻阅,随便用笔划做标注,所以我强烈推荐,一般只需看一遍 或非常基础的书,看看电子版尚可。但是如果是需要反复翻看的书,最好看纸版,如果同时能 有电子版,方便关键字搜索,那最好不过了。(中文版电子图书一般扫描版多一些,无法搜索)


再谈记笔记

看完ruby程序语言, 我觉得自己真正的喜欢上了 Ruby. 而且写下了一万多行的 Ruby 学习笔记, 而且真真切切的感觉到自己已经跨入了 Ruby 世界的门槛。事实上,直到现在我才感觉到当初自己 选择记笔记这个决定是多么的英明, 类似Ruby程序语言这中知识点又散又杂,而且前后呼应 的重量级读书,如果不记笔记,我真不知道该如何读下去。


再谈 linux

在学习的过程中,也深切的体会到,之前 Linux 的知识,对于学习 Ruby 发挥了及其重要的作用. 可以说没有之前学习 linux 经历,很难有现在对于 Ruby 这门语现代语言的较强,较全面的理解。

事实上,我认为 linux 真的是一个很适合学习,实验的操作系统,如果你真打算使用 Ruby, 是时候该考虑换到 UNIX 系统下面了。你可以选择苹果的 OS X, 也可以选择 Linux 或正统的 Unix, 但是不要太纠结于所谓的 linux 发行版,随便来一个即可。只要不要太老就行。

另外推荐选择 64 位操作系统,毕竟是未来的主流,不似 Windows, linux 和 OS X 已经完全过渡 到 64 位了,而且还要涉及到 rails 的部署有关的问题。很显然,64 位有非常明显的优势。

切记一点:把你的主要精力关注在命令行方面 (Command Line Interface), 这是你在 Unix like 世界畅游的门票,什么包管理啊,各种 WM 啊。至少对于 Ruby 开发者来说,目前都是浮云. (Ruby 有自己的包管理系统 gem, 另外还有管理 Ruby 版本的 RVM. 这俩真不能缺)


最后谈一下 Emacs 和 Lisp.

我无意于挑起 Emacs 和 VI 的圣战 (Textmate 是公认的 ios 中的 Emacs), 但是 Emacs 真的是一个 很适合编程的编辑器,(VI 貌似更适合 Linux 管理员,不说别的,在所有 UNIX 机器上,具有 相同的操作一致性,以及快速编辑功能,这是 VI 最大的优势), 据我所知,大师级别的人物, 貌似都选择 Emacs Like 编辑器?

事实上 Matz 自己也在使用 Emacs, 而且 Emacs 下面的 Ruby-mode, inf-ruby-mode, 就是他本人 亲自操刀写的。更重要的是:Ruby 从 Lisp 中学到了太多太多东西。据我所知,Matz 在很多场合, 都表达了对于 Lisp 语言的无比推崇,事实上,Ruby 之所以引入了 lambda, 以及闭包的概念, Matz 本人的原话:就是为了向 Lisp 致敬。

  • Ruby 中一切都是对象,Lisp 一些都是列表 (list)
  • Ruby 混入的概念来自于 Lisp.
  • Ruby 中符号的概念,来自于 Lisp, 连定义方式都是原样照搬,:symbol.
  • 连 when 的用法,if, unless 的用法,nil 的含义,都来自于古老的 Lisp.

Matz 自己就是一个 Lisp 绝顶高手,Ruby 远比你表面上看起来更接近于 lisp, 你完全可以把 Ruby 想象成一个 Lisp 的现代面向对象版本。事实上,Matz 最近刚出的那本书里面明明白白的说:

相比较 Python, Perl, Ruby 更接近于 Lisp.(精髓以及精神更多的来自于 Lisp)

所以,我觉得咱社区是不是该加一个 Lisp 版块呢?

我 Lisp 水平相当臭,也没时间学,因为整天用 Emacs 的缘故,仅限于 Emacs 中用到的那一部分, 相对比较熟,但将来计划中,Lisp 是 Ruby 之后是我必学的语言之一。

最后小小秀一下 Emacs 的好处:

跨平台,及高度的可扩展,最大化的满足了追求完全个性化的苛刻需求。

例如:我在社区写这篇文章,只需要在 Chrome 浏览器中双击表单,自动打开一个 Emacs frame, 并且自动开启 markdown-mode, (针对 ruby-china 网址才自动开 markdown 格式支持,其他网站是 org-mode) 编辑完以后,直接 C-x C-c 提交。

这种灵活的体验,又有什么编辑器能替代呢?


附录:补上镐头书的介绍:

除了Ruby编程语言, 另一本重量级且经常被人提起的 Ruby 入门图书是:Programming Ruby. 出于对大卫.托马斯的景仰之情 (错,现在应该是崇拜), 我也一字不漏的细细的品读了镐头书 的前三部分 (除了库引用之外的所有章节), 因为个人都看过,应该具备一定的说服力。

首先必须说明:看镐头书,应该优先看 1.9, 即第三版,如果不愿意读英文,第二版也可以. 虽然是讲程序语言,变动不会太大 (相对于 rails 的书来说...你懂的), 不过我强烈建议, 与其看镐头书第二版,还不如直接看ruby程序语言中文版。

有关镐头书前三部分

有关镐头书和ruby程序语言, 有一点必须提一下:

如果你第一次学习 Ruby, 而英文还可以,强烈推荐先看镐头书前三部分,因为个人认为, Programming Ruby比起ruby程序语言简单许多,更容易上手。

然后,有时间的时候,再再通读ruby程序语言英文版。

换个说法:如果你真正读懂了ruby程序语言, 镐头书前 21 章,以个人感受而言,没有任何 难度可言,所以建议直接跳过,即使第三部分,只需要有选择性的看以下章节:

第 23 章讲解了鸭子类型,ruby程序语言内也有介绍,不过都是一笔带过 (也许是认为鸭子类型 是属于太基础的东西了吧), 如果你还不太明白,可以看一下。

第 24 章讲解了元编程的内容,这才是本书的亮点! 如果你真的读懂了Ruby程序语言, 我认为只需要用心读这一章 (第 24 章) 就可以了. 这章的核心概念,就是在讲解一个东西:self的含义以及在不同上下文环境的变化, 写的是相当精辟,入木三分!! 原先有些不太理解的部分,看过这章之后,有一种恍然大悟 的快感,例如:eigenclass 到底是什么?? 它是如何实现的?看过这一章你自然会知道。

说了这么一堆,你肯定会问:难道这么厚的一本书,我只需要看第 24 章吗?

答案是否!!

镐头书真正的精华部分是:

第四部分 Ruby 库介绍以及第五部分对应的索引

本书第四部分有 Ruby1.92 完整API的讲解,配合第五部分详细到令人发指的索引 (请原谅我找不到合适的形容词来形容,), 才真正让我体会到了这本书的威力。

通过粒度已经控制到第几页第几行的索引,以及种类繁多的前后交叉索引,你可以快速的查询 Ruby 中任何你想要的概念。

举例:

  • 可以一眼看出某个类中实现了那些方法。
  • 可以一眼看出某个方法在多少个类中有不同的实现,

然后再配合 Ruby 自带的 Ri 文档,我认为可以解决 Ruby 中遇到的绝大多数问题。

因此我认为,我认为这本书绝对应该人手一本:

首先翻看镐头书 => 查看 Ri 文档 => 上网查或社区提问,这应该是遇到问题最佳解决办法。

强烈建议大家打开 pdf 编辑器,手动编辑这本书的 pdf 文档:

将本书第四部分之前的所有页面都删除,并将第五部分的索引,移动到书的首页部分, 如果条件允许,将编辑好的 PDF 文档打印编录成书,方便随时查阅。

最后秀一下我打印的镐头书,绝对是这个世界上的绝版:

郁闷,markdown 的排版是我永远的痛...

好长,深刻。。

和 lz 一样,书看了就忘。过一个礼拜就记不得了。。。

非常佩服楼主的学习精神,以及精益求精的态度。

收藏这篇文章,可怜的是我到现在都还没有把 ruby1.9.3 通过 rvm 安装成功,哎

匿名 #6 2012年03月20日

#1 楼 @zw963 markdown-mode

谢谢分享你的学习经历~ :) 很同意你的“需要系统地学习 Ruby”这个观点。

每次看 lz 的头像都有一种莫名的敬仰~

不系统的学 ruby,用 rails,估计很多东西无法理解。无法理解,就无法学好. 记得自己刚学 rails 的时候,觉得 migrate 的语法好怪,还以为是另外一种语言,慢慢的明白了,其实就是 block

也尝试过转 emacs,但发现其组合键在笔记本上面按得蛋疼。在某些时候,还不是 vi 的单键操作快捷。

匿名 #10 2012年03月20日

楼主辛苦了,文章不错,收藏了

我也是喜欢 Ruby 才进入这个社区的,记得一个多星期前,看着简短的 Ruby 入门教程好兴奋的感觉:太优雅了

我现在有个问题想请教:我接触 Ruby 才一个多星期,但现在急需使用 Rails 完成一个网站,我该如何安排学习计划呢?

从 1 月份学到现在, programming ruby 中英文混着看,第一部分没完全看完。记得 70%。 Metaprogramming Ruby 中文版粗看了第一遍,笔记记得比较多,大概也还记得 60%。 Agile.Web.Development.with.Rails 之前看了几次,没看完。这次中文版计划本周看完第一遍。 还有几本书等着看:设计模式 in ruby.

另外还看了几套视频。

下个月准备做个小网站练手。

想起某人的一个月学成 rails 计划,惭愧。

官方 guide 永远是我的最爱 尝试做了一个 guide 的翻译 结果 感觉太丑陋 没有推广 堆在 blog 里面了 等有机会 再捡起来 重写一下

拜读之,这个可以加入 Wiki 了吧。

#10 楼 @ruchee

看 head first rails. 虽然是 2.x, 应该可以让你最快的时间掌握 Rails 的基本思路。 直接看 AWD for rails, 会对 rails 失去兴趣的。

呵呵,我其实是从 GAE 接触 python 接触动态语言的,纠结了挺久 python,ruby 决定学习 ruby. 官方 guide,我也推荐,新手必看

#15 楼 @feitian124 亲,动态语言之前学啥的,按一开始就只会动态语言~~

programming ruby 这个很不错~~个人的入门书籍,我看的第二版,现在用 1.9.2 也没发现有什么问题 = =

最快的时间 Rails 入门 的另一个推荐是 codeschool 的 Rails-For-Zombies 的视频,单单看完视频只要 30 分钟。肯定能看懂。不过要翻墙。

github 上,用 emacs 的人远小于 vim。

#20 楼 @jinleileiking

哈哈~ 又看到你啦。别看你换了好几次头像,我知道你是谁。

动不动叫嚣着想从 Vi 换到 Emacs 的是你,说这酸溜溜的话的也是你。哈哈

#13 楼 @godluo 我呼咱们社区的老大问问。

@huacnlee, 嗨~

我这篇文章可以加入 Wiki 吗? 另外之前把 Wiki 的这篇文章未翻译的部分翻译完了,是不是可以并入 Wiki. 原 Wiki 链接. http://ruby-china.org/wiki/coding-style 翻译链接: http://ruby-china.org/topics/1883

匿名 #24 2012年03月21日

Emacs 那段可以多讲一下“要双击 Chrome 发帖窗口,自动打开一个窗口”,如何实现?或者把您的 Emacs 配置拿出来晒晒,给个 github 链接?

#23 楼 @zw963 你放进去好了,不过请调整一下排版,字母大小写。

ruby 编程语言 确实要难些,我第一次看时,有些地方确实很难掌握。语法的灵活性加剧了语言本身的复杂性,同时加大了代码的维护难度。昨天看一本书,JOEL 写的,有个章节说,我们写代码时要尽量让代码的问题从字面上就暴露出来,有些语言做的很好,比如 C 语言,i=j*5 我们一看就知道 j 是什么类型,但是 C++ 由于语法的灵活度原因,我们就无法一眼判定 j 到底是什么类型。Ruby 确实非常强大,但对团队的要求也很高,需要对各个成员的编码一致性提出很高的要求。尽量避免奇技淫巧。当然,团队成员全部使用 Unix like 这是必须的。

#26 楼 @outman 一个语言提供了极大的灵活性,确不能灵活使用,硬要规范成一样的规格,那是多悲哀的事情。要团队编码一致性,何不用严谨的语言 java. 我觉得 ruby 并不适合一个高手(或架构师)把架构一搭,带一群小弟一起的开干。 更适用的场景应是 powerman+? 用最少的时间发挥最大的作用,内部如何奇如何淫无所谓,约定的接口全用测试用例保证程序正确性。

个人认为 ruby 是一门 geek 语言~ :)

#18 楼 @welsonla 可怜,我按照你说的这个办法,即便是 rvm get head 仍然没办法安装,郁闷

匿名 #30 2012年03月21日

#26 楼 @outman Ruby 学习难度远大于 Python、Lua 之类,它其实就是一个使用了简洁语法的 Perl 实现,然后混入了函数式编程的思想

Ruby 是编程语言里最璀璨的红宝石,名副其实

@ruchee 确实如此,这也是我想说的,ruby 要比你想象的要难于掌握和驾驭。

很中肯的文章

Ruby 的对象模型很大很大程度上参考了 smalltalk,代码块也可以说直接从 smalltalk 中拿来的。

smalltalk 影响了太多的语言~ ,估计 smalltalk 的作者也没料到,smalltalk 的这些后代语言在现在都大放异彩。:> 也不得不佩服 smalltalk 的作者确实眼光长远呢。

很不错,希望在 Ruby China 能有更多的朋友来写一些心得体会,大家多多交流

不错,还是要围观的~

#24 楼 @hbin

在 Chrome 应用商店内,按照 Emacs 关键字搜索,安装 Edit with Emacs, 上维基搜索:edit-server.el 然后在.emacs 中添加如下语句:


(require 'edit-server)
(setq edit-server-default-major-mode 'text-mode)
(when (and (require 'edit-server nil t) (daemonp))
  (edit-server-start))

(add-hook 'edit-server-start-hook
          (lambda ()
            (when (string-match "ruby-china.org" (buffer-name))
              (markdown-mode))
            ))

匿名 #37 2012年03月21日

#36 楼 @zw963 这应用太棒了,Thanks.

#27 楼 @hhuai

这更加突出了测试的重要性,现在我越来越觉得,类似于 Rspec 的 BDD 开发方式,真是的很有趣,很释放个人的想象力,同时可以作为回归测试,用来约束代码的行为 (其实想想和所谓的接口差不多)

只要在满足测试用例的前提下,尽可能的发挥想象力,你可以施展你的一切奇思淫巧,当然一定要遵循重构的基础理论。使代码更健壮。

另外,Ruby 这个语言的副作用我觉得也挺明显的。

你看看 Ruby 标准库那些源码 ... 风格各异 ...

#33 楼 @skandhas

貌似有关重构的那些理论,都是 smalltalk 的那些黑客们搞出来的。

我觉得 smalltalk 那个群体的人都应该是都是 geek 级别的... 整体水平应该是远远超过其他任何预言。包括 Lisp.

#39 楼 @zw963 Lisp 现在学的人挺多的,感谢 PG 的那本心灵鸡汤~

不错,学习了。Emacs 就学过一点。

#40 楼 @unionx

嗨~ 你说的心灵鸡汤是什么意思。lisp 教程吗?

抽空,更新了一下本贴. 并且更新到了 Wiki.

http://ruby-china.org/wiki/tutorial

#43 楼 @zw963 我觉得还是你原先的头像更帅!

#44 楼 @skandhas

哈哈。那照片是八年前结婚时照的。现在已经老啦。

对了,我给你发了两封邮件,你怎么不理我呢?

#45 楼 @zw963 我刚看到邮件,刚给你回了,抱歉啦。 今周一周都在给公司员工培训 C++,嗓子都冒烟了。回家也没怎么收 mail,所以回复迟了,见谅啊 :)

嗯,写得不错,很有参考价值呀!

#42 楼 @zw963 《黑客与画家》,哈哈~

支持楼主的分享精神!

#48 楼 @unionx

有机会一定拜读。

第一本 ruby 书就是『ruby 编程语言』,第一本 javascript 书是『javascript the good part』,每次看完都觉得功力进了一层,可是长期不用,遇到一些简单的功能也是图方便都用 python 实现,现在都快全忘了……

苹果下面有 aquamace,个人感觉入门难度远小于 gnu 的 emacs, emacs 是个伪操作系统,,,

当年被 RGSS 带进来的(笑 最喜欢的还是 Ruby 的元编程和动态,还有,总能够写出很性感的代码 XD vim 至今还没完全上手,emacs 就更别说了。所以还是就着 gedit。

匿名 #55 2012年06月21日

"Textmate 是公认的 ios 中的 Emacs"呵呵,挑点小毛病. 有和 lisp 类似气质的还有 smalltalk, 也是严重的影响 ruby~ 如果有 IDE 能支持智能语法感知,还支持重构,编辑功能弱点倒是次要的了...(不过小菜有点搞不明白,为啥反射能力这么强的脚本语言,实现智能语法感知会这么难...)

我第一次听到“Textmate 是公认的 ios 中的 Emacs”这个说法。

其实我想说的一句是,这要转 ruby 就不要偷懒,这泥马,一个项目 2、3 个人,你还偷懒,让别人怎么玩,呵呵。要偷懒还是不要选这个好了

呵呵呵 看到 吹嘘 emacs 和 vi 的 时候 我觉得下面就没什么可看的了...... 但是 我必须注册 过来蔑视一下 前辈 !!! 互相伤害嘛

楼主明显是技术导向型的,提到需要什么技术后边都得有精通两个字。然而,并不适用于所有人。我现在右手边坐着一个 38 岁的大叔程序员,股票交易平台的技术骨干,需求、开发、运维、运营都得管理和支持,前端、后段代码,什么 php、java、shell script、obj、swift、javascript/css/html,都得看。还得应付日历上画满的会议。一天从早忙到晚,还是抽空用 ruby+rails 写了一个项目,现在已经上线了。他从来没有用过 ruby 和 rails,也请教我一些很平常的 ruby/rails 的问题,但是基本上自己撸完的。代码我看过,写得不咋滴,但是能说明什么呢。

ranger 回复

我现在右手边坐着一个 38 岁的大叔程序员,股票交易平台的技术骨干,需求、开发、运维、运营都得管理和支持,前端、后段代码,什么 php、java、shell script、obj、swift、javascript/css/html,都得看。还得应付日历上画满的会议。一天从早忙到晚,还是抽空用 ruby+rails 写了一个项目,现在已经上线了。他从来没有用过 ruby 和 rails,也请教我一些很平常的 ruby/rails 的问题,但是基本上自己撸完的。代码我看过,写得不咋滴,但是能说明什么呢。

哈,这么老的帖子竟然有人回复。

怎么说呢?我见过你说的类似你提及的类型的程序员,我总结下来就两种:

  • 非常聪明,但对职业没有兴趣,混日子,这种大多数。
  • 非常忙,迫于压力,实在没时间推敲,其实很多都是当 CTO 的。

但结果 (至少某个阶段) 都一样,看他们很累,真的很累,写代码只图快,又懒得写测试, 对于 TDD 完全不感冒,更别提 JDD(Joy Drive Development) 了,他们的工作模式 多数都是:先快后慢, 总体上来看,修 Bug 时间远多过 创造客户价值 的时间。

毫不夸张的说,五年来看,也许我不如你们,十年来看,大概这种类型的,一定不如我。

顺便说一声:我也是大叔级别的。做开发五年了,比你同事还要大上三四岁,但从你对他 的描述来看,我目前不如他。

刚入职了一个 Rails 开发岗,想知道楼主现在还在写 Ruby 程序么?

如果社区能出个 ruby 教程文档最好

需要 登录 后方可回复, 如果你还没有账号请 注册新账号