好程序员应该拥有的7个特质

一个好的程序员应该拥有的10大特质,你符合哪些呢?

4418040-6be13f6ccfe53b0c

1、喜欢研究

    无论你怎么称呼它,你可能遇到的大多数编程问题几乎在一定形式上都已经被解决了。传道书早就记录在案,阳光底下无新事。在GitHub上的库文件列表中,在互联网上的博客中,或者恰好与某个人经验交流中,好的程序员知道要在解决一个问题之前先做研究。

4418040-1ba0d82a29ec967e

2、读错误信息

    这包括对堆栈追踪的符号解析。是的,令人厌恶而且不幸——但如果你不愿意这么做,怎么知道哪里出错了?我知道的最高效的程序员不害怕深入挖掘问题。最低效的程序员看到错误甚至都不愿读错误信息。(这听起来挺可笑的,但我遇到的频率会让你吃惊。)

    更进一步说,好的的程序员看到问题,会急迫的去解决它。对于他们来说,读错误信息仅仅是第一步;他们渴望深入问题并找出错误的根源。他们对推卸责任没有兴趣,他们对找到解决方案有兴趣。问题确实在他们这里止步。

4418040-91a52797d8a139bd

3、查看源代码

    文档,测试和人:这些都可能会说谎。未必是故意撒谎,但是如果你想确切的知道代码是怎么工作的,你就必须亲自察看源代码。

  即使这不是你非常熟悉的语言也不要害怕——比如,如果你主要是一个Ruby程序员并且你怀疑Ruby的C语言包里有错误,那就去解压它看看再说。不错,你可能会一无所获。但是谁知道呢,你也可能会找到问题所在,比起什么都不做,你至少选择了一条更有机会的路。

    如果你工作在一个非开源的环境中,就不太好办了,这很不幸,不过道理是不变的。糟糕的程序员对查看源码通常没有太多兴趣,结果就是,跟那些愿意去研究一下源码的人相比,他们通常会被这些问题困扰的更久。

4418040-2805e95e13f01ac2

4、很强的执行力

  好的程序员总是趋向于采取行动。他们似乎有种控制不住的强迫性——一旦他们确认了一个问题或者看到了一个新的特性需求,就会立即着手解决,有时甚至过早或者过于勇往直前。他们遇到问题的直觉反应就是正面解决它。

  有时这会带来麻烦——但是他们的热情正是他们能够做的很好的关键因素。当某些人还在拖延回避或者幻想问题能自己消失的时候,好的程序员已经开始动手了。

 更简单的来说(也许,太过直白),如果你看到一个人兴奋的发现并处理问题,很有可能你得到了一名好程序员。

4418040-317d96ad9b1813b2

5、防患未然

  这可能是一个坏的程序员的特征——他们总是纠缠于一个又一个的人为失误,从来都是没有明白上一个就转向下一个。他们总是在抱怨他们程序中的错误部分,却耗费数小时对完美运行的代码来debug。他们让情绪占据主动,相信直觉而不是仔细明确的分析。

    如果你突然遇到一个问题——或者每一个问题看起来都像是世界末日一般,你极有可能是在犯错误而不是在解决潜在的问题。伟大的程序员会花费一些时间来了解是什么出了错,哪怕是真的是一场灾难,除了这些,他们还会把常出现的问题当成分配任务来处理掉。由于他们能更精确的解决大部分问题,从而不会提高你的团队的紧张程度。

4418040-7740e03268decff1

6、善于和身边的人交流

  说到底,编程也是一种交流的方式。能够简洁明了地表达出你的观点之于写代码就如其之于写诗一样重要——长久以来,我发现那些能够写出精炼的电子邮件、优雅的报告或者仅仅是高效的备忘录的人通常也会是更优秀的程序员。

    这个发现对写程序和对英语一样使用。当然,把充斥着括号和只用一个字母命名的函数写在一行里面也是可以的,但是如果没有人能够理解你写的代码,又有什么意义呢?无论使用什么媒介,优秀的程序员会把时间花在如何将他们的观点更好地表达出来上面。

4418040-753f987828321347

7、对工作充满激情

  我想这是最能够体现一个好的程序员的地方(并且,不仅在计算机行业,这点适用于任何行业)。

如果你真正关心你做的东西——不只是把它当做一个工作去应付,而是一个兴趣、一件对你有着莫大魅力的事情,那么在这个行业里,相较于其他人而言,你就拥有了一项巨大的优势。好的程序员会一直保持着写代码的状态,他们每天花在这个行业里的时间都不低于8个小时——包括工作和空余时间。在编写项目和授业解惑两者之间,他们不会偏向任何一方。他们不会只是为了搞清楚某个东西的工作原理而整天痴迷于新技术或新的编程语言。

    当我观察一个周日正在做自己感兴趣的项目、在创造自己需要的工具、被新的、有趣的事物吸引的程序员的时候,我意识到我正在观察一个会令所有人都不由自主心生敬意的人。最后,伟大的程序员不会将他们的专业看做赚钱的工具,而是一种改变世界的手段。我想这就是早就一个伟大程序员的真正原因吧。编程,对于他们来说也就意味着创造世界。也只有这样的人,才值得我们由衷地敬佩和景仰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最大全零子矩阵

【题目描述】在一个0,1方阵中找出其中最大的全0子矩阵&#xff0c;所谓最大是指0的个数最多。 【输入描述】输入第一行为整数N&#xff0c;其中1<N<2000&#xff0c;为方阵的大小&#xff0c;紧接着N行每行均有N个0或1&#xff0c;相邻两数间严格用一个空格隔开。 【输出…

微机原理换行代码_设置段落样式的标记中,用来换行的标记是:

【判断题】( )经检验,收退货品为良品,退货上架员用RF终端设备扫描,并根据指示进行良品入库作业。【单选题】Web of Science中,SAME算符()。【多选题】在进行人员培训时必须考虑的事项有( )。【单选题】在PubMed-MeSH检索界面中,输入检索词tongue cancer,点击“Search”,查询结果…

谷歌浏览器添加插件时显示程序包无效:CRX_HEADER_INVALID 解决办法

在添加谷歌插件的时候&#xff0c;发现谷歌浏览器显示 程序包无效&#xff1a;"CRX_HEADER_INVALID" 解决方法如下&#xff1a; 下图是下载好的 .crx 结尾的插件。 将插件的后缀名改为.rar &#xff0c;如下图。 解压 接下来就是浏览器添加插件&#xff0c;打开到浏…

推荐VSCode12个比较实用的插件

1、Auto Rename Tag ——自动重命名成对的HTML标记。假如你创建了一个<p>标记。现在你想更改它。有了这个软件&#xff0c;你只需要更改一个就行&#xff0c;另一个会自动修改。从理论上来说&#xff0c;使用这个软件可以把你的工作效率提升一倍。2、HTML CSS Support …

[单选题]$array = array('a','b','c','d'); $array_now = array_splice($array,2); print_r($array_now);...

Array ( [0] > c [1] > d ) Array ( [0] > a [1] > c ) Array ( [0] > b [1] > d ) Array ( [0] > a [1] > b )PHP array_splice() 函数 PHP Array 函数 实例 从数组中移除元素&#xff0c;并用新元素取代它&#xff1a; <?php $a1array("a&q…

图论解油瓶分油问题_一个很有趣的de novo图论算法

首先&#xff0c;小编先给大家介绍一些关于组装的历史。大家肯定也知道&#xff0c;这个组装技术的发展是依赖于测序技术的。首先在一代测序的时候&#xff0c;测序数据量较少&#xff0c;成本较高&#xff0c;人们对于组装的结首先&#xff0c;小编先给大家介绍一些关于组装的…

pip show pip可以查看pip的版本以及升级pip到最新版本

输入命令&#xff1a;pip show pip可以查看pip的版本&#xff0c;如果不是最新版最后会有提示如下&#xff1a; 输入命令&#xff1a;python -m pip install --upgrade pip可以升级pip到最新版本。

盘点程序员开发遇到的30个问题

1、我不知道该删掉还是重写回归曾经写的源代码&#xff0c;总有一种想要重新返工的冲动&#xff0c;逻辑性差&#xff0c;冗余代码多&#xff0c;让人难以理解。但是&#xff0c;如果功能没出现问题&#xff0c;千万不要去修改。这是我经常要面对的困扰&#xff0c;相信也困扰了…

20159320《网络攻防实践》第5周教材总结

web应用程序安全攻防 应用程序体系结构以及其安全威胁 1、三层架构&#xff1a;表示层、业务逻辑层和数据层 2、体系结构&#xff1a;浏览器、web服务器、web应用程序、数据库、传输协议HTTP/HTTPS 3、web应用安全威胁&#xff1a;针对浏览器和终端用户的web浏览安全、针对传输…

saas是什么意思_为什么越来越多的人选择SaaS模式的crm客户管理系统?

SaaS近几年在国内逐渐升温&#xff0c;很多企业管理者都开始了解SaaS是什么意思&#xff0c;SaaS是企业根据需要&#xff0c;从SaaS提供商获取软件使用权的&#xff0c;直接通过互联网就可进行操作。对于我国大多数中小企业来说&#xff0c;选择SaaS模式的crm客户管理系统也许是…

趣漫揭秘!中国程序员生存现状?

如果没有程序员&#xff0c;整个虚拟世界都会消失不见。全中国7亿多网民&#xff0c;再也不能愉快滴发自拍&#xff0c;看视频&#xff0c;打游戏&#xff0c;甚至连打电话都成了一种幻想。绝大部分电子设备都会变成废铁&#xff0c;人类的生活将完全倒退到70多年以前。程序员贡…

一个App完成入门篇(五)- 完成新闻页面

本节教程将介绍如何用DeviceOne简单而高效的完成一个新闻页面。 导入项目数据模板分离MVVM模型自定义事件展示新闻九宫格展示将要学习的demo效果图如下所示 1. 导入完整项目 本节示例demo请参考下载地址&#xff0c;可以导入到设计器中学习。 为了方便大家理解页面结构&#xf…

程序员职业规划

每个程序员的职业生涯无非以下几种情况&#xff1a;一、帮别人挣钱&#xff08;打工&#xff09;不管你是刚入职的小兵&#xff0c;还是管人的经理&#xff0c;甚至是唬人的总监&#xff0c;都属于这一阶段。通常程序员在这一阶段的职业发展分两条线&#xff0c;专家&#xff0…

python getattrribute_python操作对象属性

getattrgetattr(a,b)的作用就和a.b是一样的。那么这个内建函数有什么作用呢&#xff0c;最方便的无疑是使用它来实现工厂方法(Factory Method)模式。参数说明&#xff1a;object&#xff1a;对象的实例name&#xff1a;字符串&#xff0c;对象的成员函数的名字或者成员变量defa…

电脑处理器i5和i7的区别,如何选择?

对于好多正在准备入手笔记本的朋友们来说&#xff0c;电脑的配置参数真的是让人眼花缭乱&#xff0c;一些看不懂的数字和英文码看得人心烦&#xff0c;i5和i7的区别究竟在哪里那&#xff1f;处理器中央处理器&#xff08;英文Central ProcessingUnit&#xff0c;CPU&#xff09…

c++ map的存储结构_「软帝学院」java集合类框架map及相关常见问题二

Map接口 通过查看Map接口描述&#xff0c;发现Map接口下的集合与Collection接口下的集合&#xff0c;它们存储数据的形式不同&#xff0c;如下图。 Collection中的集合&#xff0c;元素是孤立存在的(理解为单身)&#xff0c;向集合中存储元素采用一个个元素的方式存储。 Map中的…

Windows 下 Conda install 安装出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url解决措施

在使用Conda install 安装库的时候出现以下错误 原因是使用的是国外的镜像&#xff0c;切换至国内镜像就可以解决啦 在cmd 中输入下面命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes…

盘点谷歌浏览器9项隐藏的实用功能

谷歌 Chrome 浏览器一直以速度、简洁和安全为用户所熟知。除此之外&#xff0c;Chrome 的其他功能也非常强大&#xff0c;为了进一步提高工作效率&#xff0c;让我们一一揭晓它的那些隐藏技能吧。1、同时登入多个账户用户拥有多个谷歌账户&#xff08;工作用或个人用&#xff0…

正则10-18

转载于:https://www.cnblogs.com/XACOOL/p/5357652.html