文/Mr. Jamie

  上次聊过工程师的生产力不应该用程序代码来衡量,因为他们的极致生产力,是在少写几行程序,而不是在多写几行程序。今天刚好又看到两篇文章,可以用不同的面向延伸、解释这建事情。

  首先,是一位跑去日本教英文的前任软件工程师,发现了写程序和学语言间的共通性,他说:

这些工程师往往可以轻松的通过面试,但当他们真正开始工作,却让人大失所望。我读了很多关于这个问题的研究,但当我越看它,就越发现这些「残障工程师」,就好像我的英语学生一样。他们有 5,000 字的词汇,书里面的每一个文法都背得滚瓜烂熟,但是就是说不出一句话。

我的理论是,程序其实就跟写作没什么两样。多数的程序概念上一点都不难(跟你想的不一样),我们搞不好的原因往往只是写作能力太差。大部分的工程师根本就不是「流畅」的语言使用者,也没有努力想要让自己变得流畅。他们不去多读读他人的程序,看不懂也不会使用「成语」,更不会「用程序语言来思考」。这些人写出来的程序很糟,因为他们根本就是计算机语言的三岁小孩,却试着要写一本小说。

  所以如果你是软件工程师,多读读别人的程序代码,是很重要的,就跟学习写作一样。

  相反的,如果你的程序想要让人家读懂,那 documentation 是非常重要的。GitHub 工程师 Zach Holman 发表了一篇非常棒的文章,详细解释了为什么你要写文档,怎么写。

  1. Documentation 是个人的 —— 相信我,你以后一定会回来改这些程序,如果要让未来的自己更快进入状况,把事情搞定,今天请你务必把东西写清楚。
  2. Documentation 是清楚的 —— 如果你不把你推出去的程序代码讲清楚,那根本是在帮自己找麻烦,以后一定会出现一堆 bugs、困惑的同事,最后搞得自己更累而已。
  3. Documentation 是可以测试的 —— 因为你必须要把程序的逻辑解释清楚,这让你重新思考自己的写出来的东西是不是符合原始精神,有没有更好的方式。为了不在写文件时陷入无法解释的难关,这也迫使你简化每一个功能,把一个复杂的东西切成好几个功能。
  4. Documentation 是可以比较版本的 —— 好的文件可以让版本间的比较更容易,也让团队合作更有效率。
  5. Documentation 是营销 —— 透过好的文件,可以让下载你软件的人更容易开始使用,这也大大提升了转换率。
  6. Documentation 让你表现更棒 —— 这点 Zach 还在验证,不过他认为建立好的文件让你很酷,这应该对自信会有帮助。

  以上,希望这些观念可以帮助你们更了解工程师、效率和生产力之间的关系,加油!

  (Image via zooboing, CC license)

最棒的程序代码,不是程序代码相关推荐

  1. 程序员为什么要关注代码质量?

    作者 | Srishti Chaudhary 译者 | 苏本如,责编 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 人们都以为编写任何程序 ...

  2. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮、代码补全等...

    Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等-- 语法高亮.代码提示补全. ...

  3. Lua sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux

    sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux [  编程开发,  编辑输入 -  Windows,  Mac,  Linux // 20 ...

  4. 绝了,Gooey:一行代码将 Python 程序转换为图形界面应用

    大家好,今天给大家分享一款非常棒的工具:Gooey,它支持用一行代码将任何Python 2或3控制台程序转换为GUI应用程序. 效果如图所示,下面我来教大家如何使用 交流 本文工具包来自技术群小伙伴分 ...

  5. 代码整理工具_程序员软件:程序员有哪些常用又好用的编码小工具?

    最近,有很多朋友让我帮忙整理一下程序员有哪些常用又好用的编码小工具.今天,小编就整理一下哦,希望大家一起学习,一起进步! 1. Notepad++ Notepad++中文版是一款非常有特色的编辑器,是 ...

  6. java程序员可以只用windos吗_程序员要写多少代码 才能开发一个window操作系统

    开发一个window操作系统需要程序员写多少行代码呢? 微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很 ...

  7. 编写高质量代码改善C#程序的157个建议——建议148:不重复代码

    建议148:不重复代码 如果发现重复的代码,则意味着我们需要整顿一下,在继续前进. 重复的代码让我们的软件行为不一致.举例来说,如果存在两处相同的加密代码.结果在某一天,我们发现加密代码有个小Bug, ...

  8. 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理

    建议86:Parallel中的异常处理 建议85阐述了如何处理Task中的异常.由于Task的Start方法是异步启动的,所以我们需要额外的技术来完成异常处理.Parallel相对来说就要简单很多,因 ...

  9. 程序员在地铁写代码遭疯狂吐槽!网友:装什么装

    01 作为了解程序员这个行业的人来说 程序员的工作真的很累 加班已经成为他们的标签 有的时候网站出事或者需求比较紧急的时候 可能路边也是他们的工作场地 所以这个时候对于程序员们的工作来说 也是不分场合 ...

  10. 站长新手入门:从0开始搭建微信小程序商城,不会代码也能开商城(附带源码)

    2020年全球疫情肆虐下,经济环境持续低迷,虽然国内已逐渐复苏,但线下消费仍然没法短期回到常态,所以今年开始直播电商.线上零售更加火爆.那么如果一个没有编程基础,或者说稍微懂一点技术的老板,要做小程序 ...

最新文章

  1. php微信支付参数动态配置,支付,微信开发_微信支付动态如何获取$jsApiParameters参数,支付,微信开发 - phpStudy...
  2. 管理就16个字!做不到,就走人!
  3. 阿里2500万美元战略投资“神工007”,天猫全面布局建材家居新零售
  4. 从实例入手Shiro并实现HellloWorld
  5. Python实训day09am【Pandas、Series、DataFrame数据帧】
  6. Tasker 正则表达式测试器
  7. 使用flex布局把三个元素分配成两列,第二列垂直布局两个元素
  8. Linux系统服务及其创建详解(service/chkconfig)
  9. 为什么我们程序员难晋升
  10. asp.net post任何数据类型流到网站--当当网API传XML文件
  11. 基于C语言的个人信息管理系统
  12. python爬取大众点评字体_python采集大众点评(字体反爬)
  13. 计算机函数求销售额公式,利用excel函数公式中的LARGE函数和SUM函数提取前五名的销售额...
  14. Linux版本qq可以远程协助吗,QQ的最实用功能:远程协助
  15. JN项目-qq昵称含有表情无法进行第三方登录
  16. 【转载】【常见缺陷分析技术】ODC缺陷分析法
  17. 求解矩阵特征值的QR算法
  18. Nexus5刷Firefox OS 2.0
  19. Eggjs入门系列-基础全面讲解(完结)
  20. 我的CTF之旅(四)

热门文章

  1. adb shell 小米手机_【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中...
  2. 拉伯配资|战略新兴产业火了,高增长低估值股曝光
  3. 有什么事什么话让你一瞬间感到孤独到哭?
  4. MySQL——动态SQL拼接
  5. MTK6572 平台GSENSOR兼容
  6. navicat如何查询已连接的数据库密码信息
  7. 联想液晶显示器暴力拆解
  8. 通过ffmpeg进行录屏直播
  9. 面向接口编程开发打印机墨盒:彩色,黑白纸张类型:A4,B5墨盒和纸张都不是打印机厂商提供的打印机厂商要兼容市场上的墨盒,纸张
  10. 如何向大牛请教问题?