首页 > 代码库 > 三十功名尘与土——资深程序员生涯自白

三十功名尘与土——资深程序员生涯自白

  作者在程序员岗位上工作了三十多年,在这期间他悟出了一些真理,比如,成功来自对失败的总结学习;条条大路通罗马,罗马并不在乎你用什么方式到达。你在生活中积累了哪些经验呢?不妨与我们分享下。

  在程序员岗位上工作了三十多年,我学到了也明白了一些事情,希望在这里跟大家一起分享:

  看不到实物,客户不会知道自己想要什么

  一个功能性原型系统的展示,能够省下无谓低效的赘述。

  只要给予足够的时间,任何安全措施都不安全

  安全是目前系统运维的重大挑战,我们每时每刻都想方设法来保护系统和数据,但是黑客只要成功一次,我们所有努力就极有可能都付诸东流。

  系统被攻破后造成的影响,依赖于事前的准备功夫

  如果能够预先估计防护系统失效的后果,做足准备措施,例如:把关键数据单独分离存储,对数据进行加密等,那么或许可以减少日后上头条的机会。

  良好的安全部署不仅仅是开销,而是战略资产,如果吝啬于此,代价将不菲

  在工作中,我总会听到人们常常抱怨安全运维是多么的复杂和昂贵,因此,总不时看到某些企业为了蝇头小利,以牺牲安全性来节省开支,最后不得不多吞下N倍的苦果。

  复杂问题简单化,远比普通问题复杂化困难得多

  在任何创造性艺术领域,如:编程,设计,这都是个常见现象。我会尽力把代码写得简单易懂,不论是为了自己还是别人;如果你想展示自己的聪明才干,而故意把代码变得复杂, 那么维护会是件可怕的事情。当然从保护知识产权角度来看,这本无可厚非,但或许会失去开源软件的活力与创造力。

  成功来自对失败的总结学习,如果一再容忍失误,失败与成功注定是两条平行线

  当人们对自己的错误习以为常,那么创造出来的可能是毫无价值的产品。我们需要订下目标:只允许自己犯同类型的错,一次。只有严控错误频率,才能不断提高软件开发水平。

  永远不变的是变化

  仅根据今天的情况来制订明天的计划,是不明智的。特别是在编程的世界里,没有亘古不变的死路子。反对技术进步,闭关自守,不接受或尝试新事物,注定是不会成功的。

  终身学习

  我最喜欢的一个说法是:我们背后都跟着一个大滚筒,只要稍微停下,就有可能给绊得人仰马翻,因此,我们必须比它跑得更快,不断前进。当我们自认已掌握一切后,殊不知其实是倒退的开始。

  整个软件业充斥着野驴猜想

  古时候,先知者如果预言失败,会给石头活活砸死;而现在,即使预判失败,专家们都可全身而退,不过去做另外一次预判罢了。因此,野驴猜想盛行,人人都喜欢去预判下论断,一个浮躁的年代。

  条条大路通罗马,罗马并不在乎你用什么方式到达

  客户不会关心你会遇到什么问题,他们只想你的软件能解决他们的问题。系统宕机,硬件损坏,黑客攻击,这些对客户来说毫无趣味可言。如果不幸发生这些囧事,老实交代是较好的做法,特别是被客户清晰知道你将如何解决这些问题前。

  客户才是最好的质量标准

  不论你有多少的测量指标,进行了多少回代码回顾,通过了多少个验收清单,这些其实都是次要的;最关键是我们做到客户所期望的,没有做多余的无用的。记住,客户才是最后把关的QA。

  无记录,不成功

  时至今日,我仍然觉得人们如果不去收集日志,崩溃报告等有用信息,是多么的我伙呆。我一直坚持做的是进行尽可能详细的记录,追踪崩溃情况,阅览复核报告和备注,和其它 任何能迅速定位错误的事情。

  尽管存在更好的办法,但是时间不会停下来等你

  在做评估时,最困难的是取得终止和继续之间的平衡。如果终止,或许会失去找出更好办法的机会,但如果这办法需要耗费过长时间,其实没多大价值。这是个艰难的抉择,但有时候今天做出的快速选择,会比明年才得出的好选择更管用。

  寻找有钱的金主

  曾合作过的一名销售人员的观点让我印象深刻:找到一个不懂技术但有很多钱的人,如同找到了一个大金矿。聪明的人会问太多问题,贫穷的人不能给予你回报。我由衷地为自己成为程序员感到高兴!

  我的工作是对客户撒谎,你的工作是让我看起来是一个好人

  还是前述的那名销售人员,他喜欢口头允诺客户完成不可能的任务,并在我们最终完成任务后,捷足先得我们的奖赏与赞誉。尽管挑战难题会很有成就感,但每次的副作用是无尽的痛苦。我的建议是:尽快寻找另外一个更好的销售!

三十功名尘与土——资深程序员生涯自白