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

作者&投稿:只到 (若有异议请与网页底部的电邮联系)
一个优秀的程序员应该具备什么素质~

一个好的程序员必备条件之一就是严谨的思维
1、养成良好的书写代码的习惯,该加注释的时候一定要加注释,该大写的地方一定要大写,变量命名不能模糊不清。这是基础,是为了让别人能看明白你所写的代码,不能你写的代码只有你自己才看的明白。

2、注意所写软件的版本控制。

3、勤奋学习最新的技术,计算机技术日新月异,这点我不说相信你也知道。

4、养成写开发文档的好习惯,再接到一个项目时,第一件事情是进行需求分析,然后写开发文档,把你每一步要做什么都先写清楚,再动手做。

5、不要怕技术难题,在计算机领域,只有不能解决难题的人,没有人解决不了的难题。

6、虚心向他人学习,即使技术实力比你差很多的人,也肯定会知道一些你所不知道的技术点。

作一个真正合格的程序员,应该具有的素质。

1:团队精神和协作能力

团队精神和写作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。

2:文档习惯

文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。

3:规范化的代码编写习惯

知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。

4:需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。

5:模块化思维能力

作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。

6:测试习惯

测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。

7:学习和总结的能力

程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。


作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:

1、 需求分析能力

2、 整体框架能力

3、 流程处理能力

4、 模块分解能力

5、 整体项目评估能力

6、 团队组织管理能力

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

  1. 心怀理想
    我认为优秀程序员首先具备的素质是心怀理想。我曾说过许多程序员都是冲着“比尔.盖茨”而来的,是被他的巨大成功所感召的。可以说不想当比尔盖茨的程序员不是好程序员。大家要记住,比尔盖茨的成功是两个方面的成功,一个是他个人的成功,另一个是IT行业的成功。作为个人成功,只要个人能在众人中脱颖而出,应该可以说行行都可以出状元的。而行业的成功则表现出行业的生命力和朝阳性。而从事这个行业的人则能够伴随着这个行业的发展而成功。在IT软件行业中,一个好的软件通过无数复制使用能产生巨大的经济效益和社会效益,而好的软件往往是程序员所编制的,与其有很大的关联性,这就意味着程序员在这个行业存在着成功的必然可能。现实中除了比尔盖茨,还有许许多多中外IT名人都是程序员出身的,他们的成功昭示着程序员成功的可能。
    既然程序员有成功的可能,那优秀程序员一定是心怀成功的理想,这种理想激励他们不断进取走向成功。我这里说心怀,是说程序员不必天天把理想挂在嘴边,而是把理想放在心里,时刻牢记自己的目标是什么!目标是成功的一半,有了目标,优秀程序员可以不断地调整自己,以最优的方式去接近和实现自己的目标。
    现实中还有两类程序员,一类是也想成为比尔盖茨,但是始终是想,最终只是一种幻想。另一类知道比尔盖茨,但是望而却步,从不敢有半点奢望,做到哪就算到哪,顺其自然。这两类程序员都不具备优秀程序员的基本素质。


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

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

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

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

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

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

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

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

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



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

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

二、充满激情

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

三、市场意识

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

四、永不放弃

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

五、团队精神

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

六、面向对象

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

七、基础扎实

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

八、条理清楚

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

九、全面细致

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

十、求新求精

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

  1. 编程语言能力。不用多说,作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累

  2. 编码能力。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。

  3. 面向对象思维能力。如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。

  4. 英语管理。新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,贵在坚持。

  5. 利用工具能力。工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。

  6. 学习能力。在IT业混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。当然,不能只学习技术,作为程序员还要关注的很多,要经常练习自己的软技能,比如沟通能力,表达能力。

  7. 创造能力。普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。

  8. 文档能力。也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。

  9. DRY。DRY是一种原则,就是Don”t Repeat Yourself.这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。

  10. 抽象能力。 抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。



  1. 团队精神和协作能力 :

    把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。

  2. 文档习惯:

    作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

  3. 规范化,标准化的代码编写习惯:

    作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。

  4. 需求理解能力:

    作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

  5. 复用性,模块化思维能力:

    复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。

  6. 测试习惯:

    软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。

  7. 学习和总结的能力:

    善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。




程序员最基本的要求是什么
程序员基本素质:作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质。1:团队精神和协作能力 2:文档习惯 3:规范化,标准化的代码编写习惯 4:需求理解能力 5:复用性,模块化思维能力 6:测试习惯 7:学习和总结的能力 ...

作为一个好的程序员,都需要具备哪些基本的
1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质。2:文档习惯 文档是一个软件系统的生命力。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。3:规范化的代码编写习惯 知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长...

怎样才能成为一个程序员?
1、数学基础。从计算机和应用的发展历史来看,计算机的数学模型和体系结构等好多都是由数学家提出的,包括最早的计算机也是为数值计算而设计的。因此,要学好计算机是需要一定的数学基础的,初学者有高中水平就差不多了。2、逻辑思维能力的培养。程序员必须要有一定的逻辑思维能力,逻辑思维能力的培养更需要...

如果想成为一个程序员应该学习什么知识
所以成为一个程序员就要学编程语言。学编程只是第一步。作一个真正合格的程序员,应该具有的素质:1:团队精神和协作能力 2:文档习惯 3:规范化的代码编写习惯 4:需求理解能力 5:模块化思维能力 6:测试习惯 7:学习和总结的能力 作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,...

作为软件工程师应该具备哪些基本素质
1:团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没...

程序员分几种,做程序员应具备什么样的基础知识
作一个真正合格的程序员,应该具有的素质。1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种...

学程序员需要什么基础
要成为一名程序员,打好基础至关重要。首先,数学功底要扎实,特别是逻辑思维和数据结构的理解。英语能力也很重要,因为编程文档和技术资料多为英文,熟练掌握基本词汇和术语能更好地与国际社区交流。其次,要熟悉计算机基础知识,包括操作系统、网络原理等,这有助于理解程序如何在实际环境中运行。除了理论...

一个程序员要具备的基本素质是什么?
团队精神和协作能力 :把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。文档习惯:作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,...

做一个程序员要具备什么
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。 综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。 C语言简介 === 方案四 C++语言 & C++...

学习编程需要什么基础
因此,要学好计算机是需要一定的数学基础的,初学者有高中水平就差不多了。 2、逻辑思维能力的培养 。程序员必须要有一定的逻辑思维能力,逻辑思维能力的培养更需要长时间的实践锻炼。但是也不必操之过急,逻辑思维说白了是一个技术,和打游戏,把妹,打拳击一样,多进场练习才是关键。如果做到这一点...

桦川县17652632578: 作为一个好的程序员,都需要具备哪些基本的 -
度袁信敏: 你好,小U来为您解答这个问题,众所周知,程序员是从事程序开发、维护的专业人员.作一个真正合格的程序员,需要具备:1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质.2:文档习惯 文档是一个软...

桦川县17652632578: 程序员要具备那些? -
度袁信敏: 工程质量是检验优秀程序员的唯一标准,一般的程序员的思维需要有一个明确的目标(功能),逻辑上行得通的就能实现,很少去考虑为什么要这么做?这样的产品也只是基本满足,但是大多数程序来说,就这个基本满足就已经是加班加点的去...

桦川县17652632578: 一个程序员需要哪些素质 -
度袁信敏: 心里素质最总要 要耐下心 其次身体素质 要能坚持编程 现在天天坐在电脑前几个小时编程 身体累死了 !!!至于编程习惯 一定要好好培养 平常编程的时候 注意语句的前后对应 注意格式!!

桦川县17652632578: 程序员的 职业素养? -
度袁信敏: 说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么...

桦川县17652632578: 作为一名优秀的程序员,要具备哪些基本功 -
度袁信敏: 学习程式设计不必苛求一定要从某一种语言入手,可以选择自己比较容易接受的一种进行学习.从中主要学习的是编程本身的思想,学习的是用程式设计的眼光来看待问题.或许,学习的效果不能马上看到,但是可以学到扎实的基本功,而这对...

桦川县17652632578: 什么样的人适合做程序员?程序员应该具有什么样的素质程序员四大禁忌 -
度袁信敏: 程序员应该具有下列素质: ①耐得住寂寞,静不下心来的人做不得. ②禁得起熬夜,一个程序不是一天百两就能做好的,有度时写程序刚进入状态,此时即使夜已深,也不能(不愿)停下来. ③要严谨细心,程序设计语言不是人的自然语言,本身就是严格的,程序员有一处不小心,都可能导致所内设计的程序错误或者不能达到设计目的,更严重的会导致电脑死机甚至容系统崩溃. ④要能勇于挑战难题,以解决一个程序设计难题为乐.

桦川县17652632578: 做个程序员应该具备哪些基本条件 -
度袁信敏: 我现在就是个程序员,以我的新身经历告诉你,如果你只是学过一门语言是远远不够的,必竟现在用C作开发的并不多,但是用C写程序挣的的确不少,一般都是大公司会用到C,所以你的学历也相对要高,至少是研究生.目前软件行业用的最多的还是Java和.NET,你可以在有C语言的基础上精通这两种中的一种,我希望你精一门,而不是什么都会,又什么都不强.这是最要命的,还有就是熟练一门数据库,比如Oracle和SQLServer,多从网上接一些小项目,这对你以后找工作有很大的帮助.总之,做程序员这行业挺辛苦的,你要做好心理准备,加班是常事,而且要随时保持学习,否则必然被淘汰.加油

桦川县17652632578: 程序员必备的素质有哪些 ??? -
度袁信敏: 1、养成良好的书写代码的习惯,该加注释的时候一定要加注释,该大写的地方一定要大写,变量命名不能模糊不清.这是基础,是为了让别人能看明白你所写的代码,不能你写的代码只有你自己才看的明白.2、注意所写软件的版本控制.3、勤奋学习最新的技术,计算机技术日新月异,这点我不说相信你也知道.4、养成写开发文档的好习惯,再接到一个项目时,第一件事情是进行需求分析,然后写开发文档,把你每一步要做什么都先写清楚,再动手做.5、不要怕技术难题,在计算机领域,只有不能解决难题的人,没有人解决不了的难题.6、虚心象他人学习,即使技术实力比你差很多的人,也肯定会知道一些你所不知道的技术点.

桦川县17652632578: 一个软件工程师应该具备什么样的素质? -
度袁信敏: 软件企业要求基础软件工程师具备六大基本素质,即良好的编码能力、自觉的规范意识和团队精神、认识和运用数据库的能力、较强的英语阅读和写作能力、具有软件工程的概念和求知欲和进取心.良好的编码能力.软件人员的一个重要职责...

桦川县17652632578: 程序员应具备什么素质?
度袁信敏: 程序员素质要求编辑团队精神和协作能力团队精神和协作能力是作为一个程序员应具备的最基本的素质

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网