`

(转)作一个真正合格的程序员

阅读更多
1:团队精神和协作能力

  团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
  2:文档习惯
  文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
  3:规范化的代码编写习惯
  知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
  4:需求理解能力
  程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
  5:模块化思维能力
  作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
  6:测试习惯
  测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
  7:学习和总结的能力
  程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。
  作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
  1、 需求分析能力
  2、 整体框架能力
  3、 流程处理能力
  4、 模块分解能力
  5、 整体项目评估能力
  6、 团队组织管理能力
  1,激情
  我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。
  2,自学好学
  编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。
  3,聪明
  聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。
  4,隐性的经验
  —好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。
  5,技术多样性
  由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。
  6,资格证书
  资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。
  原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。
  总结而言,优秀的程序员通常有一下特点:
  对技术充满激情
  将编程作为一种爱好
如果你允许会滔滔不绝地跟你谈论技术
有过个人的开发经历(与4意思相同)
  坚持认为某种技术最好
  如果让他用他认为不好的技术他会非常别扭
  聪明、健谈、兴趣广泛
  在大学和工作前就开始接触程序
分享到:
评论

相关推荐

    作一个真正合格程序员的七种素质

    作一个真正合格程序员的七种素质

    作一个真正合格的程序员要知道的

    作为一个程序员要知道的。。。。 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

    《程序员》2011年08期

    作一个真正合格的程序员,应该具有的素质。 1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以...

    《程序员》2011年第2期

    作一个真正合格的程序员,应该具有的素质。 1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以...

    做一个合格软件工程师基本的素质!

    做一个合格软件工程师基本的素质! 作为一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

    合格的PHP程序员必备技能

    要想成为一个合格的PHP程序员需要掌握许多技能,这篇文章就向大家介绍了一个合格的PHP程序员必备技能,想要真正了解php程序的朋友一定仔细阅读,判断自己具备多少个技能。

    《IT职业素质修养》论文

    作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。 1:团队精神和协作能力 这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在...

    从CodingFan到真正的技术专家

    中国有很多小朋友,他们...程序员基本素质:作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。1:团队精神和协作能力把它作为基本素质,并不是不重要,恰恰相反,这是程序员

    黄老师入门级C语言视频教程带你零基础学C语言 视频.txt

    如果你想真正成为一名懂底层、懂C语言的合格的程序员. 如果你想进世界五百强或研发型的技术公司.那么你都需要此套教程!都需要真正深度理解C语言的精髓! 此套教程以专题的形式探讨C语言的本质,探讨人们不常知道的...

    程序员为什么还要刷题-interviewer-hell:我对常见面试问题的有趣解决方案

    我经历过不少公司的面试过程,其中一个更令人沮丧的方面是早期技术筛选问题的重复性。 因此,很自然地,我开始开发与面试官可能期望的不太匹配的解决方案。 将其视为恶意合规,应用于技术面试。 随意使用这些解决...

    如何学好C++(自我的经验及描述)

    那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师、高级C++服务端工程师、项目经理、技术总监、我想跟大家分享下我自己的学习心得与体会!Linus曾说过:“C++是一门很恐怖的语言,而...

    Frog人工生命-其他

    目前它的第一个初步目标是:造出一个真正意义上的人工生命:草履虫(备注:基本上已完成)。它必须具备以下前四个特点: 1、脑结构由电脑生成:神经网络由电脑算法生成,但是电脑算法仅限于模拟环境,而不是直接参与...

    Toad 使用快速入门

    和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译到当前光标、从光标开始编译。在运行出现错误时,存储过程停止到有问题的语句。用户可以使用快捷...

    深入理解Android:卷I--详细书签版

    5.3.1 一个变量引发的思考 109 5.3.2 常用同步类 114 5.4 Looper和Handler类分析 121 5.4.1 Looper类分析 122 5.4.2 Handler分析 124 5.4.3 Looper和Handler的同步关系 127 5.4.4 HandlerThread介绍 129 5.5...

Global site tag (gtag.js) - Google Analytics