zoukankan      html  css  js  c++  java
  • 优秀程序猿因何而优秀?

    这些年我曾和非常多程序猿一起工作。他们之中的一些人非常厉害。而还有一些人显得平凡。不久前由于和一些技术非常熟练的程序猿工作感觉非常愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序猿那么优秀,糟糕的程序猿那么糟糕?简而言之。什么原因成就了一位优秀的程序猿呢?

    依据我的经验,成为一个优秀程序猿同年龄。教育程度,还有和你赚多少钱没有不论什么关系。

    关键在于你的做法。更深入地说,就是你的想法。我注意到我所钦佩的程序猿都有一些相似习惯。

    不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是多年的工作经验。而是他们的沟通方式。他们管理自己的方式,以及以他们精湛技术水平编程演讲的方式。

    当然成为一个优秀的程序猿还要具备很多其它特质,我也不能单单依靠是否存在(或者缺少)这些特质来评判一个程序猿。可是我知道当我看见它,当我看见一个程序猿具备这些特质的时候,我觉得,“这个人真的知道他们正在做什么”。

    优秀程序猿做调查研究

    或者叫“三思而后行”,或者叫“谷歌一下”

    不论你怎么称呼它,大多数可能会遇到的编程问题已经以某种形式解决,传道书早就记载着世界上本来就没有什么新奇事。

    优秀的程序猿在解决这个问题之前知道通过GitHub图书馆、网络博客。或者通过与经验丰富的程序猿交流等形式来做调查研究。

    我见过甚至是优秀的程序猿能够高速找出解决方式,可是和我一起工作过的糟糕的程序猿从来不求助于他人,结果做了大量的反复工作或者错误地解决这个问题,不幸的是,后来他们终将为自己犯下的错误付出了代价。

    优秀程序猿阅读错误信息(并依照它们行事)

    这包含解析堆栈路径信息。

    是的,这是一件非常丑陋不幸的事情。可是假设你不愿意这么做的话,你怎么才干知道哪里错了呢?我知道的高效程序猿是不会害怕深究问题的。

    低效的程序猿看见有错误。但就是不愿意甚至是去读这些错误信息。(这听起来非常可笑,但你会吃惊我遇到它的频率)

    更进一步地说,优秀的程序猿发现问题立即就解决它。

    读错误信息对他们来说不过个開始,他们渴望深究问题并查出问题的根源。

    他们不喜欢推卸责任,而是愿意查找解决这个问题的方案,问题在他们这里止步。

    优秀程序猿看源码

    文档、測试、团队。这些都会说谎。虽然不是有益的,可是假设你想确切地知道事情是怎么回事。你必须自己亲自看源码。

    假设它不是你最擅长的语言,你也不要害怕。假设你是一个Ruby的程序猿,你怀疑在Ruby的C语言库中有个错误。破解打开看看。

    是的,你可能拿不到源码,可是谁知道呢?你仅仅是可能而已,你有更好的机会,总比你根本不去尝试好吧。

    不幸的是,假设你处在一个封闭源码的环境中,这会变得很难,但道理是不变的。

    糟糕的程序猿对于查看源码没有丝毫的兴趣。结果问题困扰他们时间。要比愿意看源码的时间长得多。

    优秀程序猿说干就干

    优秀的程序猿趋向于主动去做。他们的内心有着难以控制的冲动,当他们确定问题或者发现新的需求时他们立马会实现解决方式。有时过早有时太过激进。

    可是他们对问题本能的反应是正面解决这个问题。

    有时这会令人非常烦恼,可是他们的热情是他们做好事情的一个重要部分。

    一些人可能迟延时间回避问题或者等待问题自己可以消失,然而优秀的程序猿一開始就解决它。简而言之(或者显而易见),假设你看见有人兴致勃勃地查找问题并在解决,非常可能你的手下有位优秀的程序猿。

    优秀程序猿不逃避困难

    这一般是糟糕程序猿的特点:他们轻易地从一个问题跳到还有一个问题。在没有真正理解一个问题之前就进入到下一个问题。他们会把责任归咎于程序的错误,然后花费大把的时间调试已经执行良好的代码。他们让情感占领主动,相信直觉,而不是细致严谨的分析。

    假设你匆匆忙忙地解决一个问题,甚至视每个问题为震惊世界的灾难。

    你非常可能犯错误或者没有解决潜在的问题。优秀的程序猿花时间去了解发生了什么错误,哪怕灾难来临的时候。但更重要的是,他们对待寻常的问题像是要解决的重要问题,因此他们更准确地解决很多其它的问题。而且这样做没有提高团队的紧张程度。

    优秀程序猿善于沟通交流

    说究竟,编程是一种形式的沟通交流。

    写代码和写散文创作一样,可以简洁地表达你的想法非常重要。我发现那些可以写简洁邮件,优雅的状态报告,或者甚至仅仅是一个有效的备忘录的程序猿也将会是优秀的程序猿。

    这能应用在写代码还有英语上。用圆括号、括号和单个字母的函数写出一行代码当然是有可能的,可是假设没有人理解它,有什么意义呢。优秀的程序猿会花时间以各种渠道交流他们的想法。

    优秀程序猿激情四射

    我觉得这可能是优秀的程序猿最重要的方面(或许这点也适用于除计算机科学领域的其他领域)

    假设你真的在乎你所做的事情。假设不把它当成工作。当作一个业余爱好、兴趣或一件非常有吸引力的事情,那么在该领域你比其它人更有优势。

    优秀的程序猿一直不断编程。普通程序猿一天工作八小时,而且没有业余项目,也没兴趣回馈社区。

    他们不会不断地尝试新方法。而仅仅是为了看看它们是怎样执行而执着于编程语言。

    当我看见一个程序猿利用周末的时间做自己喜欢的项目时,參与创作他们每天能用到的工具时,执着于新的有意义的事情时:那个时候我确信我眼前的是一个令人惊奇的人。

    最后,优秀的程序猿视他们的职业不不过赚钱的途径。更是让生活变得有些不同的方法。我觉得那就是成就最棒程序猿的真正原因。对于他们来说,编写代码是改变世界的一种方法,也是我很尊敬崇拜他们的原因。

  • 相关阅读:
    2016.6.23 随笔———— AJAX
    2016.6.13 随笔————图像获取、处理,视频获取,png图片尺寸缩小
    2016.5.15 随笔————网页平面设计软件 Illustrator(Ai) 和 Photoshop(Ps) 简介
    学习的目的:理解<转>
    几点要求自己也可以借鉴
    手表电池
    许小年:宁可踏空,不可断粮<转>
    【微言大义】时间都去哪了?
    互联网趋势其实很浮夸
    解决Mac下GDB提示签名错误
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5411103.html
Copyright © 2011-2022 走看看