从歇洛克·福尔摩斯的学识范围看程序员的知识结构
看过《福尔摩斯探案集》的人肯定都知道下面这个列表,它出现在小说的第一部《血字研究》中。华生医生初次接触福尔摩斯,希望从他的学识范围来判断其职业,结果一无所获。其实这份列表给我的结论是:人不能什么都学。当然侦探业务知识的发展远不如IT领域那么迅猛,对于一个软件工程师而言,似乎每天都有新东西在产生,也许你前几天还在学的东西,很快就过时了。不过建立软件工程师自己的知识结构的确是很有必要的。否则今天学学这个,明天瞧瞧那个,什么都会点,什么都不精。不过问题来了,如何确定自己的知识体系呢? 这又是个人的定位问题了。如果以 web 开发为主,是否有必要去学习 C++ 呢?可能不需要,但是否有必要学习 C 呢, 这就不一定了。通常人们为了找工作,是什么技术流行就学习什么,那个行业工资高就研究相关技术,往往简历上要写很多。不过这是很被动的,是为了大环境而改变自己的做法。如果尝试以自己创业的心态来调整自己的知识体系,似乎要容易一些。我管前面一种做法叫做:“JOKA”(Job Oriented Knowledge Architecture),而后面一个叫做“SOKA” (Self Oriented Knowledge Architecture).
老外做研究似乎很专,往往一门技术或者软件都研究的非常透彻,而且一用就是很多年,而在此技术上的成果和造诣也非国内同行所能比拟,而国内的大环境不好,所以搞技术的人也相对浮躁一些,随波逐流就难免了。
记得以前看《商道》这本小说的时候,林尚沃曾经说过这么一句话:“一个做大买卖的人是那种不管下不下雨雨伞照卖木屐照做的人,这是因为,无论刮风还是下雨都只不过是一种自然现象,只热衷于追逐这种表面现象的商人挖空心思地去追赶市场潮流,常常在这种追赶流行的过程中遇到挫折,所谓‘聪明反被聪明误’,所以说··· ”
歇洛克·福尔摩斯的学识范围:
1.文学知识——无。
2.哲学知识——无。
3.天文学知识——无。
4.政治学知识——浅薄。
5.植物学知识——不全面,但对于莨蓿制剂和鸦片
却知之甚详。对毒剂有一般的了解,而对于实用
园艺学却一无所知。
6.地质学知识——偏于实用,但也有限。但他一眼就
能分辨出不同的土质。他在散步回来后,曾把溅在
他的裤子上的泥点给我看,并且能根据泥点的颜
色和坚实程度说明是在伦敦什么地方溅上的。
7.化学知识——精深。
8.解剖学知识——准确,但无系统。
9.惊险文学——很广博,他似乎对近一世纪中发生
的一切恐怖事件都深知底细。
10.提琴拉得很好。
11.善使棍棒,也精于刀剑拳术。
12.关于英国法律方面,他具有充分实用的知识。
blogspot 竟然被解封了
今天正打算把“乐道手记”搬到 my.opera.com 上, 竟然发现 blogspot.com 被解封了。 这倒是省了我搬家的麻烦,只是心里还是很不爽。 我这个人最反对被人束缚,如果不能自由地使用一个软件,我可以选择开源的相应版本;如果Blog站点不令我满意,我可以选择别的 BSP。但是面对强大的 GFW ,我是无能为力的。
关于“乐道”
从最近的“乐道”留言来看,我觉得有必要做一点说明:
1:“乐道”以音乐推荐为主,不提供Mp3下载,也不负责给人查找。
2:音乐推荐以单曲为主,而不是专辑。
3:“乐道”不接受注册,和大多数追求注册人数的 Web 2.0 的网站不一样,所以我命名为 “web 1.1”.采取的模式是“少数DJ推荐音乐,多数听众听歌留言”的模式。我觉得并不是每个人都能当 DJ ,据我这几年通过论坛和博客推荐歌曲的经验来看,大多数人喜欢听歌,而不是写推荐,他们甚至不愿意留言。而且现在的服务器环境也不适合太多人来参与。
4:“乐道”提供的音乐的音质不是太好,是基于现有的带宽。音质和浏览速度(带宽)总是无法调和的矛盾,我选择后者,毕竟“乐道”是以音乐推荐为主的网站。 我觉得让别人知道一首音乐,远比为他提供下载更重要。
5: 音乐以歌为主,而不是以人为主。“乐道”不是音乐博客,也不是追星族聚会的地方
我的音乐随想
这是我以前在 5DBlog 上写的文章,现在转到这里:
我把自己定位为一名音乐爱好者,而不是一个某某歌星的FANS。从2001年建立"神话年代论坛"开始已经推荐了四年歌曲的我也觉得我不是一个持之以恒的人,但是这个事情做了那么长的时间的确让我也觉得奇怪。从没开始学习ABC的时候,我就开始听英文歌曲了,最初只是为了学习英语提前做准备,但是后来这个初衷就有点背离了。听了那么长时间的国外流行音乐,我总觉得有些优美的歌曲,如果你不去推荐,那么别的人可能真的没机会去听到。虽然我也一直有这样一个关于"音乐缘分"的理论,但是还是忍不住要把自己收藏的歌曲拿出来与人分享,甚至自己编写一个 flash 播放器来方便推荐音乐。
编写这个播放器也是为了贯彻我最近才悟出的一个关于网友应该"听帖"的理论——"当网友来看的你的帖子的同时,他应该看到歌词,听到音乐,读到你的推荐文章",在人们使用 56K 小猫的时代,我一直感奇怪的是,为什么那么多推荐的歌曲,没有人看,或者下载,网络速度一直是个问题,你在推荐中说的那么好,谁会相信你的话去下载几MB的 mp3 呢? 如果下载后觉得不好听,他肯定不会再光顾你的帖子。即便是在如今宽带盛行的年代,这种"听帖"的概念还是正确的。所以我将 mp3 压缩为 flash 文件(通常很小,只有几百K)通过播放器动态加载的同时播放出来,这样网友很快就能判断是否喜欢这个歌曲。如果他觉得好听,自然会与推荐者联系。而不是盲目地下载一个很大的文件,发现不好听后而埋怨推荐者。
我一向不喜欢整张专辑的推荐歌曲方式,并认为这是一种非常糟糕甚至是有点恶劣的方式。一个歌手的歌曲并非每首都好听,就算是一张精选CD也并非每首都出色,一下子都推荐出来,只能说明推荐者自己不分良莠,让听者自己去选择并浪费他的带宽资源。另外一个重要的原因是,如果整张专辑都非常不错,一下推荐那么多好听歌曲,很可能让听众迷失方向,通常人在一个特定时间只能接受一两首不错的歌曲。这种"一股脑"的推荐方式也就浪费了大量的好歌。通过日记来推荐歌曲的确是一种不错的方式,通常你明天听歌曲的感觉会不一样,有时候即便一首原来觉得非常普通的歌曲,会因为一个心情,场合而觉得格外动听,这种感觉的确很有趣,将它记录下来是件不错的事情,至少不是无感而发或者为了写日记而写日记。
———————————————————————————————————————
最近老是听一些老歌,我记得我上初中的时候最喜欢听那些六七十年代的美国歌曲,还有一些是电影歌曲,当时能够听到包罗莫里埃乐队改编的歌曲音乐就已经觉得很不错了,至于听到原唱歌曲那已经是多年以后的事情了。现在回头再听这些歌曲,依然发现它们是那么的让你感动,虽然都是流行歌曲,十年一个期限,人们对好歌曲的定义就会有所改变,我却依然钟情于我在 80-90 年代听到的歌曲,那真是一段"好时光",如果你不是在那个期间听到这些歌曲,就算现在回头去听,也未必会真的去喜欢。就象有句老话说的,"有的事情,一旦错过,就不可能再拥有了"。 我在给别人推荐音乐同时也形成了我的一个所谓"缘分"理论:有些音乐,只能是在特定时间,特定地点被特定情绪下的人听到,才会让他或者她喜欢,有些歌曲你不喜欢,也就是说你和它的缘分没到。虽然有些牵强,但是根据我的经验,很多情况下还是正确的。
记得那个时候,我很喜欢 Barbara Streisad 的 "every green", 中文翻译为"常青树", 这是选自她主演的电影"一个明星的诞生"中的歌曲,歌词在现在看来是不能再短了,也很浅显,但是旋律却始终让我感动。那个时候听歌曲,英文还不认识几个单词的情况下,听歌完全是靠她的旋律,所以养成了我以旋律来判断一首歌曲是好还是坏的习惯,到现在我还是认为旋律是歌曲最主要的部分,但是二十年过去了,流行的风向标也转变了,我却非常庆幸我经过了那段好时光,而且捕捉到了那些优美的旋律,我是幸运的,虽然我一直在努力向别人推荐我所认为的好听的歌曲,三年下来,我终于明白一件事情,向别人去推荐你喜欢的东西很多情况下是徒劳的,如果你期待别人也同样喜欢你所喜欢的音乐。个人的经历和感受都是不同的,差别是如此的巨大,有的时候让人觉得有些沮丧。但是我还是要继续推荐下去,可能是三年都在神话年代论坛这么做下来了,已经习以为常了。而且对于我来说,还有一点特殊的意义,这是我到现在为止做事坚持时间最长的一次了(我不是个有常性和耐心的人),我也不知道什么时候会放弃,坚持做一件不算坏的事情,也算是对自己性格的一种锻炼吧, "I want to believe"
那日跟朋友聊天,觉得"音乐推荐"是可以当作一个"平台"来做的,只是大家都没有往这个方面去想,"音乐推荐"的发展空间比现在的"音乐下载"更大,无论是商业的还是非商业的运作。
—————————————————————————————————————
我曾经总结了一下我推荐的歌曲,一共分为三类:
第一类:那种一听你就觉得好听的歌曲,这种歌曲最容易被人接受。从2001年建立"神话年代论坛"开始,我推荐的歌曲大多属于这一类,至今还有很多歌曲没推荐完。
第二类:第一次听的时候,你并不觉得它有多好听,听的次数多了,你才会有感觉,这种歌曲相比第一种类型的歌曲来说并不多。
第三类:可能你听多少次,你也未必对这种歌曲感兴趣,也不会觉的它好听。或许有那么一天,在一个特别场合下,在一个特定的时间内,一个特殊心情的人才能听懂这类歌曲,并且疯狂的喜爱它。参照 Cult movie 来说,我称这种歌曲为 Cult song.
其实我这么分类仅仅是从我个人的感觉来分的,虽然第一类歌曲很受大多数人喜欢,这也是为什么有人会喜欢我的 blog 的原因。但是我始终认为第三种歌曲才是最体现音乐本质的一类歌曲。每首歌曲就象是一个特殊的磁场,并非每个人都能对这个磁场产生"心灵感应"的共鸣,但是一旦产生了共鸣,那一定是最强烈的。
、2001年初开始制作“神话音乐推荐播放器”,很多歌曲都没在“牧羊人之乐”上推荐(本Blog 大概推荐了300首)。今天花了半天的时间写了一个 Ruby 小程序,运行20秒钟将这400多首推荐歌曲制作成为静态网页,这就是你现在看到的http://www.fableage.com“神话音乐网”,这给我搜索曾经推荐的歌曲提供了方便,如果有人希望听到另外丢失的100首推荐歌曲,可以在“神话音乐网”搜索。
【程序思考】简单就是力量
并不是什么人都象我这样喜欢简单的东西,尤其是程序员。程序员喜欢复杂有他的原因,我以前的一个同事跟我说“别老做那些 CRUD (增删改查)的编程,太简单了,没难度,骗不了客户的钱”,还有一些程序员喜欢复杂,是因为复杂的技术少数人掌握,这样的编程才更有价值。不管是什么原因,这些都不是从让自己的工作更轻松的角度来考虑的。以前做 Java 编程我没有选择,因为公司采用它,但是一旦自己做项目,可以决定技术方案,那么就不该为自己设置麻烦。其实能将 CRUD 做的好也并不容易,有人在 MSN 上跟我说,“乐道这么简单的 Blog 也需要用一个月吗,看来 Rails 也没什么”,其实 Rails 虽然初学起来很简单,掌握它却需要一段时间,需要学习很多东西,况且资料相对较少。 Rails 爱好者总是爱强调它的易用性和高效性,刻意忽略这点。
“乐道”的界面很简单,技术上无非是“增删改查”,但是我觉得这种简单的界面有一个极大的有点。现在很多 Web 2.0 站点都太花哨,需要过一段时间才能适应,其实很多功能对用户来说并非必须,增加无非是为了显示网站功能的强大。软件中有这么一个说法: “百分之二十的人用一个软件百分之八十的功能,百分之八十的人用一个软件百分之二十的功能”。所以对于我这样一个人开发整个网站的人来说,花费大量时间用在只有少数人使用的功能上是不合适的。所以“乐道”会继续采用这种简单的界面。我曾经在MSN上起名“简单就是力量”就是一个道理,很多时候,简单比复杂更具有力量,用户使用起来更简单,直接,开发起来也更简单,这是双赢的局面。
从长计议
最近发现“乐道”的访问量有下降的趋势,DJ 们推荐的也越来越少,留言的人也不多,真不知道该如何宣传。看来“乐道”的事情要从长计议了。网友都说在跟朋友推荐“乐道”,但是访问量却下降了,看来靠互相传口碑的方式对推广起不到任何作用。分析日志,发现很多访客是来自各种搜索引擎的搜索,看来在加强对搜索引擎的友好性是推广的关键。“乐道”的发展不是个短期的事情,慢慢做,加强自身,求人不如求己。
程序思考:C++ 和 Flash
最近去海淀图书城逛了逛,买了一本《C++ Primer》影印本。 本来打算买潘爱民翻译的第三版的,翻到背面一看价格,将近130 块(50 块我还会考虑一下),虽然1000多页,但是这要价也太高了,还不如去抢银行呢。又在周围的书店巡视了一遍,“第三极”那里虽然全场七折,但是却找不到这本书,而且四周也没找到什么“五元店”,“一元店”,一气之下,买了本英文版,再打个折,价格还算合理。感觉 C++ 还是应该系统的学习一下,将来没准有机会用上,现在开发桌面程应用序或者手机程序,C++ 都是主流开发语言,现在乘着没上班,好好充电一把。《C++ Primer》可不象书名那样是一本初级读物,不过越读越有意思,真有点爱不释手了,以至于今天都没怎么更新网站程序。不过1000 多页我能否坚持读下来,我可没有信心。我干事情是一贯的虎头蛇尾,希望能坚持下来吧。这是一本真正的好书,对于学习任何编程都是有很大的益处的。"全球销量超过450 000册"真不是盖的,其实现在值得读的书真是太多,如果程序员都能多读书,少上论坛瞎掰,水平一定提高的很快。
为了帮朋友写Flash扩展,我最近也开始看 Flash Extension 方面的资料了,不过这方面的资料实在是不多,在网上搜了一圈,发现连 Adobe 这个的源头都没怎么提供,真是差劲,整天推自己的后台技术,有功夫把 Flash 好好搞搞吧,我现在越来越烦 Adobe 了。其实 Flash 可扩展的东西还是有限的,但是 Flash Extension 如果搞的好,能简化不少重复性工作,提高工作效率,而且开发很简单,技术难度不高,成就感不少。
实现短小精干的内核,提供开放的接口让大家来扩充,我想这是一个成功软件所应该具备的特点吧。