0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀程序员有哪些特质

工程师人生 来源:工程师吴畏 2019-08-17 11:11 次阅读

作为一个程序员,我经常会问自己一个问题:

优秀的程序员都具备哪些特质?

我总结过很多特质,例如:

有解决问题的能力

有独立思考的能力

有好奇心、有探索精神

逻辑清晰,能够用通俗的语言把技术问题讲清楚

有良好的英文阅读能力

数学好,算法

经过一段时间的观察,我发现这上面的所有特质,都可以由一种行为习惯衍生出来,也就是如果你有以下习惯,那么你可能拥有且不限于以上所有的特质

观察大多数程序员的行为,朝相反的方向走

这句话也可以借用一本书的标题(《少有人走的路》)来描述:少有程序员走的路。是的,这句话的逻辑也很明显,和“优秀的人总是少数一样”

优秀的程序员总是少数

如果你的行为和大多数程序员一样,那么你很可能不会成为一个优秀的程序员。

所以,如果你想成为一个优秀的程序员,你首先需要拿出一个本子,记录一下大多数程序员的特质,然后分析下,反向行事是否会让自己更有竞争力,下面我说几个我观察到的现象:

大多数程序员都喜欢谈论编程语言

编程语言是程序员谈论得最多的话题,他们喜欢讨论哪个编程语言更有优势,关注编程语言的排行,正因为此,有一部分人会以不断学习新的编程语言为乐,以此作为区别于普通程序员的凭证。相反,另一部分人由于经验不足,区分不了具体哪个语言才是最适合自己的,从而迟迟不肯行动,陷入无限的纠结中。有时不同编程语言的阵营间还会产生口角,这种现象被视为对各自信仰的捍卫,进而还会引起大多数人的围观。

大多数人都把注意力放在编程语言这一层面上,最大的原因可能是因为编程语言是通往程序世界的大门,它也是最实用的工具,学会了一门编程语言,就可以用一种新的方式和计算机进行交互了。

但这和现实世界不同,现实世界中,学好一门外语,相当于打开了一个新的世界,例如学好了英语,你便可以自由穿梭在以英语为母语的国家中,了解他们的文化和历史,掌握第一手外文知识,从而能够帮助你更好的决策,可以说多掌握一门外语能让你的认知获得线性增长。相反,在计算机世界,你多学一门语言,它不会给你带来1+1=2的效果,因为本质上,我们的目的不是学更多编程语言,而是利用计算机,帮助我们完成具体的任务,要知道同样的一个任务,甚至可以用好几种不同的语言来实现。

曾经看过一个问题,提问人可能是新人,他问:我想学编程,但不知道先学Python还是Javascript。回答的人就告诉他:你用来纠结的这些时间,说不定早就可以学会其中一门了。

是的,优秀的程序员不会把大量的时间放在编程语言上,因为他们会把注意力放在更重要的事情上。

大多数程序员都不重视基础

有句话在业界特别流行,那就是

从小不努力,长大做IT

这句话的意思是,IT行业的门槛非常低,任何人只要学完一门编程语言就可以入行了,更深层次的意思是IT工作都是重复性的劳动,并不需要太有创造力的人才。

聊天时经常会聊到算法的话题,例如“算法在工作中到底重不重要”,很多人给出的答案是不重要,理由是因为日常工作中基本用不到。这又是一个典型的实用主义答案,同时它也极具迷惑性,因为“日常工作中用不到”的确是事实,但这个事实并不能推导出算法不重要这个结论。

算法很重要,就像数学是所有学科的基础,所以数学很重要一样,算法是一个系统的灵魂,是不同软件之间拉开差距的筹码,最典型的例子就是谷歌搜索引擎,它当年就是依靠著名的PageRank算法使其与市场上的其他搜索产品拉开差距的,该算法直接影响的是搜索体验,大概率的把人们想要的结果排在前面。

提升算法能力不仅可以帮软件提升竞争力,而且还可以提升我们的逻辑思维能力,人和人之间的差异其实就在于思维能力的差异,如果你每天都在敲if 。.. else这类的代码,你的思维能力不会有多大的变化,但在人工智能时代,你时不时琢磨一下监督学习,非监督学习中的算法,我想你的未来一定会更美好把。

算法只是基础中的一类,操作系统的原理、TCP/IP协议、MySQL中的Innodb引擎、Redis实现原理、Reactor网络模型等都属于基础,你可能觉得这些都很难啃,但据统计,基础知识只占一个人所学全部知识的3-5%,牢牢掌握这些基础知识,是你在日新月异的知识海洋中以不变应万变的法宝。

大多数程序员不重视效率的提升

如果你在一个互联网公司,你可能会这样调侃你的程序员同学:

你工作不饱和啊,bug解完了吗?

下面的对话也是常有的:

A:在干嘛呢?

B:苦逼加班解bug呢。

你也许看出来了,大多数程序员常常受限于解bug的恶性循环中——以前版本的bug还没解完,新功能上线又出现一堆bug。解bug是一件特别阻碍生产力的事情,它是一件副产品,理论上员工应该把大部分精力都用在开发上,而大多数公司却在维护软件的稳定性上付出了巨大的成本。

很多员工都抱怨自己工作那么辛苦,工资却不高,但他们却没有想过这个结果是怎么造成的,他们可能没有考虑过自己投入的时间能给公司带来多大的收益,如果把大部分时间都用来解bug,其实产出不仅是零,还是负的,你说公司会给你涨工资吗。

以我观察的来看,真的是这样的现象,开发过程中我们特别在乎一个产品的开发时间,希望尽可能的完成开发并发布产品,例如希望一个月完成,但却忽略了产品发布后,可能需要十个月甚至更多的时间来维护它,这真的是一个本末倒置的怪圈。

相反,如果每个人都有意识提升自己的工作效率,提升自己的出品质量,把更多时间投入到有价值的事情上,我想公司的业绩不会差,公司赚钱了,你的工资也不会低。你可能会问如何才能提升工作效率,其实也很简单,做每件事之后,都要反思:

还有更简单的方法吗?

我该如何才能减少bug的数量呢?

做这件事有通用的解决方案吗?

大多数程序员都不利用业余时间进行探索

探索和人的一个重要的特质相关,就是自主性(initiative),不仅是我,我相信大多数领导都喜欢和有自主性的下属一起共事,不仅是因为他们稀缺,同时还因为这样的下属会主动去解决问题,可以在组织中极大的减少沟通和管理成本。

刚开始工作时,我就发现公司鲜有人会利用业余时间学习了,当时以为换一个技术更好的公司会有所改变,技术学习氛围会好一些,谁知道这些都是自己的幻想,纠其原因可能是因为人都喜欢过得安逸一点,或者以平时已经很忙了为借口,在工作之外就不再学习了。平时不学习会造成什么后果呢,最直接的就是解决问题的能力低下,这些人只能解决领导规定范围内的问题,超出这个范围,一旦出现问题,要么掩盖,要么规避,反正不会及时的从根本上去解决,不是因为不想,是因为压根就不会。

对于程序员来说,学习包括看书和看代码,如果你每天抽一个小时时间看书,估计你可以超过90%的人,同时你花时间去研究github上优秀的代码,那么剩下的人群中的90%也会被你甩在身后。

在这方面,我自己是有切身体会的,刚参加工作前,我是个零代码量的人,由于经验非常欠缺,我几乎把所有业余时间都用来研究同事写的代码上了,看完这些代码,业务逻辑是很清楚了,但仍然无法判断这些代码是否写得足够好,因为我不知道好的代码是怎么样的,当时还没有github这样好的学习环境,只能从书中找答案。随后便花了不少时间读完了《C++ Primer》、《Unix环境高级编程》、《设计模式》、《深入浅出MFC》这4本书,最后在第二年,我凭借一己之力在2个月内把部门的核心代码重构了,由于覆盖了大量的单元测试,几乎没有给我带来什么bug,要知道在这之前这些代码是4个人花了2个季度才完成的,不仅如此,这些成绩还帮我在新的公司收获了“工资翻倍”。

读优秀的代码可以让自己获得飞速的成长,就像游戏中的打怪升级,优秀的代码是大boss,一次可以让你提升10个等级。这个过程不可逆,因为每完成一次,你都非常清楚的知道自己再也不会写以前那种烂代码了,这根本就是碾压过去的自己。当你“升级”后,再回过头去看公司里大多数人的代码,就可以得出和我一样的结论——他根本就没读过好的代码。

总结

“看大多数程序员的行为,然后朝相反的方向走”,其实是一个更为抽象的方法论,能帮你把不同的特质联系起来,从而可以更方便的不断提醒自己不要走偏。类似的行为远不止这四个,例如大多数程序员英文都不好,大多数程序员不擅长沟通,大多数程序员不学他们认为的“无用之学”(例如哲学、经济学、管理学等),大多数程序员不写Blog,大多数程序员没有自己的产品等等。

一般拥有自己的产品程序员生活都会很美好,这里的例子举不胜举,例如微信之父张小龙就是以Foxmail一举成名的,说到这里,我好像也没做到:)所以,下一次你问我在干嘛,我肯定不会说我在解bug:我在琢磨自己的产品呢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    951

    浏览量

    29791
收藏 人收藏

    评论

    相关推荐

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 0次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册

    机械革命发布CODE AI程序员

    近日,英特尔新质生产力技术生态大会在成都举行,机械革命作为重要参展商带来了多款明星产品引爆全场!其中更是在AI PC软件生态产品发布分论坛上,Intel、智谱、机械革命三方联合发布了专为程序员设计的CODE AI程序员本,成为本次大会的一大亮点。
    的头像 发表于 11-30 10:34 367次阅读

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 153次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 189次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起一道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的一款辅助开发人员
    的头像 发表于 07-17 16:29 255次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    助力程序员告别困扰已久的梦魇-Bug

    程序员的噩梦是什么?不用怀疑,就是让你加班到崩溃的Bug!下面是经过业界大佬们“长期加班”积累的小妙招,助力你离早下班又进一步~一、定位Bug范围及性质要有效解决问题,首先要缩小范围,集中关注最近
    的头像 发表于 07-02 08:10 311次阅读
    助力<b class='flag-5'>程序员</b>告别困扰已久的梦魇-Bug

    大模型时代,程序员当下如何应对 AI 的挑战

    随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 通用领域大模型的“泛化能力” 在过去的二十年内,AI 领域的大部分研究
    的头像 发表于 06-28 16:19 527次阅读
    大模型时代,<b class='flag-5'>程序员</b>当下如何应对 AI 的挑战

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 403次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 809次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13