转自 http://blog.jobbole.com/40931/

读他人的代码 —— Scott Hanselmann

读他人的代码,并从中学习。你会适时得到提升,因为你容易学到其他开发者是如何处理问题的。结对编程是提升自我的最好途径。你从另外一个开发者那里读代码,实时地看到他/她的思维过程。反之亦然。你们可以挑战彼此的观点,共同进步。(推荐阅读:《阅读优秀代码是提高开发人员修为的一种捷径》)

找人读你的代码

在希腊神话里,那喀索斯(Narcissus)爱上他自己在水中的倒影。他无法抗拒不去看它。作为程序员,我们也有这样的症状,在他之后有了个名字叫自恋(Narcissism)。

当你写的代码时,会很容易爱上你的“艺术品”。但是一段代码只有当别人能读懂你干的啥时才算接近完美。

通过经常做代码评审来让他人读你的代码。你每次都能学到一两件事情,尤其在你最后发现那个方法名意义不大时。

写新的代码时先修bug —— Joel Spolsky

我肯定你遇到过这种情况。你发现了一个bug,然后说:“我过会再修,我先把这些特性搞定。”或者你看到一个单元测试没通过,但是你怕麻烦去找出没通过的原因,所以你会把这条测试注释掉抑或规避它。

来帮自己一个忙,养成早期修bug的习惯。bug只会随着时间的推移堆积成山,给你招致更多的技术债务。(推荐阅读:《趣文:用鸡讲解技术债务的形成过程》,更多“技术债务”话题文章。)

学习一门新技术 —— Ryan Farley

你处于快节奏的世界。你的技术如同冰箱里的米饭一样容易变质。作为一个开发者,学习一门新技术有助于你立于刀锋上,并受到欢迎。

大量“市民”正在学习如何写代码。这并不奇怪,因为你现在正拥有这个世界上最高薪的工作。做一个极客再酷不过了。

如果你是iOS开发者,学一些Web框架,或者反过来。这样你知道如何写一个服务器端的简单例子。推荐阅读:《学习新技术的10个建议》

保持简单

在编程里你总是可以找到一个更加精巧的方法去实现一个任务。有的人得意于他们的代码有多么令人惊叹,那样也还OK。但是保持简单,你愿意吗?这关系到前面提到的一点,让别人读你的代码。

如果他们几分钟之内无法理解,那么你是在给自己添乱(坦白地说还有那个必须维护那块代码的人)。

把你的实现发布到博客里 —— Bill Simser

在任何事情上要提高的最好途径就是教(jiāo)授。如果你能使别人理解一个概念,那意味着你掌握它了,而不只是说说。

写一篇博客,解释一下你解决手边的问题的过程。

顺便说一下,这也是一份很好的简历。如果你要找工作,你可以给你潜在的雇主一系列你的博客,这样你便有了优势。

(伯乐在线注:关于写博客,我们已在多篇文章中鼓励大家去写博客。比如这一篇《即便没有读者,你也要写博客》、《开发者拒绝写技术博客的常见理由》)

贡献开源项目 ——Eran Kampf

就是说要么自己做一个开源项目,要么为已有的项目做贡献。这有助于你学会如何跟一群开发者协作。做很多独立的项目会尤其有帮助。

从志趣相投的开发者那里学习可以加分,并且拜托,回报开源社区不是很酷的事情吗?推荐阅读:《非编程天才参与开源项目的14种方式》。

修复问题,不要逃避问题 ——Danny Barbol

有一天我在和朋友谈话。她是一个会计。她说当她还有0.69美分的账合不上时会很沮丧。她花了数个小时做几百万美元的账目,到最后仅仅是因为有人在某个地方把0.96美分换成了0.69美分,结果导致他们合不上账。

作为开发者,我们经常遇到同样的事情。“一行”bug可以毁掉整个演示。有诱惑力的是不去真正的研究为什么它不去做它应该做的,而是把它绕过去。你说:“在这里添上a+5,然后就好了。”

不,找出原因,然后修正,否则绕过去的将会回过给你招来麻烦。

把代码覆盖率提高1%

有时候测试驱动开发显得很枯燥。一定要在写代码前先写好一行行测试代码?是啊,我们要诚实地说确实不总那么好玩。你想要马上开始好玩的部分。

我完全同意测试驱动开发思想,但是有时候你只是刚好有一大堆未测试的代码摆在面前。也许你从他人那里继承了一段糟糕的代码,或者你犯了错误,然后忘了加单元测试。

不要难过,不要悔恨。不管你信不信,许多项目都有相同的问题,不论他们愿不愿意承不承认。你要做的就是把单元测试一个个地加上。

像作家/作者的难产一样,盯着一张白纸看。多产的大牛说克服它的最好办法是在那张白纸(或者如今的电脑屏幕☺)上开始动笔。

不要去想那24,000行未测试的代码。把它们分解成块,然后添加测试代码。今天覆盖400行,明天再覆盖400行。也许永远不会覆盖到所有的24,000行,但是一个月后未测试的代码就少了8000行。

你的基础代码变得更好了。

每小时离开办公桌休息一次

这是本文章里最重要的一条。尽管和编程没有直接关系。至少每个小时站起来舒展身子,你的身体会为此感谢你。

不要马拉松式的编程,几个小时地粘在椅子上直到最后。就算你有那种900美元的人体工程学的椅子也不要。(顺便说一下,如果有第11条,那将会是“弄一把好椅子”)

你应该不想编程挣的所有的钱,没来得及花,就去花在看病上了,是吧?

英文原文:appdesignvault,编译:伯乐在线 – @奇风余谷

译文链接:http://blog.jobbole.com/40931/

【非特殊说明,转载必须在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

成为更优秀开发者的10条途径相关推荐

  1. 成为最差开发者的10条建议

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 这里有个[1024]红包等你来领取 昨天在devto上面 ...

  2. 优秀Java开发者的10条共性

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | klein 来源 | 公众号「锅外的大佬」 1.拥有坚实的基础并理解面向对象原则 ...

  3. 10条途径迅速提高你的生活

    许多问题的造成其实并不是因为我们自己运气差或者别人有意为之.事实上,这些问题往往是由我们自己的坏习惯产生的.这里列出了十个习惯希望能够帮助你摆脱这些自己造成的麻烦又没必要的烦恼: 不要过早下结论.过早 ...

  4. 程序员如何变得更优秀?从业 10 年,我总结了 7 个建议

    作者:ThoughWorks洞见 https://insights.thoughtworks.cn/excellent-developer/ 作为一个从业快10年的程序员,我想给新入行的程序员们一些建 ...

  5. 写给 Python 开发者的 10 条机器学习建议

    作者 |  Pratik Bhavsar 译者 | 明明如月,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 有时候,作为一个数据科学家,我们常常忘记了初心.我们首先是一个开发者,然后才 ...

  6. 写给开发者的 10 条机器学习建议

    作者 |  Pratik Bhavsar 译者 | 明明如月,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 有时候,作为一个数据科学家,我们常常忘记了初心.我们首先是一个开发者,然后才 ...

  7. 苹果平板提示itunes_使Windows版iTunes更快运行的10条提示

    苹果平板提示itunes If you're running iTunes on a Windows machine, you might be frustrated with how slow it ...

  8. 掌握10条设计理念!让同事(客户)更好的了解设计

    看到这篇文章感觉,不错.现在自己总结下,如下图所示: 01. 设计并不只有视觉 用户为何要使用这款应用.这款网页?怎样用?这是设计要去解决的现实问题,网站的加载速度如何?这也是设计要解决的问题. 点击 ...

  9. 10年开发,10条经验:怎样成为一名成功的开源开发者?

    作者 | 席时鉴 大江东去浪淘尽. Linus Torvalds创立的Linux无疑是开源史上最成功的例子之一.从1991年的一个个人项目开始,直到发展为现今的Linux帝国,Linus一直作为一名开 ...

最新文章

  1. 「硅仙人」吉姆 · 凯勒:我在特斯拉是最闲的员工,却要在英特尔管一万人
  2. python学习_19
  3. boost::mp11::mp_invoke_q相关用法的测试程序
  4. md5withrsa java_浏览器运行java插件报错:Algorithm constraints check failed: MD5withRSA
  5. 解决去除“请输入有效值。两个最接近的有效值分别为1和2“提示
  6. B. Code For 1 一个类似于线段树的东西
  7. 利用Visio 2007图形化项目进度和项目跟踪
  8. 为什么优秀的程序员也是优秀的设计师
  9. § 1.3 简 单 的 Java程 序
  10. 拉格朗日对偶(Lagrange duality)
  11. sir模型 python_SIR传染病模型(附Python代码)
  12. Ubuntu跳过开机自检
  13. CreateJS实现打飞机小游戏
  14. Codeforces Round 862 (Div. 2) 题解
  15. 用户体验是什么?如何把用户体验做到极致, 这里有答案
  16. html5 相册翻转效果,HTML5 css3:3D旋转木马效果相册
  17. mysql建图书馆表_创建学校图书馆数据库 BookDB
  18. 关于腾讯TBS中,加载失败问题(64位手机无法加载x5)
  19. 【Cocos2d-x】视线和光线:如何创建 2D 视觉范围效果
  20. 《Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections》论文阅读

热门文章

  1. class es6的构造函数的另一种写法(语法糖)
  2. 2012_11月总结分享
  3. 单口RAM、伪双口RAM、双口RAM与FIFO的区别
  4. IOS 2020 热更新
  5. BA-给排水-供水系统自动控制(转载)
  6. 学习笔记——simulink的建模与仿真流程
  7. 斜率优化DP 与数形结合思想
  8. 常用lr_scheduler总结
  9. hihocoder java_HihoCoder - 1110(示例代码)
  10. YTFS——跨地域的分布式存储(WAN存储)