posts - 101,  comments - 29,  trackbacks - 0

1. 学生时代

程序员以前都是学生,我们从学生时代快结束时讲起。

本科毕业论文答辩时的一个笑话。有女同学翩翩然说,"各位评委老师……"提问和点评的时候,我作为"评委"的第一句话就是,"对不起,这不是选秀节目,我们也不是评委老师。"

坐在下面的那些老师 (与非你莫属不同,不是坐在上面),我们一般称为答辩委员会成员,作为论文答辩(或项目投标、讨论) ,他们与选秀的评委任务不同。答辩委员会成员,一般不太在意轰动笑果什么的,所以常问一些一再重复的问题,对谁都问,有时就被称为套话。

这句套话非常之重要,以至于答辩委员会成员经常要求答辩者跳过综述 (你看了哪些资料,你的工作在学科中的地位,你的工作如何重要等等),而要求直接讲--

"你的工作是什么?"

当年我本科毕业论文的时候也被问过。我卡卡卡卡讲了半天,我用的这个语言有前途啊,我从事的这个领域也有前途啊,布拉布拉。是的,我用的语言是HTML,领域是计算机网络,当时连ASP好像还没出来,可见我选择了多么富有远见的方向。但是,答辩委员会老师忍了半天,就是如今的刘校长问我,"你的工作是什么?"

我然后就卡壳了。我选择的语言很牛,我选择的方向很牛,又怎么样,那些都是别人做的,跟我又有什么关系呢?

我当时说,我看了这么厚的一本书,英文的,全看完了。然后才理解了啥啥。老师们非常和蔼地没理我。

很多年以后,我明白,作为程序员,你学会了什么并不重要,所花费的时间也不算作你的工作。在这个世界上,除了你的父母,没有人再会因为你学会什么而高兴,他们只会因为你用学会的东西做出贡献而高兴。

那么,你的工作,你的贡献是什么。

2. 最近的一个实例

某处前两天网站建设会议,我作为技术人员出席,发言的时候只提了一条与技术有关的建议,其余那些条都是表达网站建设与技术人员关系不大,更多的是美工和广义上的政治。

唯一与技术相关的那条建议是去除网页上的百度统计,原因是加上它以后网页载入速度有明显地下降。

最初我不知道里面有百度统计,还问过ZHUMAO,你们那个点个网页,怎么载入的时候会这么慢。会上,作者同学指出了百度统计的优点:1.能统计出哪个链接点击的人多,有多么多,比例如何;2.能用热力图展示哪个位置被用户点击多少下,点击多的地方就更红一些,点击少的地方就更绿一些。

我为什么认为应该去掉百度统计呢?这个东西固然是好,但是它影响性能,更重要的是,它不是你做的。那个热力图真的形象,漂亮,强有力,但是那是百度的工作啊,不是你的工作。你的网站架在自己的机器上,容易获得 w3c log,方便统计出这些数据。如果你用w3c log 统计呢,这就是你的工作了。而且,你同时也避免了不必要地向第三方泄漏网站访问数据。

你的岗位存在的意义,是选择合适的工具,而不是强有力的工具,去完成任务。我为什么说"你的岗位"的意义,而不说"你的意义"呢?这可以从一道面试HR乐意问的问题看出来。HR可能问,"你对薪酬要求如何啊"。一种合理的回答是,"薪水的多少取决于这个岗位对公司可能的贡献,而不是我的能力。"

克拉克还是超人呢,报社也没有多付他一分钱。

所以,你的岗位期待你选择合适的工具。

3. 什么是不合适的工具

合适的工具是什么,是个太大的话题,以后再聊吧,我们不妨先看看什么是不合适的工具。

特强大的,众所周知牛的,干啥都行的,这些基本是不合适的。另一种不合适的,是本科同学们愿意在答辩的时候说的一句,"我为什么选择JAVA?因为我们就会这个,这课是周老师讲的,他……""就会这个",可不是一个好理由。

同时,也不能逮着啥有名气正流行,就认为它会是好的解决方案。例1,项目课程里一位同学,打算做俄罗斯方块,或者贪吃蛇。她认为,这一定需要用多线程来解决。为什么呢?因为你看,方块在起, 同时,还能响应用户的键盘消息。例2,还是项目课程,另一位同学做扑克牌游戏,觉着需要用access数据库存扑克牌的当前次序和排序什么的。

这些是"过于"强有力,不适合做这种小游戏的工具。用大炮打蚊子不对的原因之一,是需要携带这么沉的东西,并非"没有必要","没有必要"这种措辞给同学们一个错觉,似乎这样也是可以的,只是"并非必要"。不是这样,应该明确指出,用大炮是"错误的"。

红白机 (任天堂)时代,CPU都那个水平,里面也没跑操作系统,多线程之类的是肯定没有的。同时响应这一需求,如果我们还没有学到那些知识的话,我们也可以猜到,一定有更轻量级的工具可以实现。这个轻量级的工具,就是循环,在每次循环里读按键,如果不是命令,那么重画方块,在新的位置,这样方块就动了。

windows操作系统自带纸牌游戏,从windows 95时代,而且那个时候操作系统里面肯定不自带access。存序号排序这种事,用链表或数组都容易解决。

有同学可能会说,那我用这个项目顺便练练多线程或数据库不行么?我们应该用项目练习项目能力,多线程和数据库应该单独练习,或者找适合它们的项目练习。

合适的工具,就是不多不少正适合这个项目的工具。如果它强大到了干啥都行,那么如果不是它的子集刚好适合你,那它绝不是你的那盘菜,因为它一定复杂到难以把握。基于同一原理,穷矮挫不该考虑白富美。

3. 什么是不合适的使用工具的方法

试想,表演结束,你走回舞台,聚光灯下,下面掌声雷动。你几次谢幕,全场观众起立挽留。

答辩委员会不适时地又出现了。它们还会在你以后的人生中数度出现,投标的时候,经理质询你的工作进度啥的。

答辩委员会里某个亮脑门问,"你的工作是什么?"

"啊呀",你说,"这个简单。你们看到这有个钮么,它的名字叫做开关。按一下……"

音乐声响起,你继续解释,"这个设备叫做录音机。"

如果你的工作只是选了这台录音机,你就只是行政人员。行政人员是不需要专业技能的,当他们犯了这方面错误的时候也不会受到指责。

有同学说,我知道录音机的存在,这算不算工作。算呐,当然算。只是你认为这样的工作值多少钱呢?满世界的人都可以告诉你的经理,免费的或几乎免费的。如果你比别人早几年知道录音机,可能会好些,至少好日子可以过到录音机满天飞。

设想另一个场景。还是舞台上,让你再表演的时候,你用自己的手指敲击键盘,那就完全不一样了。当年杉菜同学 (out了?)就凭这一手震住了高富帅他妈。想想吧,如果杉同学从衣兜里掏出个mp3接上外放,那会是什么情景。

亲自表演意味着两件事。1.你受过长时间的训练,这些训练不可替代,除非替代你的人也受到同样或接近长时间的训练;2.你当前真的正在表演,这一工作时间不可替代。

这就是程序员的价值所在。这也是所有工程师的价值所在。我们选择一种工具,然后使用它。

讨论观点的时候,大哥以前有个路子,他转引别人的论点,或者说都在这本书里,你自己回去看吧。如果不是导师指导学生,在面对答辩委员会的时候,这一招是万万不好使的。如果不你能清楚论述别人的那些观点,并阐述它们与你的观点及当前问题的联系,是不行的。仅仅说,"子又曰了",只有在高考作文里才有用。

马利同学前两天转引道,"某位哲学家说过,谁谁谁又说了,在中文里,都可以翻译为 I think。"当年俺们一位外教说过,写作文不要写"I think",因为大家只关心你的观点,而不是你的态度,你think不think,who care。

你能用来说服自己的,是信仰,能用来说服别人的,才是道理。工程师的工作不是让别人跟随自己的信仰,而是为别人创造价值。

如果你借助工具,完成当前项目的目标,你是在使用工具。如果你选择 (或者被选择)了工具,按了两下鼠标任务就完成了,你不是在使用工具,而是成为了工具--而且并非你的上级的工具,而是是工具的工具。

最后再讲个工具的工具的笑话,网上看来的,不一定是真事。说中国有个教授到了韩国。韩国人问了诸多问题,类似你们有钢铁么,有飞机么,有泡菜么,所有问题都集中于质疑我国的生产力和生活水平。中国教授答:中国和韩国一样,什么都有,只是没有美军。

前车之鉴。使用工具的时候,我们该想想,我们自己的价值在哪里,什么是我们的工作。

posted on 2012-07-01 23:55 mixer-a 阅读(1283) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: