Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名。

上个月28号,他回到母校耶鲁大学,与计算机系的学生座谈。他发表了一个演讲,回顾自己的人生经历,并总结了一些个人的体会。

我读完他的演讲稿,很受触动,觉得他的人生体会非常具有启示性。这篇演讲非常长,分为三个部分(一、二、三)。下面是其中的一些精彩段落,共有四段。

(更新:此篇演讲的全文收录在我翻译的《软件随想录》一书,人民邮电出版社,2009年出版。)

一、大学里最有用的课程

Joel说,他在大学里上过的最有用的课,是一门他只上了一回、然后就再也没有去过的课。

由于父母都是大学教授,亲戚朋友都是学术界里的,大多有博士学位,所以Joel从小就认定自己也会去读博士,将来搞学术。可是,有一门课程改变了他的想法,使他最终没有去报考研究生院。

这门课程叫做"动态逻辑"(Dynamic Logic)。在第一堂课上,教授证明了一个命题。假定有一个程序"f := not f," f是表示真假的逻辑值,那么结论是程序运行偶数次后,f的值保持不变。整个证明过程非常冗长,要花几个小时讲解,一共有几十步。课后习题则是,证明如果f值保持不变,那么程序必然运行了偶数次。

课后,Joel花了很多时间做题,还去图书馆借来了参考书。但是,他逐渐感到这样做没有意义:用大量琐碎的、容易出错的步骤,去证明一个凭直觉就能认定成立的命题,这不是一个富有实效的工作方法。在Joel看来,计算机更应该用来解决错误,而不是让人们陷入逻辑的陷阱,去产生错误。(I decided that this Dynamic Logic stuff was really not a fruitful way of proving things about actual, interesting computer programs, because you're more likely to make a mistake in the proof than you are to make a mistake in your own intuition.)通过这件事,他认识到,自己不适合做纯思辨性的学术研究。因此,他就退掉了这门课,并且以后也没有选择去上研究生院。

Joel认为,就是这门只上了一次的课,恰恰成为了他在大学中上过的最有用的课,因为它帮助他选择了正确的人生道路。

所以,Joel的第一个结论是:人生中重要的,是关注那些真正的问题(real problem),而不是陷入那些没有意义的琐碎问题(trivial problem)。就像苏格拉底说的,"认识你自己"。

此外,Joel说,还有一门叫做CS 323的课,也很有用。这门课有大量的课后习题,都是关于编程的,平均每星期要花40个小时来做题。

Joel发现他能够做出大部分的题目,更重要的是,他发现自己喜欢做这些题。这样一来,他就明白自己是适合编程的。另一方面,很多其他学生对这门课感到无比头疼,觉得编程既枯燥又痛苦,每周40小时做这种题简直是一种刑罚。这些人于是明白,虽然同样是计算机系的学生,但是他们并不适合编程。这是一件好事,因为这样他们就避免了以后选择错误的职业。否则,让一个不喜欢编程的人,一生都与程序打交道,这是多么悲惨的一件事啊!

二、在Viacom的日子

毕业以后,Joel先在微软公司干了一段日子,然后回到纽约,进入维亚康母公司(Viacom),为这家巨型的娱乐传播公司编写软件,成为IT部门里一个程序员(in-house programmer)。

后来,Joel回忆起来,认为这是他一生中最痛苦的日子,并且劝告计算机系的学生尽可能不要去做"in-house programmer"。

原因有三个。

首先,你永远没有办法正确地编写软件,你不得不用最方便的方法编写软件。因为软件支出非常高昂,所以公司会要求尽可能节省成本,你不可能试用新技术,只能使用现有的最成熟、最保守的技术。

其次,你没有办法将一个项目做到尽善尽美。一旦程序可以正常运行,你的工作也就结束了,可以接下去干公司的下一个项目了。你的作用是解决问题,而不是将软件写得尽可能好。如果你是在一个专业的技术性公司,比如Google或Facebook,情况就完全不一样,你的软件写得越好,公司就会越成功,所以公司会支持你在一个项目上不断做下去。

最后,传统公司IT部门里的程序员,只属于公司内部的维护人员,而不是直接从事核心业务的人员。因此,你永远办法进入管理层。但是,在技术性公司,程序员会变成CEO。

因为这三个原因,Joel觉得in-house programmer不是一个好的职业,不幸的是,80%的程序员属于这一类,年复一年,很多人的生命就是这样被耗干的。(it's frightening because this is what probably 80% of programming jobs are like, and if you're not very, very careful when you graduate, you might find yourself working on in-house software, by accident, and let me tell you, it can drain the life out of you.)

Joel的第二个结论是:选择职业时,不要只考虑职位是否专业对口,应该尽量选择业务方向与你专业相同的公司。

(未完待续)

Joel Spolsky在耶鲁大学的演讲(上)相关推荐

  1. Joel Spolsky在耶鲁大学的演讲(下)

    Joel Spolsky在耶鲁大学的演讲(下) 阮一峰 发表于 2007年12月14日 | 分类:首页 -> 档案 -> IT技术 (接着昨天的内容,继续讲Joel的故事.) 虽然,维亚康 ...

  2. Joel Spolsky在耶鲁大学的演讲

    Joel Spolsky在耶鲁大学的演讲 Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排 ...

  3. Joel Spolsky在耶鲁的演讲无责任导读

    Joel Spolsky在耶鲁的演讲无责任导读 By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) 大嘴Joel最近在耶鲁作了场演讲,照例是诙谐尖锐 ...

  4. Joel在耶鲁大学的演讲

    Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名. 上个月28号,他回到 ...

  5. 历史上最牛的演讲—甲骨文总裁拉里埃里森在耶鲁大学的演讲

    转发 ------------------------------- 这是甲骨文公司总裁Larry Ellison (Oracle CEO) 在耶鲁大学Yale University 给2000级毕业 ...

  6. 甲骨文总裁拉里·埃里森在耶鲁大学的演讲

    拉里·埃里森(Larry Ellison):全球第二大软件公司(Oracle)甲骨文软件公司创始人,目前身价260亿美元,世界第二富豪. 美国ORACLE公司:主要生产数据库产品, 也是主要的网络计算 ...

  7. Oracle CEO在耶鲁大学的演讲:退学吧!- - -

    刺猬@http://blog.csdn.net/littlehedgehog 刺猬注:   这篇文章据传是Oracle 公司CEO Larry. Ellison 耶鲁大学2000届毕业典礼上发表的一篇 ...

  8. 甲骨文公司总裁Larry Ellison在耶鲁大学的演讲

    Larry Ellison:他是世界上最大数据库软件公司甲骨文(Oracle)的老板,他的产品遍布全世界.他是陌生的人,但谁都似乎无法离开他.埃里森在32岁以前还一事无成.读了三个大学,没得到一个学位 ...

  9. 甲骨文总裁拉里埃里森在耶鲁大学的演讲

    耶鲁的毕业生们,我很抱歉---如果你们不喜欢这样的开场白.我想请你们为我做一件 事.请你---好好看一看周围,看一看站在你左边的同学,看一看站在你右边的同学. 请你设想这样的情况:从现在起5年之后,1 ...

最新文章

  1. sqoop2增量导入无法指定last value问题解决方法
  2. GDT、GDTR、LDT、LDTR的学习
  3. mysql构建url给scrapy_Python Scrapy从mysq填充起始url
  4. 数据库mysql_row_MYSQL数据库mysql found_row()使用详解
  5. mysql稠化报表_Oracle使用PARTITION BY 实现数据稠化报表
  6. Codeforces Round #595 (Div. 3) F. Maximum Weight Subset 树形dp
  7. NodeJS常用模块介绍
  8. php中preg_match用户名正则实例
  9. Centos 7 固定ip配置
  10. 厉害了,竟有程序员在GitHub上建了一个新华词典数据库
  11. 《Dreamweaver CS6 完全自学教程》笔记 第四章:创建站点
  12. 人工智能、大数据和云计算之间,它们之间主要有什么关系?
  13. Vue2 带纵向合并的原生表格实现切割侧栏分页
  14. 编译原理:了解编译原理
  15. 数字签名技术及加密算法
  16. 2021-2022学年广州市南武中学七年级第一学期期中考试英语试题
  17. 互联网公司招聘--阿里巴巴--运营专员--2016年笔试题
  18. PMS150G(PADAUK 台湾应广科技)纯I/O口单片机系列
  19. git 撤销commit
  20. 1926163-28-1, Abz-Ala-Phe-Arg-Phe-Ser-Gln-EDDnp

热门文章

  1. HTML+JS+CSS筋斗云导航栏效果
  2. Linux中xtp文件上传不了,xtp_api_java: 中泰证券xtp java api for win\linux\mac https://xtp.zts.com.cn...
  3. 联想笔记本修复计算机还原系统失败,联想电脑重置电脑失败怎么办
  4. 如何实现视觉识别颜色
  5. 小学计算机少年宫活动计划,少年宫活动计划
  6. 自然语言处理从零到入门 BERT
  7. 电子钱包电子存折,区别
  8. 全球与中国螺旋拉刀市场深度研究分析报告
  9. 找到一个不错的学习python的网站
  10. 计算机对人类未来的影响,讲讲人工智能对人类社会的影响及对人类未来的发展...