阅读更多

17顶
1踩

非技术

原创新闻 优秀程序员的6个共同特质

2013-12-16 09:45 by 见习编辑 tuhaihe 评论(13) 有16405人浏览
如果你在一家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中的导航功能更对程序猿有利。

原文:6 common traits of good programmers
  • 大小: 14.7 KB
  • 大小: 16.1 KB
  • 大小: 16.1 KB
  • 大小: 77.6 KB
  • 大小: 22.8 KB
  • 大小: 14.5 KB
17
1
评论 共 13 条 请登录后发表评论
13 楼 white_crucifix 2013-12-19 12:47
好久没去问别人问题了……
12 楼 qinboss 2013-12-18 13:43
•具有好奇心
•热爱分享
•具有社区意识
•以身为程序员而自豪
•有点懒
•代码可视化
11 楼 sunking_135 2013-12-18 08:48
我看到了一群攻城狮。。。
10 楼 TopLongMan 2013-12-17 21:44
说的很有代表性,但我很勤劳,呵呵。
9 楼 yixiandave 2013-12-17 14:58
lingduxyz 写道
yixiandave 写道
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

我一般都粘贴“错误提示”去搜索,而不会用“为什么连不上数据库”类似的词搜索

错误提示在出现Exception并且很明确的时候很好用。实际上还有一些其他的情况,例如一个框架某个特性的用法之类,特别是前端js使用一些不熟悉的框架的时候,代码不正确更多情况是没有起作用,而不是一行报错扔出来
8 楼 s929498110 2013-12-17 12:07
lingduxyz 写道
yixiandave 写道
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

我一般都粘贴“错误提示”去搜索,而不会用“为什么连不上数据库”类似的词搜索


赞同。

IT工作者用“为什么...”、“...是什么”、“怎么...”这类搜索语句实在太低级了。
7 楼 lingduxyz 2013-12-17 08:59
yixiandave 写道
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

我一般都粘贴“错误提示”去搜索,而不会用“为什么连不上数据库”类似的词搜索
6 楼 dohkoos 2013-12-16 22:29
对照列表来看本人的社区意识比较缺乏,有待加强啊。
5 楼 rao104932467 2013-12-16 22:13
yixiandave 写道
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

仁者见仁智者见智!!!
4 楼 Cwind 2013-12-16 17:50
最后一条说得很好
3 楼 tuhaihe 2013-12-16 16:17
cuippan 写道
前提是不能过多的打断自己的同事和自己先思考至少半个小时去解决

先自己思考,这个是必须的。不能什么都不想,就去问问题了,这不是明智的提问。
2 楼 cuippan 2013-12-16 11:32
前提是不能过多的打断自己的同事和自己先思考至少半个小时去解决!
yixiandave 写道
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

1 楼 yixiandave 2013-12-16 10:26
第一点,可能不同公司的情况不同,我们更倾向于优先询问同事。因为搜索引擎很难100%理解你正确的搜索目标(其实根本原因是没有给到合适的关键词),这个问题在中国程序员身上体现很明显,因为中文关键词显然不适合用来Google编程问题,而程序员自己将问题翻译为英文时就会丢失信息甚至出现歧义。而同事的理解能力明显会比搜索引擎强很多,如果这个问题碰巧同事遇到过,他就会很快给出解决方案。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 优秀的程序员都有那些特质?

    俗话说,不想当将军的士兵不是好士兵,同样地,不想当优秀软件工程师的程序员不是好程序员。在这篇文章中,我将根据 Lula 的 “” 视频的主要观点,结合自己的理解,谈谈优秀的软件工程师应该具备的 7 个好习惯。...

  • 03 _ 优秀程序员的六个关键特质

    什么样的程序员才是优秀的程序员呢?如果去问一个程序员,得到的答案有可能是,“写的一手好代码,...我自己工作中见过特别多优秀的程序员,从他们身上发现了不少共性的特质,我总结为以下六项,下面一一给你介绍。掌握

  • 那些优秀程序员身上的共同特质

    你是否发现,在我们身边的那些优秀程序员身上总是能找到一些共同的特质,这些特质并非与生俱来,但却逐渐在他们身上留下深深的烙印,这也使得他们变得与众不同,更成为我们心目中的佼佼者。 至少深入理解一门编程...

  • 那些优秀程序员身上的共同的特质

    你是否发现,在我们身边的那些优秀程序员身上总是能找到一些共同的特质,这些特质并非与生俱来,但却逐渐在他们身上留下深深的烙印,这也使得他们变得与众不同,更成为我们心目中的佼佼者。 至少深入理解一门编程...

  • 03 | 优秀程序员的六个关键特质

    最后,总结一下,优秀的程序员是什么样的?优秀的程序员可以熟练地使用必要的工具...现在,把我们今天讲的优秀程序员六大特质当作一套自测题,和自己对照一下,自己在哪些方面做得比较好?在哪些方面还需要继续精进呢?

  • 优秀程序员的特质_139个使程序员更好的特质

    优秀程序员的特质 您应该记住的事情。 面对现实,每个开发人员都想改善并变得更好。 大多数开发人员提出的最大问题是我将如何做。 以下是编程时应记住的事项。 代码展示 随着对代码布局的任何讨论的增加,...

  • COBOL语言简介

    COBOL语言 COBOL的全称是Common Business Oriented Language,意即:通用商业语言。 在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,于1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。经不断修改、丰富完善和标准化,已发展为多种版本。 COBOL语言使用了3

  • SAX和DOM

    SAX是用于处理 XML 的基于事件的 API,SAX 是对“文档对象模型”或者 DOM 的补充 DOM 是用于由 W3C 发布的 XML 语法分析器的基于对象的 API SAX: 是基于事件的 API。 在一个比 DOM 低的级别上操作。 为您提供比 DOM 更多的控制。 几乎总是比 DOM 更有效率。 但不幸的是,需要比 DOM 更多的工作。 作为基于对象的接口,DOM 通过在内存中显示地构

  • 什么是 Cocoon

      Cocoon 是一种 Java 服务器框架,它允许使用 XSLT(XML 样式表语言转换 (XML Stylesheet Language-Transformation))转换动态发布 XML 内容。通过依靠 XML 描述内容以及使用 XSLT 将内容转换成多种格式,Cocoon 提供了用于构建内容、逻辑和表示在很大程度上彼此分离的应用程序的平台。 Cocoon 使用管道的概念来描述将内容发

  • JSF

    目前Java Community Process(JCP)正在进行最终草稿审核的Java Specification Requests(JSR) 127 - Java Server Faces(JSF)(http://www.jcp.org/en/jsr/detail?id=127)就是一个基于JAVA技术的Web应用框架标准,同时也是对于J2EE标准的一个重大补充。JSF使得您能够轻松而方便地设

  • 今天看到sharepoint

    今天在网络上闲逛时偶然发现这个东西,特别浏览了一下 先摘抄一部分: SharePoint Portal Server 2003是一种连接到整个业务流程中所有个人、团队和知识的可伸缩门户服务器。 通过单点登录和企业应用程序集成功能,SharePoint Portal Server 2003将来自不同系统的信息集成到一个安全的解决方案中。它提供了灵活的部署和管理工具,使得通过数据整合、组织和搜索的端到

  • 好消息:SqlServer2005

    兩項最Cool的特性! 1、CLR集成。可以與VS2005開發環境完美的集成,現在,我們可以用我們自己喜歡的語言(C#/VB?NET)來寫StoredProcedure和Function了! 2、XCopy部署數據庫!是的,當要移動數據庫時,我們只需要將數據庫像文件那樣拷貝到另一臺電腦上,然後,修改數據庫連接字符串中的“AttachDBFilename”參數的值為數據庫文件所在的路徑,其他一切就不

  • 基于java的智能卤菜销售平台答辩PPT.pptx

    基于java的智能卤菜销售平台答辩PPT.pptx

  • Jira插件安装包custom-charts-jira-server

    Jira插件安装包custom-charts-jira-server

  • 安装与激活、靶场环境部署、扫描Web应用程序、扫描报告分析、Goby+AWVS联动

    安装与激活 内容概要:详细介绍相关软件(如 Goby、AWVS 等)的安装步骤,包括从官方网站下载合适版本、检查系统兼容性、安装过程中的注意事项等。对于激活部分,讲解合法获取激活码或许可证的途径,以及激活过程中可能遇到的问题及解决方案。 适用人群:网络安全初学者、渗透测试工程师、安全运维人员等需要使用这些工具进行安全评估的人员。 使用场景和目标:在新搭建的测试环境或个人工作环境中,确保软件能正确安装和激活,为后续的安全评估工作做好准备。目标是使软件稳定运行,避免因安装或激活问题导致工作受阻。 靶场环境部署 内容概要:阐述靶场环境搭建的流程,包括选择合适的靶场平台(如 DVWA、WebGoat 等),安装和配置所需的操作系统、Web 服务器、数据库等组件,设置不同难度级别的漏洞场景。 适用人群:网络安全学习者用于实践练习,渗透测试培训讲师用于教学,安全研究人员用于新漏洞研究。 使用场景和目标:在安全培训、自我技能提升、新漏洞验证等场景下,搭建与真实环境相似的靶场,目标是模拟各种安全场景,帮助使用者熟悉漏洞利用和防御方法。 扫描 Web 应用程序 内容概要:讲解使用 Goby 和 AWVS

  • 基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)

    基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码+文档说明(高分毕设)基于STM32的7路传感器三轮循迹小车源码。

  • 合并两个链表,链表基础操作

    链表 合并两个链表,链表基础操作

  • 课设毕设基于SpringBoot+Vue的高性能计算中心的高性能集群共享平台源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

Global site tag (gtag.js) - Google Analytics