如何成为一名优秀的程序员?

开发 前端
编程虽是复杂活,但成就优秀程序员的很多因素和我们在学校中最早学到的相差无几。

1. 分享所有

尽可能使用开源,并且当你有能力的时候,要对其有所贡献。聚全社会之智慧,胜过某些大公司之短视。

2. 公平竞争

尝试其他技术、框架、方法和观点。不要总以为只有你的选择才是可行的。别的选择也有可能比你的要强得多。要以开放的心态,来检验其他人的选择。

3. 不要攻击他人

像第2条所说的,不要仅仅因为别人恰巧使用.Net、Java或PHP就去攻击他们(我在这方面有一次教训)。有时,它们或许要比你所认为的更有效。只要别人不是一无是处,你就可以从他们那里学到很多东西。

4. 自我完善

尽量发布可以运行的代码。不要指望QA能给你找出所有的程序错误。要经常并且全面深入地测试你的代码。

5. 不要拿不属于自己的东西

使用软件要遵守许可,不要偷了之后又装无辜。

6. 伤害他人要道歉

代码审查是一个不错但很少用的想法。指导经验比你少的程序员,有助于整个团队。不要公开批评他人。指导并不是贬低别人。别人有时候会接受,有时候不接受。其实,有时候你可能会从自认为水平不如你的人身上学到很多东西。

7. 未雨绸缪

动手写代码之前要尽量理解要解决的问题。要做原型、从网上查找实例、跟其他也做这个的人讨论或者只是练练手而已。构建你从未做过或用过的东西是个坏习惯。如果开始就有思路,结果可能会更好。

8. 拿得起放得下

不要害怕替换、重写、重构或者放弃垃圾代码。有时候,如果碰到可留可不留的代码,直接扔掉才是上策。永远不要爱上你的代码。

9. 饼干和牛奶是好东西

没错,程序员应该有好的工作环境。如果想让编程变得轻松,那么一把好椅子、一个安静的地方、一台配置高的电脑以及各种工具是必需的。经理应该充当尽力保护程序员,防止琐事干扰他们。作为一名程序员,不要接受一种被奴役的生活。如果老板对你不好,换个好东家。

10. 平衡生活——学习、思考、绘画、唱歌、跳舞、工作、玩耍,每样都会一点

我喜欢Google的方式,在那里,你有20%的时间用来思考任何你认为值得做的事情。老板应该提供休息室、娱乐室或者一些能让人放松清醒的环境。

编程是一项艰苦的脑力劳动活;有时你的大脑确实需要休息一下。拒绝例行公事地每周工作80小时,否则你的工作质量将大打折扣,花费大量时间取得的成果将前功尽弃。另外,如何释放工作生活压力,可以参考伯乐在线的这篇文章:《3步释放工作和生活压力》。

11. 劳逸结合

每天工作24小时不会让你更有效率。休息、回家,然后打个盹。通常,很多难题是在我回家的时候解决掉的,解决方法通常在我开车时或第二天早上突然想到。

12. 不要闭门造车

读读博客、学习新语言和框架、参与讨论以及看看同行在干什么。两耳不闻业界事,你就无法成为一名更优秀的程序员。

13. 保持好奇心

想想塑料杯中的种子:根向下长,枝叶向上长,没有人知道这是为什么,但是我们都是这样的。一般来说,在编程和技术世界,每天都有新奇东西出现。看!很神奇吧!每天学习,让你思维更广,技能更新,选择也就更广。如果你认为编程枯燥乏味,那么你要该换行了。

14. 金鱼、仓鼠、白鼠以及塑料杯中的小种子——它们都会死,我们也是。

代码会过时并且死亡。有时你需要做的是把它们埋了,然后重做。不要为了省钱而继续维护那可怕的代码!

15. 想想那本书:《雌雄大盗》,你学到的第一个词——“看”。

如果不去尝试,你永远学不到东西。我在编程中学到的东西都是来自尝试新事物和练手。每天早上我浏览很多网站,看看编程世界里又发生了什么; 在八十年代早期我刚参加工作时,我就一直开始这样做(不过,那时候是看杂志)。

五年之后,你会过来看看,你会发现编程其实很简单!

译文出处:http://www.jobbole.com/entry.php/282

【编辑推荐】

  1. 程序员:请不要轻视我们的过去
  2. 想成为更好的程序员吗?学习Prolog语言吧
  3. 程序员发现苹果史上最严重的隐私侵犯行为
  4. 程序员如何在"小公司成长"和"大公司学习"
  5. 程序员工资禁忌 你可知道?
责任编辑:陈贻新 来源: 程序员
相关推荐

2017-09-21 09:44:00

编程程序员软件开发

2014-02-26 13:01:01

程序员趣闻

2021-01-03 10:30:54

编程程序员

2016-10-21 15:57:10

2016-06-27 10:40:12

软件测试敏捷开发

2009-02-10 15:39:59

软件评测师软考经验

2020-04-19 21:03:43

编程语言程序员Java

2011-11-09 13:52:04

程序员

2021-02-05 14:56:39

YouTube编程程序员

2014-12-23 09:40:41

CTO

2013-09-25 10:47:25

创新公司员工

2014-05-22 10:43:26

移动开发者优秀

2012-12-12 09:52:18

程序员

2021-02-21 13:49:48

Java程序员开发

2015-05-15 10:39:44

Java 冠军程序员?

2011-04-11 17:41:35

C++程序员

2019-01-28 11:54:28

程序员技能沟通

2019-03-05 09:57:08

php编程语言工程师

2016-02-25 11:42:19

2012-11-29 10:05:20

点赞
收藏

51CTO技术栈公众号