黑马程序员技术交流社区

标题: 大家认为做一个优秀的程序员必备哪些素质。 [打印本页]

作者: 成果    时间: 2012-2-8 17:51
标题: 大家认为做一个优秀的程序员必备哪些素质。
作一个程序员不难。但真正要成为一个优秀的程序员必备哪些方面的素养咧。大家来发表看看。

该贴已经同步到 寻找幸福的13狼的微博
作者: 何洪森    时间: 2012-2-8 18:04
技术一定是必须的,学习能力一定要强,因为计算机更新换代也所不定,所以
要有活到老学到老的态度,其次为人端正,做事踏实认真必不可少,最重要的
还有就是要有团队精神。下面的继续补充吧...
作者: 彭沛东    时间: 2012-2-8 18:14
    一种探索的钻劲,一种不怕bug的乐观,一种坚持学习的态度,当然、还有一群非常好的朋友。
作者: 李泽霖    时间: 2012-2-8 18:29
程序员必备的七种素质
1:团队精神和协作能力
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。任何个人的力量都是有限的,即便如linus这样的 天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。一旦进入系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人是不合格的。

2:文档习惯
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要 高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

3:规范化,标准化的代码编写习惯
代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术 人员之间的协作。有些codingfans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己?根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。没有规范化和标准化的代码习惯,研发之间的协作是绝对不可想的。

4:需求理解能力
程序员需要理解一个模块的需求,很多程序员写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考 虑,性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险 和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

5:复用性,模块化思维能力
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个 系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每 一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。
一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在很多软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力,这是我们应当刻意克服的弊病。
6:测试习惯
作为一些正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要 的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对 整体系统建设的效率和可靠性就有了最大的保证。
测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定 性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。
当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。

7:学习和总结的能力
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。
但是学习也要找对目标,善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
作者: 张开开    时间: 2012-2-8 22:52
我觉得关键是要有求学的意识,奋进的精神,创新的思想!就Ok了
作者: 冯心程    时间: 2012-2-8 22:59
好思维 好耐性 好精神头
作者: 程洪    时间: 2012-2-8 23:55
首先 必须要喜欢软件行业(如果不喜欢 那怎么提优秀呢?加入软件行业 不一定是为了高薪 高薪的工作那么多 为什么不去做其他的呢?只是因为喜欢)
其次 必须有很强的自学能力(软件行业 时刻都在竞争 技术都是学来的 但是人人都在更新技术 谁又会有时间来教你呢?)
然后 能否坚持下去(持之以恒的道理 不乏 不能吃苦 不能坚持 很多人都在中途退缩了下来 因为他们乏味 他们反感 天天敲打着重复的代码 失去了新意 那么剩下的就是坚持)
最后 是否能创新(想成功走路 就要会爬 等会爬了以后 就要会走 能走了呢?发散思维 横着蹦 竖着蹦 只要你能想到 并且能实现 那么 你就会脱颖而出)
作者: 任增涛    时间: 2012-2-10 18:19
1、养成良好的书写代码的习惯,该加注释的时候一定要加注释,该大写的地方一定要大写,变量命名不能模糊不清。这是基础,是为了让别人能看明白你所写的代码,不能你写的代码只有你自己才看的明白。

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

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

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

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

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2