beginners

By Snger on

昨天看到@roamlog的一篇文章,描述了部分计算机领域学习者的心态和轨迹,转载过来用以自醒。


关于《Rails Is Not For Beginners》,我有话要说

阅读此文前,请先阅读我之前写的《Rails Is Not For Beginners》,当然最好也把文章里的那些链接也点一遍,把评论啥的也看一遍。

我非常同意 DHH 的观点,learnability(易学性) 和 usability(可用性) 是个两难的问题,Rails 优先考虑 usability 是完全正确的,至于 learnability 我个人觉得 rails 已经做得很不错了。

拿 Sinatra 和 Rails 比其实是件蛮搞笑的事情,Sinatra 充其量就是一个高级一点的玩具,拿来写个 Demo 有时都可能不够用,稍微复杂一点,就办不到了,或需要付出相当的时间和精力去搞定。

针对国内环境,针对「Rails Is Not For Beginners」这个话题,我倒想展开来说几句。

首先,Rails 对于 Windows 的支持,可以说是比较差的,但因为国内相当部分人都是使用 Windows 操作系统,就这一点就足够说 Rails Is Not For Beginners。

当然了这几年,情况要好一些,有 RailsInstaller 等一些一键安装包,但是还是会碰到很多莫名其妙的问题,还有就是有很多 gem 是天然不支持 windows 的,不管你怎么折腾,你可能还是无法安装成功。

可以说,在国内,有很多对 rails 感兴趣的,就是死在搭建环境上。所以我建议要学 Rails 还是使用 Linux 或 Mac OSX 吧,会少很多很多麻烦,我是在 Mac 下开始折腾 Rails 的,我可以说什么乱七八糟的问题都没碰到,环境搭建就几条命令搞定,分分钟的事情。

补充说明为什么推荐 Mac:

1、Rails 的作者们都是使用的 Mac,所以 Rails 天然对 Mac 最友好,问题也最少,比如 Rails 的母公司 37signals 发布的名叫 pow 的 web 服务器就是 Mac Only 的。

2、Mac OSX 自带 ruby 环境,搭建 Rails 环境可能就一条命令 gem install rails 就搞定了,当然这是比较理想化了,因为为了管理更方便、使用更方便等,会安装更多的东西,比如 RVM。

3、Textmate,这是一个 Mac Only 的文本编辑器,曾经有人因为它而买 Mac,可见它的魅力了,要说明的是 Rails 的作者们一直在用它,简直可以说 rails 就是用它写出来的。而我个人的使用感受也是很好,用它来写 rails 真的很方便,根本不需要什么 IDE,另外其实有很多克隆 Textmate 的编辑器,其中完成度最好的是 Sublime text 2,我强烈推荐,因为它有 Windows 和 Linux 版,当然也有 Mac 版。

4、Mac 电脑及 Mac OSX 本身的优势,这个我就不多说了,网上到处都是相关文章,简单讲就是 Mac OSX 对程序员来说用户体验很友好,有终端(很重要),有各种各样又好看又好用的软件。

有人可能看到这会觉得像软文,在做广告,随便你怎么想吧,谁用谁知道,我接着说。

其次,因为墙的原因,导致很多人搭建环境失败,这个我在之前写的《如何从 0 开始学 ruby on rails (漫步版)》一文中有见,在最后一部分,不再赘述。

最后,也是我最想说的,是 rails 新手们的学习态度、方法和方式的问题(注:以下的内容可能过于主观和情绪化,请勿对号入座)。

我想很多人对 Rails 感兴趣都是因为官方那个 15 分钟写就一个博客程序的宣传广告吧,当然可能看的是中文版 :),这则宣传广告,只是说明了一点,Rails 的开发效率非常高。但在国人眼里,可能加入了「简单」这一层意思,但 Rails 真的没那么简单,想弄好它,要学的东西可多了。

国人是怎么学 Rails 的呢,可能是这样的。

国人看到篇介绍 Rails 的文章,觉得好炫啊,15 分钟呢,立马动手开始搭建环境,而且肯定是看的中文资料,而不是去官方网站。同时加入某个 QQ 群,因为用的是 Windows,同时也没去找相关文章看,就算找了也因为种种原因,搭建环境肯定失败了,然后在 QQ 群里面问,经过无数人的帮助,终于搞定了在 Windows 下搭建环境的问题。

好,环境搭建好了,开始问大家都用什么工具,用哪个 IDE 好,然后群里各抒己见,火爆非常。他们肯定会选 IDE,因为他们说习惯了,不过不幸的事情还是发生了,用 IDE 还是一路艰辛,各种问题,比如环境变量啊,各种报错啊,再次在 QQ 群里问,再次在大家的帮助下把问题解决了。

这下终于可以开始写了,然后照着一篇中文资料想把官方那个 15 分钟写就一个博客程序的例子写出来,再次出现一大堆问题,因为他看的资料过期了,现在已经是 Rails 3.1.3 了,他不小心安装的也是这个,但那中文资料还是 2.x 的甚至 1.x,各种不兼容,然后他还是跑到群里面问,然后还是在大家的帮助下。。。

跌跌撞撞,磕磕碰碰,他们从来不去看官方的资料,因为那是英文的,他们看不懂,他们说自己英语差。他们知道自己英语差,但他们从来不打算去把英语提高,他们中的相当部分人甚至觉得英语对于程序员来说不重要。

他们中相当部分人没有意识说去找本书好好看,侥幸有人告诉他 ruby 看哪本书,rails 看哪本书,他们的第一句话可能是哪有下载,你有吗?传给我。对,他们从来没有版权意识,不喜欢买书,因为贵。不幸的是,因为 rails 的不向下兼容及快速更新步伐,rails 的书永远跟不上,中文书更是落后 1 到 2 年,和他好不容易从网上下载下来效果可以闪瞎眼睛的中文书电子书比,最新的 rails 已经千差万别了,这下再度碰了一鼻子灰。

他们这些人基础很差,英语不行,软件工程、操作系统原理、编译原理、数据库原理、数据结构与算法,通通不懂,但他们还是选择了程序员这条路,一开始,这些你可以不懂,但慢慢的你一定要去补起来,不然这条路会走得很辛苦,但很多人没这个意识。但坦白讲,就这些通通不懂的人有不少在中国的大小公司里还混得不错,真是奇葩,这也算是中国特色了。

他们在网上看到有人说学 rails 不用先学 ruby,但他们不知道,这个话是“有人”对那些有真正的学习能力,有举一反三、融会贯通能力的人说的。他们并不具备这些能力,这下更是磕磕碰碰,跌跌撞撞了。

我不知道为什么,他们在学一个新东西的时候,首先找的不是它的官方网站?我不知道为什么,他们在学一个新东西的时候,不知道看什么书。我不知道为什么,他们为什么连 Google 都不会用。我也不知道为什么,他们遇到问题从来不自己先搜索,而是张口就问。

他们不知道未来在哪里,他们很迷茫,不知道路怎么走。他们不知道学什么,他们不知道怎么学。他们只会问 Java 和 C# 比起来哪个更有前途。

所以,关于「Rails Is Not For Beginners」这个结论,对很多中国人来说是完全正确的,因为他们就是 beginners,他们甚至连 beginners 都不是。他们有更重要的问题需要解决,绝对不是单纯某种语言怎么学,是否适合 beginners 的问题。

这是家庭教育的原因,还是学校教育的原因,或是他们自身的原因,我不知道,也许兼而有之吧。

就说这么多吧,再次声明这是一篇情绪化比较重的文章,请勿对号入座。但如果你对号入座了,因而感觉受到伤害到了,我表示很无奈。

交流区