1

怎么理解这个好字, 你想要成为你心中的好还是公司的好,公司只要你解决问题,按时输出就行,也就是说一个搬砖程序员都可以是公司的好程序员,但不是你心目中的或者你同行眼中的好程序员,但搬砖不是啥时候都有得砖给你搬。

好的程序员一般具备以下特征:

  1. 有较强的学习能力,和求知欲望,保持上进。
  2. 判断能力,项目出了问题,能够迅速定位出问题所在,不会在不相关的问题上找个半天,这需要点经验和良好的英文阅读能力,据我观察,英文阅读能力好的人不管定位bug,还是代码风格都相比英文不好的人都要好上许多,进步也比较快。
  3. 复盘总结,优化封装代码,提升工作效率。
  4. 协调能力,当手头上有很多活时,有些人就会乱,这个地方没干完就想着去修改另个地方,而协调能力好的人会有主次观念,掌控大局能力。
  5. 具备团队意识和合作能力。一个团队是一个整体,任你一端再牛逼也成不了体系,各端要以工作进度为主,以完成为目标,齐心协力。
  6. 以上就是专业技能,剩下就是软技能了。

最佳贡献者
2

虽然我也不敢说自己是一个好的程序员,但勉强也可以算个中等吧,至少超过 35 岁的年龄还没有失业;在我眼里,优秀的程序员需要具有这些品质:


对技术保持直接或间接的热情

好的程序员,一定会对技术报有热情;对技术的学习,一定不局限于“使用”这个层面,而是要了解原理,优缺点,适用场景,甚至要了解其中的源码,每学会一项新技术、了解一个知识点、或利用所学解决了一个问题,甚至是调通一段代码,都会发自内心的开心。

为什么要还加了一个词,“间接”的热情呢?

其实现实中不是每个程序员对技术学习有着“发自内心”的热情(这种热情需要长期保持,五年、十年、二十年...),所以要找到“间接”的热情。比如你喜欢做技术输出,喜欢享受自己被叫做“大神”的感觉,或者你追求高收入,希望拿到年薪100万+的总包...

总之,不管你是何种方式,总是要保持不断学习的动力。

良好的设计/架构能力

接到一个需求,你应该在很短的时间内有一个大概的判断:这个需求对于系统的改动量大还是小?有几种实现方案?是否需要其他系统配合?有些程序员甚至在心里已经要把代码修改点,一条一条地罗列出来了。

要达到这种程度,不仅要对项目非常数据,更重要的是要有设计和架构的能力,或者说是逻辑思维能力、抽象思维能力;如果一个程序员只能按照需求文档来开发,那么真的就变成了一个 Coder 了。

良好的沟通能力

现在很少有项目只需要一个程序员就可以实现,大部分情况都是一个团队、几个团队、甚至跨部门、跨公司的协作,所以对于程序员来说,沟通能力非常重要!

我曾经就是一个“脾气很大”的程序员,因为总觉得身边的同事能力怎么这么差,这么简单的东西怎么会不明白呢?那个阶段我很不乐于沟通,或者沟通的过程中态度很不好,直到我跳槽到了另外的公司,才发现不管到了什么地方,这种人都占了大多数,我始终保持这种态度,又能怎么样呢?

于是现在的我,乐于和他人沟通,虽然大多数时候依然心存鄙视,但是赶紧把工作干完才是我想要的结果。

优秀的程序员还应该具备良好的英文文档阅读能力、健康的体魄和浓密的发质,你觉得自己和优秀的程序员还差多少呢?

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

3

在这里不谈优秀员工的沟通能力,个人自我管理和时间管理,积极主动态度等方面的内容。在这里仅仅谈优秀的程序员有的一些特质。

对编程有浓厚的兴趣

由兴趣能驱动自己的探索和钻研精神,优秀程序员一般喜欢用业余时间探索和自己琢磨点东西,研究点开源框架和源代码,关注新技术,喜欢研究和探索算法,逻辑方面的内容。我遇到过的优秀程序员很少在业务时间不自己搞点东西的,这是他们的兴趣所在,或者说搞出来后自己得到那么莫名的快感。

自动化思维

优秀程序员一般比较懒于做重复的事情,对于重复事情有独有的程序员思维,即通过程序或其它自动化方式解决重复问题,而留更多时间去思考。在这点有点类似于原来我们常说的懒蚂蚁精神,程序本质很多时候就是通过自动化解决重复问题,所以说重复工作简单化和自动化是基本的程序员思维。

关注代码健壮性

优秀程序员更多的会从简单功能实现,花哨的界面转移到对安全,性能,可扩展等底层架构的关注。他们会更多开始关注代码重构,代码逻辑结构,架构运行机制,交互设计机制方面的内容。

较为偏执性格

优秀程序员一般有较明显的自恋和偏执特征,有较为希望独自工作的特征,比较难于被非技术背景管理者驾驭,高度强调自我能力价值的被认可,而且很多优秀程序员并不是好教练。不要对优秀程序员追求太多,每个人都不可能是全人,如果他们没有个性了基本也就没有了该有的激情。

扎实的基本功

优秀程序员一般有较为扎实的算法,数据结构等理论知识的基础。这些让他们在迅速进入新领域的时候快人一筹。很多时候我们都在想大学学的很多基础理论用不上,如果你后续的工作仅仅都是做些简单mis的增删改查功能的话当然用不上,但是优秀的程序员绝对不是简单的coder,优秀程序员会关注如何让其他程序员更加简单高效的做事情。

优秀的程序员更加已有知识和技术的积累很容易学习和进入到一个新的技术领域,他们有极强的新技术学习能力,而这些都来源于已有的积累。

4

作为一名从业多年的IT人,同时也是一名计算机专业的教育工作者,所以我来回答一下这个问题。

近些年来随着互联网的快速发展,程序员群体日渐庞大,程序员的岗位划分也越来越细,比如Web程序员、移动端程序员、大数据程序员等等,不同的程序员岗位有不同的任务要求,当然也需要程序员有不同的知识结构。从当前产业互联网发展的大背景来看,未来从事程序员岗位依然是不错的选择,发展前景也比较广阔。

对于一名优秀的程序员来说,除了要具有较强的开发能力之外,通常还具有以下几个特点:

第一:较强的沟通能力。按照历史经验来看,程序员的工作效率与其沟通交流能力有比较直接的关系,沟通能力强的程序员往往能够在较短的时间内完成开发任务,同时能够促进整个开发团队的开发进度。通常,沟通交流能力强的程序员往往也更容易实现岗位升级,以便于在一定程度上延长自身的职业生命周期。

第二:较强的资源整合能力。程序员的资源整合能力能够在很大程度上决定程序员的工作边界,资源整合能力越强的程序员往往能够承担更多的工作任务。程序员的资源整合能力主要体现在三个方面,其一是技术资源整合能力;其二是行业资源整合能力;其三是平台资源整合能力。

第三:较强的学习能力。IT行业的技术迭代速度是比较快的,对于程序员来说,只有具有较强的学习能力才能够不断获得技术进步,从而推动自己不断完成岗位升级。产业互联网时代是平台化时代,当前随着云计算、大数据、物联网、人工智能等平台的陆续推出,程序员自身的技术体系也需要技术更新,这就要求程序员具有较强的学习能力。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

5

一个好的程序员具备什么品质,最起码的要热爱自己的工作首先,我认为这是最基本的,好,什么才算好呢?这好像没有什么定义吧,每个人都有自己的看法,我来说说我看法,我认为的程序员应该有以下的品质:

一:热爱本职工作

首先作为一个好的程序热爱自己的本职工作,这是最起码的要求,如果你不热爱,不算得上是一个好的程序员。不热爱这份工作的话,那你到底当程序员的初衷是什么呢?为了生计还是有别的原因?


二:能处理好同事和领导的关系(前提是你在上班)

能处理好自己和处理好同事和领导的关系,这是一个好的程序员最起码应该做好的事情吧,如果你连关系都搞不好的话,那么好程序员这个标准就差远了不是。尤其是处理好领导的关系,这很重要。

三:擅长自己的工作

作为程序员你得擅长自己的工作,如果想更进一步,那就得精进了,好的程序员如果连工作都不擅长的话,能配得上好这个字么?工作也分很多种,有的人只是会工作,有的人擅长,有的人精炼,这就是区别。

四:有较强的学习能力

IT行业的技术迭代速度是比较快的,需要不断的去学习,不然就会落后的。

四:有良好的沟通能力

在工作或多或少碰到不少的问题,有时候很难解决,这时候就需要有良好的沟通能力去解决。

五:善于总结

对于自己的工作善于总结,那里做好了,那里没有做好,这对一个人的帮助很大,只要你善于总结,你的工作就会越来越好。一个优秀的人从来都是善于发现问题并去解决问题的,当你去总结,就会有进步,你的上司就会对你的工作越来越满意,你得到提升的机会就越大,你自己就会变得越来越好。

其实不管做什么工作,你想要做好了,这些都是一些基本的要素。如果你想在一家单位长久的干下去,这些你都要尽可能的去做到,除非你出来自己单干。

换做是别的工作是一样的,要想有发展就必须做到这几样,你觉得呢?

一个人想要有所作为就必须付出相应的努力,没有谁的成功是白白来的,做程序员也是如此。每个人都有自己的难处,但只要你付出就一定有回报的。好的程序不容易做,但只要你坚持,你就可以做好。

6

工作创业10多年的互联网IT老人,分享3点想法:

首先,要热爱编程

1、程序员是一个整体和机器打交道的工作,枯燥乏味,只有真正热爱编程的人,才能在这个行业如鱼得水。

2、热爱编程可以体现在,在代码质量上精益求精,在代码标准上书写规范,乐于解决各种疑难杂症,干过编程的都知道,程序问题各种各样,千奇百怪,没点经历过千锤百炼,真心搞不定。

3、把经验和遇到的问题总结备忘,好多程序的问题今天遇到了,可能明天还会遇到,所以要重视经验的积累,把问题总结好,下次遇到相同的问题可以快速找到解决方案,提高效率。这就是为啥程序员都爱到论坛里发帖,一是可以总结经验教训,二是下次遇到相同的问题,可以快速解决,提高效率。毕竟程序员做的工作都是要有时间节点的,做的越快绩效就会越好。

其次,尊重用户

1、好的程序员都会理解用户,更懂得理解需求。这点很难,也是很多程序员突破不了自己的关键,就是缺乏用户思维,单纯的从技术实现的角度考虑问题,没有考虑的用户的体验和便捷性。

2、好的程序员要尊重用户感受,写代码的时候也会深入思考用户体验,提出优化建议,只有懂得用户,才能给用户带来便捷,让用户更喜欢自己的产品。

最后,懂得协同

1、好的程序员知道如何融入团队,把团队的标准认真执行,无论从代码的可读性,还是注释的标准化等。

2、好的程序员知道如何理解需求,站到用户的角度思考问题,知道解决了这些需求,给用户带了什么价值,也是自己实现产品功能的最终价值。

关注@鬼谷子职场,以古鉴今,降低职场焦虑,提升职场核心竞争力!

7

互联网行业的高薪资是出了名的,特别是近年来,随着互联网的快速发展,对相关IT岗位的人才需求也逐渐增多,众多求职者开始奔向这一行业,想要成为一名程序员,今日就跟大家聊聊,一个好的程序员,具备哪些品质,或者说有什么样的共同点!

技术能力强

技术能力可以说是程序员的“立身之本”了,好的程序员和小白程序员一个很大的区别就是技术水平。而且好的程序员会保持空杯心态,坚持自律,随着技术更迭速度的不断加快,时刻保持对学习的热忱,懂得自我约束。

沟通能力好

程序员最怕的是什么,跟别人讲不清楚东西,或者搞不懂其他人想要什么,所以优秀的程序员,必定具备很好的沟通能力。不管是向客户了解需求,还是跟团队其他成员交流工作,都可以通过高效的、有效的沟通,提高自己的工作效率,让工作更加顺利的完成。

管理能力优

很多好的程序员,在后期和晋升的后期,都会锻炼自己的管理能力。为什么呢?如果他想要转型成为管理人员,那么需要具备管理员工的能力;如果想要在技术的路上再进一步,成为架构师,那么需要具备的可能就是项目管理的能力。只有具备管理能力,团队的工作才能有效向前推进,项目才能完成的更好。

以上就是小编认为的,优秀的程序员具备的好品质,希望能给你带来帮助。北大青鸟中博软件学院是一家专业的IT培训学院,创办以来,培养出众多优秀的IT人才,很多学员现在都是各自公司里,优秀的程序员,如果你也有想要成为程序员的梦想,就选择北大青鸟中博吧。详情可以私信我了解哟~

8

如何成为一个优秀的软件工程师?

更新时间:2020-09-14 | 阅读量(28)

对于程序员来说,如果想在程序开发领域走得更远,或者说成为行业领域的佼佼者,应该从以下几个方面入手:

1、保持好奇心

技术是永无止境的,要避免成为“码农”,就必须对这个行业一直保持热情和好奇心,并持续学习。在工作中及时做好上一阶段的复盘,主动优化代码,积极尝试更好的开发方式和更先进的工具来提升自己的开发效率。只有这样逐步的积累经验和长时间迭代优化,才能越来越专业。

2、保持高标准

当你看到不靠谱的代码时,心里应该想的是自己如何避免写出这样的垃圾代码,而不是“别人都写成这样了,那我也可以随便一点啦”。请认真对待自己的代码,这是你的创造。

3、不要怕失败

每个人都有从0到1的过程,做技术也是如此。很多新手程序员由于技术水平尚在初步阶段,经验又欠缺,写出的bug比较多,执行效率也低。于是他们害怕被同事嘲笑看不起,写代码的时候就越是小心翼翼,生怕出错,但越怕出错越容易出错。正确的做法应该是自我减压,相信挫折和失败是正常的,谁都会经历。要在工作中找出自己的优点,去寻找成就感,哪怕只是完成了一个小功能,优化了一小段代码,都是自己付出收获的结果,是自己进步的体现。

4、加入一个好团队

现在不是单兵作战的时代了,一个人就算再强,也不可能单枪匹马做成一个大项目。所以,团队沟通和协同合作很重要。其实最好的进步方式就是跟比自己强的人一起做事,高手都愿意聚在一起。在工作中学习他们的思考方式和做事方法,能在短时间内进步很多。

“优秀”本身并不是一个可以速成的东西,而是靠知识和经验的积累。希望大家有朝一日都能成为真正优秀的程序员!有理想有梦想,善于学习新的技术,叩丁狼有一些学生就算出去了还是在学习的路上。

9

我在一家国企从事甲方IT工作,也接触过很多甲方和乙方的IT人员。很多人把程序员定义为coder,我觉得是不对的,其实程序员范围非常广,架构设计、项目管理、开发人员都可以广义定义为程序员。我姑且认为题目想问的是一个开发者要具备的品质。

专业性。我是一个java开发者,之前看过很多问题问java学多久可以从事企业级开发,我觉得,光懂一门语言仅仅是开发者的入门。一个好的开发者,需要很长时间的工作积累,对于java后端开发来说,会java够了吗?一个好的java开发,目前一些主流的MVC框架比如Spring家族需要熟悉,一些持久化框架比如Hibernate/Mybatis/Ibatis需要熟悉,对于一些面相互联网的开发,一些常用注册中心比如Kafka/Zookeeper需要熟悉,一些分布式框架比如dubbo要熟悉,一些常用的缓存技术Redis/Memcache需要熟悉…但是这么多技术,怎么可能全部熟悉呢?这就牵扯到第二个品质。

扎实的基础与快速学习能力。不是所有的时候,项目中使用的技术都是我们扎实掌握的技术,但是很多技术都是触类旁通的,很多技术实现当时不熟悉,但是如果相关的技术有过实践经历,其实上手起来也很快。

持续集成的意识。代码是开发者最基本的交付物,但是很多时候由于种种原因,导致开发者没有对自己的代码进行持续集成。我见过企业级的应用,一个class类写了几千行,所有的业务除了原子的增删改查服务全写在controller里面。我一直对这种写法嗤之以鼻,可扩展性呢?可复用性呢?我觉得一个好的开发者是要有持续集成的意识的,逐步优化自己的代码,就像一遍一遍的审核自己的文章一样去推敲。好的代码是艺术品。

编码规范性。上面几千行的类就是编码规范性的反面教材。还有个例子,曾经一个朋友跟我吐槽,他接到一个项目,所有对象命名全是拼音首字母缩写,为了便于管理,项目组还给了他一沓对象命名的表,没这张表谁也不知道某个对象是什么意思。规范对象命名只是编码规范的其中一个要求,阿里曾出过一本阿里编程规范,虽然不必要遵守里面的每一条要求,但是还是有很多值得去参考的。

逻辑思维能力。一位架构师曾经和我说过,这世上没有一个项目是真的是由于技术能力不够最后垮掉的,技术问题都可以补,但是逻辑能力不够,对项目的伤害是没办法弥补的。所有的选型、集成、调优都对开发者的逻辑能力有极大的要求,我们常常开玩笑某某的方案是曲线救国,就是说这个人绕不过某个弯导致采用了个更复杂的方案。

暂时想到的就这些…

10

我怀疑头条给我一个单片机硬件的人推荐这样的问题,虽然我们也有C语言代码,但是和你们完全不一样啊

你的回答

单击“发布您的答案”,即表示您同意我们的服务条款