zoukankan      html  css  js  c++  java
  • 优秀程序员的6个共同特质

    如果你在一家IT公司,与周边的程序员接触时间越长,对他们的可爱之处了解地就越多:或呆或萌,或正派或猥琐。如果你恰好是一个程序员,你会发现身边优秀的同事也总是有一些共同点。原文作者ROYVANRIJN总结了他身边优秀程序员同事拥有的6个共同特质: 

    • 具有好奇心
    • 热爱分享
    • 具有社区意识
    • 以身为程序员而自豪
    • 有点懒
    • 代码可视化
    1. 具有好奇心

    他们总是保持一颗好奇心,凡是遇到问题,首先就是:Google!没有Google就没有发言权。然后,会在StackOverflow上查找相关问题、浏览邮件列表、阅读在线文档等等。 


    这听起来理所当然,但是部分人却是先问自己身边的同事。原作者认为,这个习惯不太好:Google检索到的信息远比你周围同事了解的多,没必要放着这么好的资源不用,在你紧张工作的同事身上费功夫。 

    当然,大多数时候第一次在Google搜索问题,可能没有自己想要的结果,不过不要放弃!继续搜索,尝试使用不同的关键词,或者直接阅读源码。如果上面都没有结果,那就在邮件列表、新闻组等社区提问。 

    2. 热爱分享

    一旦找到解决自己问题的方法,然后就到此为止,然后就没有然后了?No!一名优秀程序员不能这样做。在地球上正有一群程序员遭遇和你一样的问题,他们也正在尝试解决。 


    理理自己的思路,写成博客记录下来:遇到了哪些坑儿,如何避免这些坑儿。在你曾经搜索过该问题的地方,如果问题还没有解决,就帮助回答,贴出自己的方案,接受后来者的膜拜。当然,你可能会“自问自答”,这样就准备接受后来者的鄙视吧。 

    3. 具有社区意识

    如果在使用某个开源软件的时候遇到了Bug,你会怎么办?一般会有2个反应: 

    • 抱怨,寻找另一个替代软件
    • 下载源码,自己动手打补丁
    上面2个方式都不太明智。开源社区之所以成为社区,就是因为是大家自愿地来修复问题,很明显第一个方式不太合适。那第二个方式为何不妥?我们不鼓励直接下载源码来打补丁,应该首先联系该软件的维护者。一个著名的例子就是,Linus Torvalds曾拒绝合并一段可以大幅提升Linux内核速度的代码,只是因为该段代码的作者独自工作了6个月之久。记住,首先与社区一块讨论你的改进,然后大家一起来做! 


    有句俏皮话是这么说的:开源项目没死掉,是因为还没人来修复你的Bug;因为没人修复你的Bug,所以这个开源项目死掉了。 

    4. 以身为程序员而自豪

    优秀的程序员都以作为程序员而感到自豪。一旦你完成了某项功能,你会迫不及待地将成果展示给客户、麻利利地实现客户的想法。 


    如果发现自己的代码里面可能存在问题时,怎么办?可能会“自大”,因为是自己写的,就觉得代码审核没有必要;或者有问题也非要自己完成,而不是协作解决。优秀的程序员,应该学会与团队分享,时刻保持激情,但不仅仅是为了自己,而是为了团队、产品和项目。 

    5. 嗯…有点懒

    几乎全部职业的优秀员工都很勤奋、工作努力,不过程序员例外,那些优秀出色的程序员都有点懒。这可能是唯一把懒惰当做优秀品质来对待的职业(测试人员可以除外)。 

    也许可以说明这一优秀特质的最知名的例子就是“计算机第一夫人”Grace Hopper在1952年发明了编译器。她解释说,做出编译器就是因为自己很懒,并且希望程序员都能够成为一个数学家。 

    如果一个程序员被要求定期完成某事,他/她会坚持想出一个办法来避免这样做。“一次编写,到处运行。”如果客户总是谈论令人厌烦的重复性的工作,优秀的程序员总会尝试着将这个工作自动化。 

    比尔盖茨也讲到“我总是会选择一个懒人去完成一份困难的工作。因为,他会找到捷径”。 

    程序员们,拥抱“懒惰”吧,将重复性的工作自动化,不要重复自己!提示:懒人们应该快速学会快捷键哟~这也是优秀程序员应该做的!! 

    6. 代码可视化

    对于整个代码库,需要在脑子里面构建一个模型。这就是我们所说的“代码可视化”。 


    要做到“代码可视化”,首先我们需要了解整个代码库。需要对部分代码进行修改或增删时,需要知道在什么地方进行查找。问题出现在什么地方,应用程序中的对象/例程是怎么进行的,每个模块之间的关系是怎样的,这些都需要清楚。 
    其次,需要了解正在工作的代码环境。大部分情况下,我们会在多个文件中来回切换,优秀程序员会明白自己当前所处的环境,不会觉得晕头转向。只要一看代码框架和结构,就可以快速找到自己需要的源文件。当然,这需要对整个代码做到了然于胸。 

    不过,程序猿和程序媛在代码可视化方面的能力是由有差别的,据目前研究,貌似IDE中的导航功能更对程序猿有利。 
  • 相关阅读:
    apache安全—用户访问控制
    hdu 3232 Crossing Rivers 过河(数学期望)
    HDU 5418 Victor and World (可重复走的TSP问题,状压dp)
    UVA 11020 Efficient Solutions (BST,Splay树)
    UVA 11922 Permutation Transformer (Splay树)
    HYSBZ 1208 宠物收养所 (Splay树)
    HYSBZ 1503 郁闷的出纳员 (Splay树)
    HDU 5416 CRB and Tree (技巧)
    HDU 5414 CRB and String (字符串,模拟)
    HDU 5410 CRB and His Birthday (01背包,完全背包,混合)
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131370.html
Copyright © 2011-2022 走看看