当前位置 > 主页 > 行业简报 >


程序员父亲的遗产:编程十大诫

2015-08-06 09:26

  原文系一位程序员之子所述,下为译文。


  我的父亲在和我彻谈编程两个星期之后就去世了。


  那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生。而我的父亲62岁,比大多数我同龄人的父亲都要老。早在60年代,他就已经在田纳西理工大学开始编程了,那个时候他在穿孔卡片上写FORTRAN语言。不得不承认,我的父亲学富五车、学识渊博。


  我和编程第一次亲密接触的时候,它像烟花,瞬间绚烂了我的生命。它给我的感觉既魔幻又强大,在很多方面都比视觉设计要更富有创造性和实践性。


  当我节假日回家的时候,我的父亲分享了他的《编程十诫》。他打印了一份,然后和我一条一条地讨论。这也是我和我父亲之间为数不多的有关于编程的讨论,然后他就突然离开了我。或许也因为这个原因,这个《编程十诫》深深地刻在了我的脑子里,与那天我父亲的音容一起,成为我最美好的回忆,磐石无转移。


  灵感源于1971年首次发行的《The Psychology of Computer Programming》一书,下面是我父亲总结的编程十诫:


  1.理解并承认自己也会犯错误。


  关于此点的关键就是要在发布之前早点发现。不过幸运的是,除非你是在喷射推进实验室开发火箭制导软件,否则很少有错误是致命的。所以,犯了错误之后我们可以从中学习经验教训,然后保持一个积极的心态,继续前行继续进步。


  2.人非圣贤,孰能无过。


  复审代码的目的就是为了发现问题。不过如有遗漏,也不可把责任归咎于某一个人身上去针对他。


  3.人外有人、天外有天。


  三人行必有我师,问问良师益友,会让你受益无穷。要学会倾听他人的意见和建议,特别是当你认为毫无必要时,更要怀着谦虚的态度、广阔的胸怀接受他人的指教。


  4.重构代码要三思。


  “修复代码”与“重构代码”有着本质的区别。在深思熟虑之后,如果还是想追求代码审查时框架风格能有所变化,而非沿着原先的道路予以改进,那么就重构吧。


  5.尊重他人,耐心、礼遇每一个人。


  经常跟开发人员打交道的非技术人士通常会觉得程序员目中无人、脾气又大又臭。不要让你的怒火和缺乏耐性让他们心中的这种形象越来越高大。


  6.世界上唯一不变的就是变化。


  敞开胸襟、面带微笑地去接受变化。把需求中的、平台上的以及工具里的每个变化都当做全新的挑战,而非视为大麻烦来抵制。


  7.真正的权威来自知识,而不是职位。


  知识造就权威,权威带来尊敬——所以,如果你想在计算机领域中中获得他人的尊敬,去学习吧。


  8.为信仰奋斗,然后优雅地接受失败。


  有时候我们的想法会被否决。即使后来发现我们是对的,也不可存有怨恨情绪,或者说类似于“我老早就说过会这样,还不信”的话。不要让团队之间由此产生间隙,不要因为这点小事耿耿于怀、常常抱怨。


  9.不要成为“角落里的程序员”。


  不要成为那种隐藏在办公室不起眼的角落里,在点餐时才冒出来的人。躲在角落的里程序员往往短视、与世隔绝、与大家脱节。他们会像隐形人一样不发表任何意见。所以,要参与到大家的讨论中,成为办公室团体中协调的一员。


  10.可以批判代码,但不能人身攻击


  应该友好地对待每一个程序员,但是在指出问题时可以犀利、一针见血。我们的批评应该尽可能的积极,并且以改进代码为目标,不可无的放矢。同时,还应该考虑当地标准,程序规范以及提高后的性能表现等等。


  至今我还留着这份《编程十诫》。按照上面所述,我成长为了一个优秀的程序员。有时候遇到困境,我会忍不住地想,如果我的父亲还在,他会给我哪些建议?虽然这已经成为了妄想,但是我相信,我亲爱的父亲会为我一直牢记这十条戒律而骄傲的。编辑:江苏万和计算机培训中心


最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入