英文原文:10 best practices from top coders at Google, Pinterest & more

1、慎重选择第 1 门语言

编程语言各有不同,不过区别不大。但用语言的人区别就大了。选择了一门语言你就选择了一个群落。

  – Sam Kaufman,自由职业者,iOS 开发者,10x management

  如果你想快速建立原型(尤其对于希望对产品进行迭代升级的创始人来说),那就用 Ruby 或者 Javascript

  – Erin Parker,Spitfire Athlete 创始人兼首席开发者

2、你不是程序猿!

伟大的开发者能够建构并开发应用。惊艳的开发者能够在关注业务的同时做这件事。业务端的人大都不懂编码,但是肯定能够理解特定功能背后的动机。

别人说什么开发者就做什么,没有去理解为什么要这么做,导致双方均错失了机会,这样的事情太常见了。

  – John Coggeshall,自由职业者,web 开发者,10x Management,PHP 核心贡献者

精通编程是一个崇高的职业目标。一旦实现了这个目标,别忘了考虑一下你自己。不要成为任何公司的奴隶或者在毫无价值的东西上浪费你的时间。

  — Greg Sadetsky, Python 及 Javascript 专家,10x Managemen;协同办公空间 Abri.co 创始人

要想按期完成,得在开始技术工作之前事先进行项目沟通(哪怕这并非先决条件),因为其他人的响应速度千变万化。

  – Andrew Wilcox ,web 应用开发者,Meteor 核心贡献者,10x Management

3、保持敏捷,不断交付

早发布,不断发布,边说唱边发布。

  – Max Nanis ,自由职业者,web 开发者,生物信息学专家,10x Management

不断测试。好的测试包如保单和煤矿里的金丝雀之结合。它能帮助你在生产周期中更早地找出错误,而错误越早发现越容易解决。

  – Jeremy Green,自由职业者,web 开发者,专长 Ruby on Rails,10x Management

快速失败。编码(及生活)时我希望尽早知道什么地方不能工作,而不是放任不管让它增殖扩散。全面放开,快速失败,修补缺陷,不断继续。

  – Stephanie Volftsun,Knotch 联合创始人兼 CTO

为所有代码编写自动测试!尽可能践行测试驱动的开发。

  – Zoran Kacic-Alesic,Industrial Light & Magic 研发主管

4、保持对测试流程的控制

许多项目深受多测试周期之苦。这会拖累项目,导致组织整体出现高级别的问题。

程序员应该专注于对自己的代码进行单元测试及半回归测试。他们比其他任何人更了解代码库,也知道自己会影响到哪些变更。有时此类变更会由于 QA 测试范围有限而缺失,因此导致生产环节出现重大问题。

  – Sanjib Sahoo,tradeMONSTER CTO

要想在力所能及的情况下尽快开发出无缺陷代码,永远永远也不要把写测试放到后面。我们更清楚这一点。要检查一下测试的覆盖率,确保 100% 无死角。

  – Seth Purcell,Signpost 工程副总裁

5、如果你是自由职业者,要学会说不,哪怕面对的是金钱

要对时间和成本有一个合理的评估,然后把它加倍。如果大家都说“这应该很简单,”那就做

  – Ryan Waggoner ,自由职业者,web 及移动应用开发者,10x Management

6、荣誉属于过去—理论是一回事,但实践更重要

改进软件开发质量的最好方式就是去开发软件。许多雄心勃勃的刚入门的工程师花了很多的业务时间去读书,关于最新工具的、关于开放流程的,诸如此类的东西。

很多人都是这么消磨自己的闲暇时间的,但这样很容易就把你给耽搁了。别这样,通过尽可能用脑来强化大脑负责开发软件的那部分。

  –James Cropcho,General Assembly 的 Ruby on Rails 专家及讲师

不断探索。我见过的许多编码者手上都有几个在进行的业务项目。做业务项目迫使你要探索新技术然后学习创建应用的方方面面。你可能需要做前端的 HTML/CSS,后端的 API 集成,数据库优化,做移动 app,还得设置自己的服务器。

  – Andrew Waage,Retention Science CTO 及联合创始人

7、结对评审是你的秘密武器

结对编程非常必要。两个程序员联合开发同一个模块可以相互审查对方的代码。开发团队每周也要召开代码审查会议,让每一个开发者给其他人的代码提供反馈意见,解释如何更好地改进代码。这能够形成一种协作文化,把开发者的自负抛开!

  – Sanjib Sahoo

8、像躲瘟疫一样避免过早优化

只有在问题和解决方案都出现在你面前时才进行重构—过早重构是时间上的巨大浪费。不要投入半年后可能被扔掉的任何东西的完善上。过早优化是罪恶之源。

  –Seth Purcell

不要过早优化!我不断看到工程师在用户还没有到 1000 的时候一再对扩充到 100 万的用户规模担心。

  – Mariya Yao,Xanadu Mobile 创始人兼创意总监,移动开发者及设计师

9、你的代码只写一次,可别人会读它千万遍

你写的代码机器会解析执行,可其他人却需要读你的代码,理解它,摆弄它。你必须明白,你的代码会有未来的观众。代码也是一种书写形式的沟通。

  – Tracy Chou,Pinterest 软件工程师

听起来很奇怪,但是你永远都得替自己的未来着想。问问自己:如果你有健忘症的话,你还能不能理解自己写过的代码?

  – Wai Ching Jessica Lam,Sugarbox 联合创始人兼 CTO

通读你的文档。设计改动很多,有时候代码更新的时候注释不一定会跟进。保持文档的更新,未来的人(包括你自己)理解起来就更容易。我说不清有多少次我看回自己代码时总在想:“我到底在干什么?”只要我写出了好的注释,未来头疼就少很多。

  – Kitt Vanderwater,Google 软件工程师

10、这是一个崇高的职业。把你的技能用到好的地方。

帮助他人是深层次的人类需求。想办法用你的工作来改善人类,你就会有成功的把握。

  – Greg Sadetsky

转载于:https://blog.51cto.com/hongyu0621/1325818

顶级程序员的10条最佳实践相关推荐

  1. 禅道程序员的10条原则--转载--为了不忘

    禅道程序员的10条原则 作者: Christian  来源: 伯乐在线  发布时间: 2012-04-23 22:52  阅读: 2802 次  原文链接   全屏阅读  [收藏]   英文原文:Th ...

  2. Zen程序员的10条规则

    在一个下雨的早晨,我发现自己坐在办公桌上思考高效工作. 在我开始成为自由职业者之前,我曾经花了很多时间从事很多工作,但只能回想起更糟糕的结果. 我从2006年开始进行Zen练习.不久之后,我清楚地想到 ...

  3. gentoo zen_Zen程序员的10条规则

    gentoo zen 在一个下雨的早晨,我发现自己坐在办公桌上思考高效工作. 在我开始成为自由职业者之前,我曾经工作过很多天,但只能回头看看更糟的结果. 我从2006年开始进行Zen练习.不久之后,我 ...

  4. 老程序员的10条中肯建议

    以下十条建议是一个老程序员给出的建议,句句中肯,希望能引起你的思考,而不是笑笑就过去了.觉得在理,不妨随手点赞收藏转发分享,谢谢~ 程序员的二八定律: 程序员的二八定律(这个图是我自己做的) 1.想清 ...

  5. 给程序员的10条建议,句句经典

    web前端教程 用大白话,来讲编程 查看全文 http://www.taodudu.cc/news/show-1159917.html 相关文章: 都说程序员是吃青春饭! 世界上最好用的浏览器Chro ...

  6. 微服务架构10条最佳实践

    转载自公众号:SpringForAll社区 确保你在分布式系统中,努力实现这些微服务的最佳实践,例如监控和REST成熟度. 使用微服务架构可以解决所有的软件架构的问题,对吗?当然,这是不对的.但是,使 ...

  7. 给新程序员的10条建议

    (注:本文曾发表于<程序员>201509A期) 我最开始不是做软件开发的,是一个售后技术支持工程师,你懂的,就是公司卖出的设备坏了,我就到现场去鼓捣两下,换个零件,重启下系统什么的.后来我 ...

  8. 程序员的10条黄金法则,你懂?

    来源:http://www.dajiangtai.com/community/126.do?origin=csdn-geek 下面这10个要点能帮助你成为一个更优秀的程序员. 1.不要重复 这是一条非 ...

  9. 10年老兵给程序员的10条建议!

    2019独角兽企业重金招聘Python工程师标准>>> 程序员虽然薪资待遇好,但是也得付出努力,技术好才行.特别是对于刚刚进入编程工作的新手程序员和正在学习编程的同学来说,一写代码就 ...

最新文章

  1. 清华学长免费分享Java基础核心知识点基础篇(2)
  2. 重启服务才可连接BOOT服务器
  3. 为什么腾讯的产品总能做得很好?
  4. 用Cmake编译Opencv源码,生成动态库
  5. IDA逆向linux内核导入kallsyms
  6. 腾讯物联网操作系统正式开源,最小体积仅1.8 KB
  7. 计算机应用基础专科作业二,电子科大18秋《计算机应用基础(专科)》在线作业2...
  8. Android官方开发文档Training系列课程中文版:管理音频播放之管理音频焦点
  9. mysql data transfer_MySQL主从同步加速 Transfer-- FAQ
  10. 【财经】人人网(校内网) -- 盈利模式
  11. 多任务Python爬虫
  12. esxi 5.5运行linux拯救模式,启用Esxi 5.5 SSH 功能
  13. html按钮突出效果,这10个按钮,把 CSS HOVER 的创意发挥到极致了
  14. C语言的sqrt函数的调用
  15. erdas几何校正_erdas几何校正学习.doc
  16. java手游服务开发_jforgame,一个用java编写的轻量级手游服务端框架
  17. labview如何加载库_LabVIEW如何方便地调用DLL文件
  18. 研究表明:漂亮的配图会让数据/结果看起更可靠
  19. js前端计算两个日期的间隔时间(时间差)
  20. 试题 历届真题 机器人行走(C语言实现)

热门文章

  1. springMVC图片的上传与下载
  2. 替换某个目录下的文本文件内容字符串
  3. 【C语言学习笔记】——1.起始
  4. CodeSmith基础(七)
  5. 神经网络收敛标准与准确率之间的数学关系
  6. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
  7. STM32 基础系列教程 42 - SDMMC+Fatfs
  8. 第六章 6.1 6.2 无限脉冲响应滤波器
  9. 可能是性价比最高的,0-180度乐高舵机解决方案
  10. 一次犹豫不决策略选择