一个好的程序员应该具备什么品质?

一个好的程序员应该具备什么品质?,第1张

我总结了很多品质,比如:

解决问题的能力

独立思考的能力

要好奇,要有探索的精神

逻辑是清晰的,在流行的语言中可以清楚地理解技术问题

良好的英语阅读能力

数学好

经过一段时间的观察,我发现所有上述特征,都可以通过行为习惯得到,也就是如果你有以下习惯,那么你可能拥有且不限于以上所有的特质。

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

编程语言是目前为止大多数程序员谈论的话题,他们喜欢讨论哪种编程语言更有优势,专注于编程语言列表,因为这样,一些人将会继续学习一种新的编程语言,而不是普通程序员的证书。相反,由于缺乏经验,另一部分无法分辨哪一种语言对他们来说是最好的,从而延迟了行动,陷入了无限的纠缠之中。在不同的编程语言的阵营之间有时会发生争吵,这被视为对他们的信仰的辩护,反过来,也会有一群旁观者。

大多数人都关注这个层次的编程语言,然而,最大的原因可能是编程语言是编程世界的门,它也是最实用的工具,学习一门编程语言,你可以使用一种新的方式和计算机交互。

但是,不同于现实世界,在现实世界中,学习一门外语,相当于打开一个新的世界,学习英语,例如,你可以免费穿梭在英语国家,了解他们的文化和历史,掌握第一手的外语知识,这样他们就可以帮助你更好的决策,可以说如何掌握一门外语可以让你认知线性增长。相反,在计算机世界中,你学习一种语言,它不会带给你1+1=2的影响,因为从本质上讲,我们的目的不是学习更多的编程语言,但使用电脑,帮助我们来完成特定的任务,想知道同样的任务,甚至可以通过几种不同的语言。

我曾经见过一个问题,一个提问者可能是一个新人,他说:我想学习编程,但我不知道我是否会先学习Python或Javascript。回答的人对他说:“你在这些事情上花的时间,也许能学到其中之一。”

是的,优秀的程序员不会花大量的时间编程语言,因为他们专注于更重要的事情。

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

IT行业的门槛很低,任何学过编程语言的人都能进入这一行,更深层的意思是工作是重复性劳动,不需要太有创造力的人才。

在聊天时,经常讨论算法的主题。例如,“算法在工作中很重要并不重要。许多人给出的答案并不重要,因为他们在日常工作中不被使用。这是一个典型的实用主义的答案,也非常令人困惑,因为“日常工作比”它是真实的,但是这个事实并没有推导出算法对于这个结论来说并不重要。

算法是非常重要的,就像数学是所有学科的基础,所以它是非常重要的数学,算法是系统的灵魂,是区别不同的软件芯片,最典型的例子是谷歌的搜索引擎,它是依赖于著名的PageRank算法与其他市场上搜索产品不同,该算法直接影响到搜索体验,人们想要的结果的概率大。

提高算法的能力不仅可以提高软件的竞争力,沙河电脑培训认为还能提高我们的逻辑思维能力,人与人之间的差异实际上在于思维能力的差异,如果你每天都在敲门的话还有这类代码,你的思维有多大不会改变,但在人工智能的时代,你会考虑监督学习,无监督学习算法,我认为你的未来会更好。

学习能力:互联网是一个日新月异的行业,所以对于码农来说,一定要具备不错的学习能力。学习能力一般会从两个维度来看:学一个新事物的能力,从经验中学习的能力。学习新事物的能力,不同面试官考察会很多。可以从项目中用到哪些新技术,怎么学的;或者让候选人介绍自己学某个东西的过程,从这个过程中考察候选对新事物的接受程度,学习的一些思路。我个人更喜欢考察从经验中学习的能力。比如这个项目,如果现在给你时间和资源,重新开始做,你会有哪些优化的方案?为什么?码农很多的经验都是从实践中来的,那实践之后有没有及时总结思考,是直接决定这个人成长速度的关键。

团队协作:前面说过,我们做的事情不是原子d实验室,是需要高度团队合作的。那面试中一定绕不过去的就是团队协作能力的考察。比如你有没有自己做过项目负责人?做负责人中都出现哪些问题,怎么协调的?如果你是一个APP开发,那跟后端接口怎么协商,改接口怎么处理,各种校验逻辑放在客户端,还是服务端如何PK?产品改需求,怎么处理?项目中你的方案被别人否了,怎么处理?这些问题都是考察候选人在多人合作中出现问题,能否换位思考,能否有大局思维,以及一些基本化解冲突的经验和技巧。

抗压能力:码农是一个非常烧脑的行业,特别是线上出问题的时候,一定是血压飙升的时候,所以抗压能力也是考察的一个重要维度。抗压其实就看这个人为了一个目标能不能排除万难,坚持下去,在某种程度上你过去的经历可以体现你的抗压能力。比如卫哲老师有一次分享,说问一个小孩,你这辈子最苦的事情是什么?人家说有一次从杭州到上海的高铁,居然没有座位,我整整占了1个多小时……这样的人我肯定不敢要。所以面试中,面试官会经常问你做过一些有困难的事情是什么?或者举例说下自己如何坚持做一件事的。

综合能力包括的面很多,比如我一直觉得优秀的人一个基本素质一定主动性,这是贯穿整个综合面试中最重要的一个素质,可以从项目中看到你是否在积极推进项目进度,可以从你学习经历中看你是否主动思考,可以再抗压考察中看到你能主动排出万难,达到目标。任何一家公司都不希望找一个只是被动等待分配工作,做好分内事情的人,一定希望这个人能有全局思维去推动事,还能不断自我学习和总结。

此外,有的面试官会关注思维能力,比如我曾经校招面试时,就被问到一块蛋糕切成18份,至少需要切几刀?这个是见仁见智的一些考察方面,不做评价。OK,码农除了技术之外的基本能力模型和素质:沟通能力、学习能力、团队协作能力、抗压能力,以及最最重要的主动性。

在如今,社会中存在大量的程序员,这可能是因为写程序的人薪资非常高的缘故,不过,如此多的程序员中真正优秀的程序员却并不多,那么究竟怎样才算是一名优秀的程序员呢?北大青鸟老师告诉大家,真正优秀的程序员自身都拥有其他人不具备的好习惯,那么一个优秀的程序员该具备哪些好习惯呢?

1、学无止境:一名真正优秀的程序员是不会停止学习的,因为他们知道计算机技术的更新换代是非常快的,只要自己稍微放慢学习的速度,那么自己就有可能被其他人远远抛下,所以要想成为优秀的程序员,那么必须对业内的新闻、最新技术有全面的了解,这样你才能明白和了解整个软件开发的趋势。

2、掌握多种语言:程序语言是有很多种的,每一种语言都有其对应的领域,如果您不想将自己限制在一个固定的领域,那么您不妨花一些时间去探索一下其它的程序语言,这能让你的眼界变宽,从而你会被武装得更好,你思考问题也就更为全面,这对于自己和项目都会有好的帮助。

3、理性面对不同的 *** 作系统或技术:优秀的程序员明白不同 *** 作系统的优势、长处和短处,所以他们能够在选择系统类型的时候能客观、公正的进行选择,能够理性的分析和理心地面对。

4、别把自己框在单一的开发环境中:优秀的程序员不在意自己使用的到底是什么开发工具,他们选择不同的开发工具只是为了更好的达到自己的目的,他们会去尝试不同的开发环境,去发掘更好的利于自己工作的开发环境。

5、是一个优秀的团队成员:优秀的程序员从来不是孤单奋斗的,他们往往最喜欢和大家一起进行讨论,只有这样才能让自己更好得到进步。

6、做文档:优秀的程序员会将自己的工作内容做成文档,这样能让您的团队中的其他人能更好的明白自己的意图和想法,更好的应对团队中人的询问。

7、经常备份:好的程序员都有经常备份数据的习惯,他们为了保护自己的数据会将数据放在不同的地方,并做好定期(每日,每周,每月)的备份策略。

从以上的内容我们了解到了一个优秀的程序员该具备哪些好习惯,如果您想要成为一名优秀的程序员,那么就按照以上几点来要求自己吧,相信这样坚持下去您一定可以成为一名优秀的程序员的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11022868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存