一个程序员要具备的基本素质是什么?

一个程序员要具备的基本素质是什么?,第1张

一个程序员要具备的基本素质主要有10点。

心怀理想

我认为优秀程序员首先具备的素质是心怀理想。我曾说过许多程序员都是冲着“比尔.盖茨”而来的,是被他的巨大成功所感召的。可以说不想当比尔盖茨的程序员不是好程序员。大家要记住,比尔盖茨的成功是两个方面的成功,一个是他个人的成功,另一个是IT行业的成功。作为个人成功,只要个人能在众人中脱颖而出,应该可以说行行都可以出状元的。而行业的成功则表现出行业的生命力和朝阳性。而从事这个行业的人则能够伴随着这个行业的发展而成功。在IT软件行业中,一个好的软件通过无数复制使用能产生巨大的经济效益和社会效益,而好的软件往往是程序员所编制的,与其有很大的关联性,这就意味着程序员在这个行业存在着成功的必然可能。现实中除了比尔盖茨,还有许许多多中外IT名人都是程序员出身的,他们的成功昭示着程序员成功的可能。

既然程序员有成功的可能,那优秀程序员一定是心怀成功的理想,这种理想激励他们不断进取走向成功。我这里说心怀,是说程序员不必天天把理想挂在嘴边,而是把理想放在心里,时刻牢记自己的目标是什么!目标是成功的一半,有了目标,优秀程序员可以不断地调整自己,以最优的方式去接近和实现自己的目标。

现实中还有两类程序员,一类是也想成为比尔盖茨,但是始终是想,最终只是一种幻想。另一类知道比尔盖茨,但是望而却步,从不敢有半点奢望,做到哪就算到哪,顺其自然。这两类程序员都不具备优秀程序员的基本素质。

充满激情

优秀的程序员一定是一个充满激情的人,他们的理想和目标的远大注定了他们不能以常人的肢液方式平淡地、机械地工作着。我们很难想象一个优秀程序员不去争做一个大的项目;我们很难想象一个优秀程序员在大家遇到困难时,无助待援时,不挺身而出;我们很难想象一个优秀程序乱饥此员历经千辛万苦编制出来的程序被用户认可那一瞬间,眼泪不夺眶而出;我们很难想象一个优秀程序员在自己遇到困难的时候,不大声叫喊永不放弃。对于优秀程序员来说付出和收获都是充满激情的。而他们的激情不但哗迅感染着自己,而且感染着团队,感染着用户。

市场意识

市场意识是许多程序员最不具备的,有的程序员甚至反感市场意识,认为软件卖不卖钱是公司的事,自己只要把程序做好了就行了。借用一句“只拉车不看路”来形容这类程序员是最为贴切的。有些人从事编程的确是个人兴趣所致,他们喜欢在编程中找到自身的乐趣。但是,更多的人从事编程是为了谋生,是为了获取更多的收入。程序员树立市场意识,就是要做有市场价值的软件,做价值最大化的软件。虽然程序员在单位可能无法挑选开发的项目,但是程序员可以在有市场价值的软件开发上投入更大的精力,可以在业余时间开发有价值的软件。如果公司的软件市场没有前景,程序员应该未雨绸缪,做好最坏的打算,选择更有成长性的软件公司。否则,编程能力再强也是英雄无用武之地,达不到自己的预期。做市场价值最大的软件,让自己市场价值最大化应该是优秀程序员必备的素质之一。

永不放弃

程序员可能和其他行业从业人员不太一样,一般遇到困难,其他人员可能进行一番战斗后,无法克服就会放弃了。而程序员遇到困难就可能让程序无法进行下去,他们必须要把问题解决了程序才能完成。优秀的程序员不但敢于解决各种编程中的问题,而且还会善于解决各种问题。有的程序员遇到问题,随便找一种方法就给解决了,他可能不问解决后会带来什么新的问题,不问是否有更好的解决方案。而优秀的程序员往往追求最优的解决方案,往往在这过程中遇到千难万难,但是他们抱着永不放弃的信念,一日复一日,一月复一月,甚至一年复一年去实现自己的目标,最终他们能收获其他程序员无法收获的胜利成果,使得他们水平高高在上。

团队精神

现代的程序员和以前的程序员已经完全不一样了,原来程序员是全能性程序员,现在程序员是专业的程序员。尽管还有很少的程序员集设计、开发、销售、维护为一身,但是专业化的潮流不可阻挡,这就表示一个软件或多个软件是靠多个人开发的,他们通过分工协作从事着整个制作工作。程序员写的程序不仅要给自己看,而且要给团队其他人看,当发现程序问题的时候,团队成员可以一起帮助分析解决。如果没有团队精神,任何一个程序员也不可能有真正的成功,即使成功也是渺小的、暂时的。因此要获得事业上的成功,必须要依靠团队的力量才能达到。优秀程序员的优秀之处是可能并不只是关心自己的优秀,而是更关心他周围的程序员和其他人员是否优秀。让更多的优秀的人在一个团队中工作形成一个优秀的团队,这样的程序员才是充满竞争力的,是战无不胜的。

面向对象

很多人都是从面向过程思维方式开始学习编程的,随后也学了面向对象编程方法,也用了面向对象开发工具和语言,但是,真正的用面向对象方法来编程、来设计编程构架、来进行功能分析、来需求分析还是很少的。优秀的程序员一定具备面向对象的思维方式,从设计到编程都贯彻着面向对象的痕迹,他们把面向对象作为思维的日常化。具有面向对象思维方式的人,可以对复杂混乱的事物进行抽象,具有很强的分类能力,化繁为简,程序更加模块化,程序共享度更加提高,具有大程序、超大程序开发能力。有关面向对象的问题,我在前面的文章中已经阐述很多了,这里就不在重复了。

基础扎实

要想自己编程能力有一个持续的提高,我们就必须要注重自己的基础建设,让自己能力的提高都建筑在每一层的坚实基础之上,即使能力再高,也不会被风吹得摇晃,尽显强者的刚毅不摧。我们不要小看已经学过的 *** 作系统原理、编译原理、程序设计原理、数据库设计、数据结构设计、甚至计算机英语。这些基础是否扎实直接影响到以后的各种应用技术的掌握和掌握的程度。而大多数新的技术都是在原有技术的发展,因此掌握好原有的技术对最快掌握新技术是有很大的帮助的。此外,扎实的基础也使程序员把精力放在创新和解决疑难问题上,这样优秀程序员的处理能力将会大大增强。

条理清楚

普通的程序员则不太注重条理问题,他们对可并行处理的语句从来不进行次序的考虑;对语句使用没有一致性地使用,显得很随意;对处理流程往往一气呵成,一个函数能有上百上千条语句。他们最大的特点就是从来不多问一个为什么!而优秀程序员更注重程序条理,每个语句、语句的先后、语句的行数、函数命名等等他们都能说出为什么这样做。这种条理清楚地素质使得程序员能够把控程序的制作时间进度,也有利于大程序的任务的分隔。大凡程序员编写的程序能被其他人看懂的,基本上都是条理很清楚的。程序有条理,说明程序员的思维很有逻辑性,优秀程序员是最讲究逻辑的。一个优秀的程序员能把一个庞大复杂的程序说的有条有理,并且在程序上也显得可读性极强。条理清楚地表现形式之一,就是程序函数多,函数中的语句少。从这个意义上来说,优秀程序员也是优秀的设计师,项目经理。因为他们的逻辑是一脉相承的。

全面细致

我这里说的全面有五个方面的含义:第一、程序员要在编程过程中要全面细致,不要有遗漏,而这些遗漏往往造成了编译错误,需要花费大量不必要的时间去查改。第二,程序员要在设计过程中要全面细致,不要在功能设计方面有遗漏,尤其不要忘记例外情况的处理,许多功能上运行出错都是这种原因造成的。第三、程序员的编程技术要全面,要尽可能多掌握各种编成技术,例如,程序员不但要掌握前台开发技术,也要掌握后台开发技术,既要会文件处理,也要会数据库处理,既要会编写程序也要会制作安装盘,等等。第四、程序员的业务知识要全面,程序员不但要掌握编程技术,而且要主动学习和掌握用户的业务知识,通过对业务知识的掌握,才能更好地理解功能的意义,有助于编写更使用的程序。第五,程序员的知识面要广。优秀的程序员不但要掌握编程知识和用户业务知识,而且要有意识地拓宽自己的知识面,多关心新闻、时事、时尚、经济、技术、文艺、文学等各种知识领域,在知识的海洋中去畅游工作的轨迹,你就会有万事相同的感觉,这些知识会潜移默化地影响你编程的风格和效率。就象我写的《好的程序象一首诗》一样,程序中有诗。

求新求精

IT发展之迅速、技术更新之快捷,使得IT成为公认的追逐潮流的行业,因循守旧,固步自封,甚至年龄的增长都会导致程序员被这个行业所淘汰。有时候叹息行业无情也是情理之中。面对潮流的挑战,优秀程序员应该是无所畏惧的,他们应该始终怀有一种追求新技术的愿望,有一种追赶潮流,伴随潮流的勇气和胆识。因为这个职业就注定了这样的工作方式。当然,在新技术满天飞的情况下,我们不能也不可能有什么新技术就去学什么新技术,我们可以花很少的时间去浏览和关注各种技术的发展状况,但是对于自己所要掌握的新技术则要不惜代价,花大力气去学习它掌握它。掌握新技术的价值评判是用于软件的开发,用于更好地解决以往程序中存在不可解决的问题,用于所开发软件的销售价值。优秀的程序员会很好的选择新技术,并利用新技术立即去革新自己的程序,并使程序投向市场产生价值。那种以学习、知识储存的态度对待新技术都是不成熟的程序员。

几年前,当记者克莱夫·汤普森开始写他的新书《编码和编码世界》时,他去看了音乐剧《汉密尔顿》。他的外卖?汤普森告诉我,开国元勋基本上都是现代程序员。

“汉密尔顿、麦迪逊和杰斐逊进入了”“发生这种事情的房间',汉密尔顿(出来)写了20行代码,基本上说,‘华盛顿将成为这个权力中心,将成为国家银行’。”。“他们推动了他们的软件更新,彻底改变了这个国家。”

贯穿历史,汤普森说,“一个专业的班级拥有巨大的力量。班上的人所能做的,突然变得极其重要,极其政治和关键。社会急需他们的技能,只有少数人能做出影响巨大的决定。”

1789年,这些人是律师或法学家;2019年,他们是编码者。“他们制定了规则来决定我们要怎么做。他解释说:“如果他们能让事情变得更容易,我们就绝陆会做更多的事情。”。“如果我们想了解当今世界是如何运作的,我们就应该了解一些关于编码者的东西。”

所以汤普森已经破解了所有这些东西的思维框架—(也是?)-强大,非常人性化。在他的新书《编码者:建立一个新部落和重塑世界》中,他阐述了编程的历史,强调了女性所扮演的先锋角色。他将这一行业的发展追溯到它目前的白人男性化状态,并揭示了同质化带来的挑战。汤普森组织了对各类程序员的采访,从Facebook和Instagram每天影响数亿人的程序员,到那些痴迷于保护数据免受同一家大型科技公司影响的程序员。根据他为史密森、连线和 *** 杂志数十年的报道,他向我们介绍了代码背后的思想,正在塑造和重新定义我们日常世界的人们。

编码者:一个新部落的建立和世界

的重塑来自著名的科技作家游宏瞎克莱夫·汤普森(Clive Thompson),在一本询问他们是谁的书中,这位杰出的人类学家对当今世界上最强大的部落计算机程序员进行了估算,他们是怎么想的,在他们的世界里什么称得上伟大,什么应该让我们停下来。

程序员中最常见的个性特征是什么?什么是优秀的神空程序员?”

有一些明显的特点,你可能期望擅长编码的人通常擅长逻辑性和系统性的思考,并将大问题分解成小的、可解决的步骤。

但是还有其他一些事情可能会让你感到惊讶。编码是难以置信的,令人沮丧的。即使是最微小的错误——一个放错位置的括号也可能会破坏一些东西,而且计算机通常不会给你任何关于什么是错误的简单线索。成功编码的人是那些能够处理这种史诗般的,不间断的,日常挫折的人。好的一面是,当他们最终把事情做好时,快乐和喜悦的爆发与他们在生活中所经历的任何事情都不一样。他们沉迷于此,这有助于他们度过接下来的几个小时和几天的挫折。

编码在某种程度上是一个非常艺术的企业。你在用文字制造东西,机器,所以它有手艺任何喜欢制造东西或做手艺的人,都会在编码中找到同样的乐趣。而编码员在工作的时候也经常寻求深度、深度的隔离;他们必须如此努力地集中精力,如此多的时间,以至于他们渴望大量的“独处时间”。不要在他们恍惚的时候打扰他们,否则你会毁掉数小时的精神宫殿建筑!从这个意义上说,它们让我想起了许多诗人或小说家,他们也更喜欢在长时间的沉浸式孤独中工作。

,但事实是,编码也是很多很多很多的实践。如果你愿意投入10000小时,几乎任何人都可以学会合理地做好它。这不是魔术,他们也不是魔术师。他们只是努力工作!”

女性最初在这个行业占据主导地位,但现在只是科技公司程序员的一小部分。他们为什么和如何被赶出去?”

有很多原因。[早些时候,]你看到很多女性在编码,因为(招聘)纯粹是基于能力和优点,善于逻辑,善于推理。但是,从20世纪60年代末70年代初开始,编码开始发展出这样一种理念:编码者应该更像一个脾气暴躁内向的人。其中一些人只是许多性格内向、脾气暴躁的人开始蜂拥而至编写代码。

[当时,]公司[意识到]软件不仅仅是他们工资单上的这一小部分,而是一个巨大的东西,成为他们组织的核心,例如他们如何做决定以及如何收集数据。这些公司说,好吧,我们要有编码员,他们需要有可能升为经理。那时,没有人雇佣女性做管理。

所以,你看到一个潜在的非常擅长编码的女性,但你会说,“对不起,15年后我们不会让她成为经理”,所以他们甚至都不会麻烦雇她来编码。即使你有女程序员在工作,当你在一个大项目上崩溃,每个人都在全职工作,女人们也必须回家。从字面上来说,公司规定女性晚上八点以后不能在公司上班,有些州的法律规定如果怀孕,她们就必须离开工作岗位。在大学里,在计算机科学学位的头20年里,

,你看到男人和女人的兴趣在不断上升。然后在20世纪80年代中期,发生了一些事情。所有像我这样的孩子(大部分是男性)都是在编程的过程中长大的,第一台电脑开始进入校园。这在课堂上造成了两分法。在第一年的课上,感觉就像一群自大的男孩,他们已经知道如何编码了,还有一群新来的男人,主要是女人,他们以前没有做过。教授们开始教黑客的孩子们。所以,所有在退学前没有编码的女人和男人。这些课程开始变得全是男性,而且基本上也在进行,“你知道,如果他们已经四年没有黑客攻击了,我们不应该让任何人进入这个程序。”

有连锁反应。这个行业变得非常,非常男性化,它开始期待女性不在场是正常的。它不被视为一个需要解决的问题,在大学和公司中从来没有受到过挑战。所以女人们会离开,用她们的才能去做别的事情。的确,在过去的十年里,学术界和公司开始考虑文化存在的事实,并被钙化了,需要解决。1982岁的“KDSPE”年轻人在电脑上编程。(丹佛邮递员)“KDSPs”的结果是“黑客”有点误入歧途。“KDSPE”“KDSPs”当公众听到“黑客”这个词时,他们通常会想到那些闯入计算机系统窃取信息的人。不过,如果你和真正的程序员在一起,他们称之为“cracker”。

对程序员来说,“hacker”这个词的意思就大不相同了,而且更具赞美和乐趣。对他们来说,“黑客”是任何对技术系统如何工作感到好奇的人,他想深入研究,找出问题所在,也许能让它做一些奇怪和新的事情。他们被好奇心驱使。当他们说“黑客”时,他们通常只是在谈论一些有趣的和有用的编码,制作了一个解决问题的小工具,找出如何使用现有的代码,并让它做一些新的和有用的事情。当他们说某件事是一个好的“黑客”时,他们指的是任何解决问题的方法,即使它做得又快又乱:关键是,嘿,问题已经解决了

大多数科技界以外的人从流行文化描述中了解编码者和硅谷。怎么办这些陈述漏掉了?他们做对了什么?”

在传统上,电影和电视中对编码器的大多数描述都很糟糕。通常他们会让他们做一些根本不可能的事情,比如用几下键盘就可以侵入五角大楼或空中交通管制系统。他们几乎总是把焦点放在“黑客”的阴暗面上,即侵入远程系统。我明白为什么,这是一出好戏!”

,但真正的程序员整天做的事情并没有那么引人注目。事实上,很多时候他们根本不写代码:他们盯着屏幕,试图找出代码中的错误。电视和大屏幕上的编码员不断地打字,手指模糊,代码从他们身上倾泻而出。在现实世界中,他们只是坐在那里想大部分时间。好莱坞从来就不擅长捕捉实际的编码工作,这是持久的挫败,因为你试图使一段破烂的代码最终工作。

说,最近有一些更好的描述编码器!《硅谷》(Silicon Valley)是一部喜剧,它模仿了科技界自鸣得意的过激行为,因此他们做了一项有趣的工作,歪曲了科技创始人和风险资本家关于他们的科技将如何“让世界变得更美好”的所有花言巧语。但他们常常很好地捕捉到编码者的心理。程序员常常会奇怪地痴迷于优化看似愚蠢的事情,而这正是真实的程序员所想的。他们会在漫长的,史诗般的,与世隔绝的,夜深人静的jags中尽他们最大的努力,jags也非常逼真。

同时,“Robot先生”很好地展示了真正的黑客行为,如果屏幕上有一段代码的话,它通常是有效的!“停止并着火”是另一个很好的例子,它展示了一个超级天才的程序员在编写代码的同时是多么的惊人,但是在想象一个普通人想要使用的有用的产品时却是多么的糟糕。这是非常现实的。

为什么你认为程序员没有预见到像Twitter和Facebook这样的平台会被坏人 *** 纵

他们很天真,原因有很多。其中一个原因是,他们大多是年轻的白人,很少有过女性或有色人种在网上经常遇到的那种骚扰的个人经历。所以对他们来说,创造一个工具,让人们更容易在网上发布信息,在网上互相交谈,这会有什么问题呢?公平地说,他们确实是正确的:社会从他们在Facebook、Twitter、Instagram、Reddit或其他任何地方创建的交流工具中受益匪浅。但由于他们没有战争游戏的方式,恶棍和巨魔可以使用他们的系统来骚扰人们,他们没有在早期提出许多有用的保护措施,以防止它,甚至发现它正在进行。

所有这些服务的金融模式是“使它免费,快速增长,获得数百万用户,这是一个快速增长的好方法,但也意味着他们会制定算法来筛选文章,并找到“热门”的文章进行推广。反过来,这意味着他们最终大多会提升那些引发热点情绪的帖子,比如引发党派愤怒、愤怒或搞笑的帖子。任何一个每天筛选数十亿个帖子以寻找快速增长的帖子的系统,毫不奇怪,都会忽略那些枯燥而有条理的帖子,而选择那些极端的帖子。

,当然,这也使得这些系统很容易玩。当俄罗斯的附属特工想要干涉2016年的选举时,他们意识到他们所要做的只是在Facebook上发布一些东西,假装美国人在政治问题上采取极端和两极分化的立场,这些东西会在算法中得到分享、提升和投票。它奏效了。

美国人仍在接受这些大型科技公司在我们的政治中所扮演的角色。这在他们的员工中算什么呢?”

你在更多的新兴市场中看到了更多的道德思考雇员。我听说过Facebook员工的故事,他们现在有点不好意思承认自己在派对上的工作地点。这是新的;不久以前人们就开始夸耀它了。你还会看到一些迷人的劳工起义。谷歌和微软最近有各种各样的事情,从员工 *** 到员工 *** ,当时科技员工认为他们不喜欢他们公司为军方或(移民执法部门)工作。这也是非常新的,而且可能会增长。如果员工变得不耐烦,科技公司会不顾一切地雇佣和留住技术人员,这是一个致命的弱点。

你的书充满了精彩的轶事和故事。有没有一个你认为对科技行业和编码者最具启发性的?”

我最喜欢的是Facebook上的“Like”按钮。发明它的程序员和设计师最初希望它能通过一键点击轻松显示你喜欢的东西,在平台上释放积极性。这是一种典型的效率策略,就像程序员看待世界的方式。而且成功了!它确实释放了大量的积极性。

,但它很快就产生了奇怪的、意想不到的,有时甚至是糟糕的副作用。人们开始沉迷于他们喜欢的东西:为什么我的照片没有得到更多的喜欢?我应该换个帖子吗?我应该说些更极端或更愤怒的话来引起注意吗?五年后,发明“喜欢”的人对自己创造的东西有了更复杂的想法。他们中的一些人已经完全不再使用社交媒体。

这是一个伟大的故事,因为它展示了即使是一小段代码也有多么强大,以及它如何产生连其创建者都无法预见的副作用。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存