致程序员们:来自一个前辈的忠告

简介: 致诸位程序员:来自Chuck Jazdzewski慈父般的忠告  转自:http://www.ituring.com.cn/article/18838记住这几句话,学无止境。

致诸位程序员:来自Chuck Jazdzewski慈父般的忠告  转自:http://www.ituring.com.cn/article/18838

记住这几句话,学无止境。(Never stop learning.)沟通至关重要。(Communication is critical.)履行承诺,胜过交付。(Under promise, over deliver.)“我错了。”("I was wrong.")要是代码未经测试,那它就无法正常运行。(If it is not tested it doesn't work.)编程不是你的工作,发布产品才是。(Programming isn't your job, shipping is.)

原文发布时间:2006年09月19日上午09点43分

看起来我的儿女们都不适合做程序员。为了不让这份原本为我的新程序员儿子或女儿准备的慈父般的忠告功亏一篑,我打算把这份忠告强加于你。要是你刚踏上成为一名程序员的旅途,这里的建议也许你的父亲告诉过你,如果他也是程序员的话。这是一些我历经艰辛才习得的东西。

不断学习:阅读。参加会议。订阅期刊。上课。无论做什么都是为了让你不断学习,要充分重视学习。了解你可以找到的每种语言。尽你所能去花时间了解任何新的框架、算法、技术、模型、范式。每当往你的工具箱中多添一件工具,都会有助于你更轻松地解决接下来的编程问题。去拜师,即比你强得多的人,然后学会他们可以传授给你的一切。学无止境。

学会沟通:我经常开玩笑说,作为程序员你能学到的最重要的技能是,如何在白板上画长方形。沟通对于程序员的工作可谓至关重要。与买家、客户、用户、同事、老板、副总裁、首席执行官、董事会成员、风险投资人等各种各样的人沟通,这些沟通在你职业生涯中的某些时候会变得很重要。学会如何在公共场合下讲话。学会如何用英文写作。学会如何与他人有效沟通。学会如何心平气和地说服他人,而不要大喊大叫、火冒三丈、抑或惊慌失措。学会如何在演说时不讲行话。这样有助于别人明白你在做什么。学会把事物分解为简单明了的片断。学会借助比喻及象征去沟通。学会沟通。

做到可预测:要弄清楚你能以多快的速度惬意编程。要一直等到你明白了某项任务,然后才能预测出你会用多久完成此任务。要将意想不到的情况计算在内。要为假期及休息时间作安排。学会适应你的预测。我会把某项任务分解成若干子任务,并且每个子任务耗时不超过3天(通常都不足1天),而在此之前我不会认为自己对此问题有了充分认识,因此也就不去预测完成任务会用多久。请遵照这条规则生活,履行承诺,胜过交付。最好是只用10天就交付你承诺需15天完成的工作,而不是用10天才交付你承诺仅需5天的工作。人们依赖于你的预测,而进度安排及计划也会围绕着你的预测去组织。尽你所能把预测做到最好,并确保你可以惬意地完成它们,否则你会被要求去履行那些令你难受的预测。你起初并不善于此道;就要请更有经验的前辈与你一起去弥补、核实你的预测。学着变得更好。做到可预测;因为别人在指望着你。

承认自己的错误:你会犯许多错。你如何处理自己所犯的错正是他人如何评价你的依据。学会如何说“我错了。”要是你低估了自己完成某事所用时长,一旦你清楚了这一点就及时告诉大家。要是你弄坏了某个版本,就修复它。要是你弄出了bug,就搞定它。不要否认错误,不要为错误找借口,不要琢磨如何隐藏错误,不要把错误归咎于别人,为改正错误做点儿实事儿。要为自己的错误负责,否则你重蹈覆辙。

决不让烂代码从你的办公桌上溜走:作为程序员,你的工作就是编写可工作的代码,因此当你不确定代码符合此标准时,决不让代码从你的办公桌上溜走。一旦让问题代码从你的办公桌上溜走,与溜走之前相比,那样做不仅会令你难堪,而且要找出问题也会更昂贵、更困难。学会爱上单元测试。学会爱上代码覆盖率。学会测试自己的代码胜过付钱给别人去测试代码。在你签入代码后又找到了bug,应该为此觉得难为情。要是买家找到了bug,应该觉得特别难为情。不要指望别人为你找出bug,要靠你自己去找出并修复bug。不要期盼代码能正常运行。要测试代码。不要估计代码能正常运行。要测试代码。不要抱有任何侥幸心理。就是要测试代码。如果你尚未测试代码,那么代码就无法正常运行;对此你可能心知肚明。不过,即使你用心测试,有些bug还是会从你眼皮底下溜走。虽然你还会犯错,但是要尽你所能不犯错。

尽管编程很有趣,不过发布产品才是你的工作:编程很有趣。那是探索的喜悦。那是创造的喜悦。那是成就的喜悦。那是学习的喜悦。看到自己亲手完成的作品显示在屏幕上很有趣。有同事为你的代码而惊叹很有趣。有人在公共场合称赞你的产品、邻居使用你的产品、以及在媒体上讨论你的产品很有趣。编程应该十分有趣,若并非如此,就找出导致编程无趣的问题,然后解决之。可是,发布产品并无乐趣可言。我经常说起,发布一款产品感觉不错,就像某人不再打你时的那种感觉。你的工作就是完成产品,修复bug,然后发布。要是需要改bug,就改bug。要是需要写文档,就写文档。要是需要测试代码,就测试代码。所有这一切都是发布产品的一部分。编程不会给你带来报酬,唯有发布产品才会给你带来报酬。把你的活儿干漂亮。

记住这几句话,

  • 学无止境。(Never stop learning.)
  • 沟通至关重要。(Communication is critical.)
  • 履行承诺,胜过交付。(Under promise, over deliver.)
  • “我错了。”("I was wrong.")
  • 要是代码未经测试,那它就无法正常运行。(If it is not tested it doesn't work.)
  • 编程不是你的工作,发布产品才是。(Programming isn't your job, shipping is.)

目录
相关文章
|
8月前
|
Devops 程序员 项目管理
程序员需要考证吗
简述程序员是否需要考证以及衡量程序员的最好方式等
|
程序员 计算机视觉
事关每个程序员的职业规划与履历
今天,甚至过去,大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程,还是已经奋斗多年,以下内容都会对您的职业生涯有所助益。
109 0
|
人工智能 前端开发 JavaScript
没想到真有此书!!!《一个程序员的自我修养》
最近在看程序员的自我修养 (豆瓣),作者陈逸鹤,一本写给程序员的思考书,其实市面上类似题材的书也不少,比如我看过的另外两本内外兼修:程序员的成长之路 (豆瓣)、程序员必读的职业规划书 (豆瓣),我只是后悔自己看的太晚,很多道理明白的太晚,要多看看此类书,给自己寻找点方向感和动力,我也一直在努力践行书中的一些方法和认识,本文是此书的第一部分内容的归纳,希望对你有帮助,感兴趣的朋友可以买来此书详细学习。
|
程序员
程序员 - 箴言集
程序员 - 箴言集
78 0
|
程序员
程序员的五种境界
境界一:混沌态、浆糊状(小白、新兵)    刚刚毕业、初出茅庐,无任何项目经验。 典型台词:“哇塞,薯熟你居然能写出这样这样酷的程序啊”。 此时身为薯熟的你切不可信以为真,因为任何简单的程序对他们来说……其实都是写不出来的。
1089 0
|
架构师 大数据 Java
程序员的职业规划!
在这个节点讲讲我对职业发展路径的理解,另外就是理一理脑子里的一些思路。过段时间再看此文又可能是另一番理解。很多路从后往前看的时候总会有遗憾,要是当初怎么怎么样就会怎么怎么样。导致这样的原因的第一个原因是人在做决策的时候由于各种不全导致了决策本身并不完美,即使当时完美可能后面看来也可能是不完美的,也有可能做出完全错误的决策(PS:如果孤立的讨论决策本身没有完全错误的决策,也可以认为是没有意义的)。
1050 0
|
人工智能 程序员
为什么都瞧不起培训班出来的程序员?
​ 来源:CSDN程序人生 培训机构出来的程序员怎么了? 不怎么,就是容易招偏见! 某培训机构毕业的程序员大雄,和同班同学,一起伪造学历和经验,被HR发现后,全部被开除了。 而我在北京某大型培训机构(以下简称“五洲”,当然这个只是一个代称,事实上没有这个机构名称)工作的15个月,亲眼见证了,一个个高中生甚至初中生,如何经过12个月的培训,“速成”为月薪N万的西二旗码农。
|
程序员
程序员最大的悲哀是什么?
这么一看,好像挺多悲哀的。
2327 0