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

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

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

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

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

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

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

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

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

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

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

4.重构代码要三思。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

程序员父亲的遗产——编程十诫相关推荐

  1. 程序员父亲的遗产——编程十诫 转载

    我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...

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

    原文系一位程序员之子所述,下为译文. 我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年 ...

  3. 12位中年程序员:代码一敲十年,收入虽高前途摇摆

    该文章为转载如有侵权请联系删除! 程序员群体曾是低调多金的代表,但最近996话题.甲骨文大裁员等事件持续发酵,让这个群体成了大众眼中的"失意中年人". 年轻时的拼命,换来的却是中年 ...

  4. 《我也能做CTO之程序员职业规划》之十六:逆商

    <我也能做CTO之程序员职业规划 >之十六:逆商Adversity Quotient (=AQ) 本文选自<我也能做CTO之程序员职业规划 >一书 锐哥想在工作之余到小蔡学校进 ...

  5. 程序员怎样才能达到编程的最高境界

    程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界.即使是这样的高手,那也都是无知者 ...

  6. 新程序员001:开发者黄金十年

    官宣!<新程序员·开发者黄金十年>正式发布_<程序员>官方BLOG-CSDN博客 开发者黄金十年:讲述新程序员时代 从全球来看,开发者市场拥有三大红利: 一.全民编程,人人都是 ...

  7. 有个程序员父亲是一种什么样的体验?

    作为一名程序员,在享受互联网工厂高薪待遇及各种福报的同时,难免有患得患失的一面. 尤其对于身边从事IT工程师的亲朋好友,想来我们也会有诸多评判了. 今天的文章,汇智妹想带大家一起来看:日常生活中有个程 ...

  8. 优秀的Java程序员应具备哪些编程技术?

    想要成为一名合格的java程序猿,需要学习的知识是有很多的,但是基础知识一定要非常牢固,基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么具体作为一个优秀的Java程序员应具 ...

  9. 鹅厂程序员在家撸码的十大姿势

    大家好,我是帅气的他二哥,好久不见-在家办公已经一周多了,不知各位感觉如何?曾经的你以为在家办公爽歪歪,今天的你迫不及待想回公司上班电脑屏幕太小,椅子不舒服,网络不好,没有下班时间,被娃骑脸输出,被做 ...

最新文章

  1. linux安装ffmpeg
  2. 神策数据《品牌零售业数字化运营的方法论及实践》白皮书重磅发布
  3. Linux C 服务器端这条线怎么走?
  4. 【hdu2089】不要62
  5. 防止ACCESS数据库被下载的9种方法
  6. python pandas stack和unstack函数
  7. 直播 | 循序渐进 - DM8 数据存储管理
  8. 将2019拆分成三个整数的平方和
  9. 提高Eclipse的速度,去掉对于工程的 Validatioan
  10. PostgreSQL自动增量
  11. LayaAir 时间轴动画
  12. HCNA 认证课程笔记(1)
  13. 跨平台显示MMD模型
  14. 路由器的路由选择协议详解
  15. LC-3下汇编实现简易版四子棋的游戏
  16. poj2142 The Balance
  17. 丘比特之箭——知乎多场景内容匹配项目:实现各种不同类型的文本之间的准确匹配 |百万人学AI评选
  18. Java分别使用zxing及qrcode-plugin生成各种样式二维码
  19. jsp传递参数java_JSP页面间传递参数方法介绍
  20. SPA 中前端路由基本原理与实现方式

热门文章

  1. 【转】DICOM中几个判断图像方向的tag
  2. 【转】ABP源码分析七:Setting 以及 Mail
  3. 任务调度开源框架Quartz动态添加、修改和删除定时任务
  4. 第五节:框架前期准备篇之锁机制处理并发
  5. Qt下OpenCv中cvGetWindowHandle的使用
  6. 【 POJ - 2033 】Alphacode (dp,有坑)
  7. 【CodeForces - 569C】Primes or Palindromes? (思维,分析范围,暴力枚举判断)
  8. 详解停车位检测论文:Attentional Graph Neural Network for Parking-slot Detection
  9. PointNet:3D点集分类与分割深度学习模型
  10. Apollo自动驾驶入门课程第④讲 — 感知(上)