作者归档:贺 利华

关于贺 利华

正在学习编程,享受编程 热爱文学,闲来读读《读库》 有思想,没理想 正在学会专注

《Programming Ruby》感观

学习Ruby断断续续的快有半年了吧,从离开学校来到公司开始,直到现在,7月份到12月份差不多有半年的时间了。这半年的时间,主要学习了一些Ruby的基础语法和特性,之前没有购买《Programming Ruby》作为参考,只是通过《Book of Ruby》这本小书的翻译,边翻译边学习,从目前读完《Programming Ruby》一大半之后的感觉来看,我个人认为《Book of Ruby》更适合初学者,也更像一些通用并且常见的编程语言入门书籍,而《Programming Ruby》相对来说读来会有一些诘屈聱牙的地方,当然可能跟译者的翻译会有一定的关系,不过我还是非常相信译者的水平的,通篇也没有出什么错误,更何况做第二版了,各位译者在语言上也多多少少会有一些造诣,这样的情况是不大可能出现的。但是从语境的翻译上来看的话,肯定还是存在一定问题的,因为译者需要在出版社规定交稿的时间内将翻译完成,有的自己并不是很拿得准的地方并没有太多的时间去推敲和琢磨,会给读者带来一些困惑,但这肯定不会是什么很严重的问题。

其实最大程度上决定《Programming Ruby》在我心中并不是很时候初学者的原因是,该书的风格并不是“Programming Guide”的指南般结构,而是拽着你就往前跑的那种急先锋式开篇。虽然书中的第一部分是以快速浏览并讨论Ruby基础特性为主题,而且示例相对也都很简单,只需通过简单的阅读代码便可以掌握相关的内容了。但是有些点到为止而意犹未尽的感觉,虽然是介绍Array类,草草地介绍了Array类的一些基础特性,之后便进入其他主题。并不会像一般的编程入门书籍,随之而来的是对该类型API的详细使用介绍,而且在后继的一些章节中,会使用到一些前面并没有介绍过的Array的特性和方法,会让读者有点晕乎。虽然书中后半部分就是一个很好的API索引,但是我个人认为大部分初学者并不会也不能充分利用API文档,从我个人的经历来看,在我学习Java语言初期,都是看教学视频(这里需要感谢一下张孝祥老师)和一些示范程序,然后跟着敲代码,待到能独立写出一些简单的UI程序之后了,才会通过API文档去寻找自己需要的接口,慢慢地也就开始会对API文档有了一定的依赖性,对API的熟悉程度就在日常的编码过程中逐渐加强,对语言本身的犄角旮旯慢慢地熟络。在项目和工程的经历中,积累更多的编程经验之后,就会逐渐形成自身的编程思想和风格,开始思考设计问题和语言本身特性的结合。

《Programming Ruby》给我们带来的是直接的思想上的冲击,从来没有一本编程语言入门书籍如此直接。当然这可能跟Ruby语言本身的风格存在很大的关系,因为在当前的编程大环境中,Ruby确属异类,而且朋克得确实会让我们这些还停留在流行歌曲阶段的大众Coder有一些节拍过去强烈,节奏跳跃太快,歌词有些激进,如果你一直期待着有这么一种语言能一箭穿心地刺痛你,让你有一见钟情的快感的话,那么你成功了,而《Programming Ruby》无疑就是献给“Ruby”美人的最佳礼物。相信你们的邂逅来得会是激情热烈的,你们的火花也能成燎原之势。然而我们这些普普通通的Coder们呢?对目前的编程语言尚不是读得通透,也就将将能应付日常工作,但是又想多学习一门语言,为自己将来能另谋生计时多留条后路,纳闷我们该怎么办呢?

  • 首先我们需要明确的是,Ruby本身就不是作为一门大众语言出现的,原本就是一名出色的黑客个人成功的试验。该语言天然拥有诸多黑客美好的品质和古怪的特性,实用,简单是哲学,而规则和变通则是语言的实际外在表现。Ruby语言对于代码的书写方式都有着非常严格的缩进需求,但是在其循环的书写方式上你能有超过5种选择,为什么会出现这样的状况呢?这是因为一名出色的黑客在阅读了众多美好以及丑陋的代码之后,他能明确地感受到代码的组织方式严重影响到产品的质量和维护成本,而目前的编程语言对于编程方式有着太多的条条框框,不能写出有创造性的代码来,这样Ruby就提供了很多让语言能更具创造性的特性,有很多很聪明的实现在语言中做好了,让Coder能有更多的时间花在业务的处理和优化上,而不是经常跟语言缠绵。
  • 其次,我们要明白Ruby虽然原本是一个黑客们的玩具,但是现在她已经非常的成熟丰满了,在她的周边已经有很多成长起来的绅士了,例如鼎鼎大名的“twitter”。Rails框架的成熟和广泛应用,更是让Ruby从此走向了普通大众,社区的成熟,类库的完善,性能的提高,以及最近新发布的“Ruby语言规范”,都在昭示着我们的女王已经从那高贵的殿堂中走了下来,逐渐成为普通Coder手中的利器,你完全可以尝试着使用她来谋生计,而且在谋生计的同时,还能感受一个全新的语言给你带来的创新的快感和学习的快乐。
  • 最后,学习Ruby最忌讳的就是拿之前的编程思维方式来对号入座,对不起没有这个号码。如果你想能痛快地学习Ruby并且精通她,那么请你放弃你之前的各种成见和陋习,但是请你保留你那些性能良好的算法,在Ruby中你可以使用更为精简的代码来实现他们。

在学习Ruby的过程中,我个人目前碰到最大的难题不是没有参考资料和时间,而是在思维方式上的转变还不够彻底,经常使用Java中的编程方式来思考Ruby中解题答案,所以一般都是无解,最终可耻的失败鸟。推荐两个非常好的Ruby练习题获取的地方,而且提供多个漂亮解决方案的地方哦 。一个是“Ruby Quiz”另一个还是“Ruby Quiz”。在这里,你能见到一些非常有趣的题目,可以用来练手,不过每一个都是重量级哦,更重要的是,我们能看到很多很多优秀的解决方案哦!

惊出一身冷汗

昨天博客莫名其妙地就是上不来,尝试翻墙依然上不了。当时心中一惊,莫非被我们伟大的GFW给墙了,但是细想一下根本没有这个可能啊。自己的博客搜索引擎都不知道隔多长时间才会来爬一下页面,博客的更新并不算频繁,而且内容也并不丰富,互动几乎为零。根本没有什么可能触犯到任何需要GFW对我格外照顾的条例啊!

后面索性不管了,估计是服务器宕机了吧!然后等到晚上看书累了的时候,一上,呵呵,好了!

万幸啊!也是不幸啊!万幸的是本博客并未被墙,不幸的是该博客依然还是自身唱和的独角戏!

要加油哦!sali!

关于番茄树和翻东西

记得是在去年冬天这个时候,我刚来北京实习,那个时候没有多带鞋很想在网上买一双鞋,在一个很偶然的机会,从Google Reader中UCDChina的订阅中看到了一篇文章。这篇文章里头提到了番茄树这个网站,名字让我感觉很舒服,就顺势点了进去。进去一看,体验真的非常好,非常喜欢番茄树的UI设计,整体上非常简洁,功能的展示非常到位,是一个真正想帮来这里购物的用户快速找到他们想要的东西网站,其实我不想用网站来描述番茄树,更应该是一个应用,帮助人们节约时间,节省成本的应用。

前几天番茄树的团队中的蔡浩给我发了几封邮件(应该是代码的问题导致的),告知我番茄树有了新作品了那就是现在的翻东西,其实在此之前我已经在翻东西翻过很多次东西了,当然也是从showeb20的RSS广告中得知的,然后跳过去看的,还是那句话,体验非常的不错。因为自己经常在网上购物,但是又觉得自己去找很费时间,所以总想有一些好的应用能够帮助自己快速找到自己想要的东西,第一次上翻东西虽然没有构成直接消费,但是我收藏了三个链接。虽然以前也用过Blogkid好多好多,可能由于好多好多只是Blogkid一个人维护,而且没有专业的美工吧,我个人认为好多好多的功能性大于其美观性。而番茄树不仅仅是提供一种工具,更有了一种逛街的快感(到处都很漂亮),而又不像淘宝那般信息海量,店铺中的掌柜总是喜欢使用一些闪烁的背景和图片什么的,经常破坏了购物的那种快感,甚至会影响到用户来到店铺对商品的直观感受,进而影响到用户购买的欲望。

从UI和体验上来讲,翻东西让我觉得这个网站做得很成功。今天看了一下他们的团队,年轻有活力,其实我也很想能加入这样的一个团队,对互联网有激情,能做一些事情来改变人们的生活,哪怕是一点点的改变。
有图有真相,看看这群帅小伙吧!相信他们能走得更远,相信番茄树翻东西能走得更远。

写博客需要什么理由?

写博客是一件快乐的事情,我曾经听人这么说过。

写博客是一件很个人的事情,我曾听人这么说过。

写博客是一种与人分享的方式,我曾听人这么说过。

很多很多的人说过写博客到底是什么?为什么这些人都要说写博客是什么呢?和菜头为什么要写“槽边往事”,王小峰为什么老是要在“不许联想”上骂人呢?有什么动力在支撑他们每天更新吗?

也许是有的,我敬爱的五哥就能每天每天地更新,他的博客受关注的程度并不高,“或。者”的读者并不多,读者与博主的交互度也很低,也就是常来的几个人偶尔会对某个话题聊上几句,相互鼓励鼓励。五哥写博客没有什么非常有针对性的话题,写博客纯属个人书写欲望的载体,很多时候会有关于小五的话题出现,我很喜欢这样的文字,温暖得紧。当然五哥作为一个媒体人,文字中多少会有一些媒体人固有的深沉,不知道自己有没有在不知情的情况下读过五哥的报导,但是至少读过五哥在博客中的一些文字,并不是针针见血,但是足够冷静,文字能沉淀下来,成为一种力量,也许现在这股力量还不大,但是我相信五哥的文字是能给人带来一些触动的。五哥偶尔也会写诗,我读不懂诗歌,但是我能读出一些韵律,不是很美,但是恰好。

自己的博客在盗盗的介绍下,找到了胡戈戈开设了自己博客。开通博客之后也曾立志要天天更新,不论写点什么,但是每天都应该写些什么。可是后来才发现,如果你想做一个负责任的博客,想做一个有深度的博客,天天转载肯定没戏,做咨询目前自己还没有这个能力和精力,每天post一些无聊的琐事也并不是自己所愿。作为一个技术人员,自己很想自己的博客能成为一个技术博客,可是目前自己的能力和阅历均十分有限,能拿出来讨论和分享的话题并不多,而又不想跟随网络上众多的快嘴人云亦云,那么哪里是出路呢?我选择了继续自己喜欢的入门编程文档翻译的工作,在提升自己能力的同时,又可能形成一个持续的更新主题,目前自己正在学习Ruby,一边啃《Programming Ruby》这本大部头,一边自己抽时间翻译《Book of Ruby》。当然博主还是一个对文学和艺术有一些感觉的小青年,所以偶尔也会小小地滥情一把,抒发抒发一些小感言之类的。

所以呢,本人窃以为做博客,保持自己的原味,寻找一些主题,Just be yourself and keep your smell。做原味博客,是本博的主题。

我们应该感谢的61款免费软件

今天在JavaEye看到了一篇文章名为《最应该感谢的61个免费软件》,发现自己用的还真是不少:
Firefox
CCleaner
Dropbox
7-Zip
OpenOffice.org
Chrome
Notepad++
Gmail
GIMP
Evernote
ImgBurn
Picasa
Skype
Pidgin
Ubuntu
iTunes
Defraggler
Google Reader
Google Earth
Eclipse IDE
这些是日常工作和生活中都使用到的软件,在列表中的就有20款之多,还有很多并没有在这个列表中的也有很多免费软件正在我的机器上跑着,比如自己平时用来写写Ruby代码的Netbeans IDE,还有伟大的VIM,还有一个类Launchy的Enso软件,等等。
真的要感谢这些美好的软件以及写出这些软件的美好的程序员,是你们让我们的生活更美好,工作更简单,娱乐更丰富。