|
Joel Spolsky是一个美国的软件工程师,创业家,知名站长。他的网络日志“Joel谈软件”(Joel on Software)非常有名,读者人数可以排进全世界前100名。他曾回到母校耶鲁大学,与计算机系的学生座谈,并发表了一个演讲,回顾自己的人生经历,总结了一些个人的体会。以下为节选:
第一,大学里最有用的课程
在大学里上过的最有用的课,是一门我只上了一回,然后就再也没有去过的课。由于父母都是大学教授,亲戚朋友都是学术界里的,大多有博士学位。所以,我从小就认定自己也会去读博士,将来搞学术。可是,有一门课程改变了我的想法,使我最终没有去报考研究生院。
这门课程叫做"动态逻辑"。在第一堂课上,教授证明了一个命题。假定有一个程序"f := not f" ,f是表示真假的逻辑值,那么结论是程序运行偶数次后,f的值保持不变。整个证明过程非常冗长,要花几个小时讲解,一共有几十步。课后习题则是,证明如果f值保持不变,那么程序必然运行了偶数次。
课后,我花了很多时间做题,还去图书馆借来了参考书。但是,我逐渐感到这样做没有意义:用大量琐碎的、容易出错的步骤,去证明一个凭直觉就能认定成立的命题,这不是一个富有实效的工作方法。在我看来,计算机更应该用来解决错误,而不是让人们陷入逻辑的陷阱,去产生错误。
通过这件事,我认识到,自己不适合做纯思辨性的学术研究。因此,我就退掉了这门课,并且以后也没有选择去上研究生院。
我认为,就是这门只上了一次的课,恰恰成为了自己在大学中上过的最有用的课,因为它帮助我选择了正确的人生道路。所以,人生中重要的,是关注那些真正的问题,而不是陷入那些没有意义的琐碎问题。就像苏格拉底说的,"认识你自己"。
此外,还有一门叫做CS 323的课,也很有用。这门课有大量的课后习题,都是关于编程的,平均每星期要花40个小时来做题。我发现自己能够做出大部分的题目,更重要的是,我发现自己喜欢做这些题。这样一来,我就明白自己是适合编程的。另一方面,很多其他学生对这门课感到无比头疼,觉得编程既枯燥又痛苦,每周40小时做这种题简直是一种刑罚。这些人于是明白,虽然同样是计算机系的学生,但是他们并不适合编程。这是一件好事,因为这样他们就避免了以后选择错误的职业。否则,让一个不喜欢编程的人,一生都与程序打交道,这是多么悲惨的一件事啊!
第二,在维亚康母公司的日子
毕业以后,我先在微软公司干了一段日子,然后回到纽约,进入维亚康母公司,为这家巨型的娱乐传播公司编写软件,成为IT部门里一个程序员。后来,我经历了一生中最痛苦的日子,并且劝告在座计算机系的学生尽可能不要去做程序员。原因有三个:
首先,你永远没有办法正确地编写软件,你不得不用最方便的方法编写软件。因为软件支出非常高昂,所以公司会要求尽可能节省成本,你不可能试用新技术,只能使用现有的最成熟、最保守的技术。
其次,你没有办法将一个项目做到尽善尽美。一旦程序可以正常运行,你的工作也就结束了,可以接下去干公司的下一个项目了。你的作用是解决问题,而不是将软件写得尽可能好。如果你是在一个专业的技术性公司,比如Google或Facebook,情况就完全不一样,你的软件写得越好,公司就会越成功,所以公司会支持你在一个项目上不断做下去。
最后,传统公司IT部门里的程序员,只属于公司内部的维护人员,而不是直接从事核心业务的人员。因此,你永远办法进入管理层。但是,在技术性公司,程序员会变成首席执行官。因为这三个原因,我觉得程序员不是一个好的职业,不幸的是,80%的程序员属于这一类,年复一年,很多人的生命就是这样被耗干的。因此,选择职业时,不要只考虑职位是否专业对口,应该尽量选择业务方向与你专业相同的公司。
虽然,维亚康母公司口头表示很重视互联网,但是,分配给程序员的工作间,总是很小的屋子,光线黯淡,而且还用搁板分割出小间,供三个人使用。经理们各自的办公室则完全不同,都有大玻璃窗,可以俯视哈德逊河。
在一次公司内部的圣诞晚会上,我见到了负责互联网战略的执行董事。我问他,公司打算怎么使用互联网,后者只是泛泛地说,互联网很重要,这是未来的发展方向。我感到很失望,相信这个执行董事其实对互联网毫无认识,只不过是人云亦云。说到底,这个董事对这一切可能根本无所谓,反正他每年都有200万美元的年薪,保持现状就是最好。对他来说,我就是一个打字员似的"写网页的人",至于做了什么和工作中的付出,他并不关心。所以,我决定辞职了。
第三,管理人员的作用
离开维亚康母以后,我进了一家叫做Juno Online Services的互联网公司,这家公司提供网上免费电子邮件服务。那个时候是90年代中期,hotmail和gmail都还没有成立。
作为程序员,我在这里工作得很愉快,但是公司本身的经营却不成功。虽然是一家互联网公司,但是,Juno Online Services完全采用传统的"从上至下"的管理方式,就是领导想出来一个主意,然后命令程序员负责实现,结果就是对技术细节一无所知的人,决定了一切。
这同硅谷的方式完全不同,在那里,管理人员只负责创造一个良好的工作环境,然后让真正的聪明人把东西做出来。硅谷公司内部的运作更像大学里的学术讨论会,会议主席的作用只是主持会议而已。因此,公司管理层的作用就是搬动家具、清理出空间,让有才华的研究人员做出一流产品。
Juno Online Services经营得不成功,以及对员工才华的不尊重,使得我在2000年下定决心,不再为别人打工了,开始创业。
第四,表达能力的重要性
在创业之初,我并不知道该去做什么。我看到许多很蠢的人,拿着很蠢的商业计划,开办互联网公司。我想,这样的公司都能开出来,那么我也能开公司,只要我比他们少蠢10%就可以了,我要按照我的想法来管理,对每一个程序员都给予最大的尊重,那样就有机会做出高质量的产品。我们不关心风险资本家怎么说,也没有高高在上的领导,我们只关心客户的感受,用软件解决客户的问题,从而获得报酬,生存下去。在这种想法的鼓励下,我创办了Fog Creek软件公司。
从创业之初,我就开始将自己的想法和遇到的事情,写成文章,发表在互联网上。当时还没有Blog这种东西,但是他其实已经在写了。我慢慢发现,文章真的有人看,并且读者越来越多,其中很多人最终都接受了自己的想法。实际上,我写的很多东西都不是原创性的,其中还时不时包括一些笑话,但是读者不在乎,"Joel谈软件"成了一个热门网站,平均每篇文章都有几十万、甚至上百万的读者。
这对我的创业帮助极大,Fog Creek本来是一家无名的小软件公司,但是由于很多人读我的文章,因此他们也了解并且相信我的公司。这使得Fog Creek从创业的第一年起就是盈利的,并且每年都在发展。
事实上,我创业的成功,部分归功于在大学里受过的写作训练,那时有一个教授每周都要布置写论文,并且对平庸的文章恨之入骨,不给学分。这使得我学会了将复杂的话题说得清晰易懂,并且引人入胜。因此,普通工作人员和领袖之间的差别,就是有没有良好的表达能力。
|