真样才是一个合格的职业程序员?

charles_hhb 2003-10-01 01:41:44
掌握一种或多种开发语言,java, C++或者C#
掌握一种或多种企业应用框架, j2EE或者.NET
了解一种或多种软件开发的流程,UP,XP,scrum等
理解面向对象的概念
能有意识的运用面向对象的概念来做分析设计
能运用UML来描述面向对象的设计
掌握单元测试技术
懂得设计模式并能有意识的运用设计模式
积极的交流能力和主动学习的能力
能和其他人进行团队合作,适应团队开发环境
很强的责任感和职业操守

Charles
www.redsoftfactory.com
...全文
35 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles_hhb 2003-10-07
  • 打赏
  • 举报
回复
>懂对方(客户)的业务是根本
>系统分析的思路要好
当然。这是具备基本职业素质之后需要追求和提高的目标。

>编程只是工人干的活
这样说很多大师都是工人了。一个以编程为耻的人永远不可能成为一个合格的程序员,更不用说team lead项目经理,CTO了。也正是认为编程不过是蓝领工人的工匠活,自然也不会认识到不是会写几行代码就可以做一个职业的程序员的。

其实就像中国男足和男篮一样,为什么和国外的职业队水准差这么远?很简单,态度问题。程序员也一样。

xiechangan007 2003-10-07
  • 打赏
  • 举报
回复
懂对方(客户)的业务是根本
系统分析的思路要好
编程只是工人干的活
erfangto 2003-10-07
  • 打赏
  • 举报
回复
那就是努力做主管
BirdGu 2003-10-07
  • 打赏
  • 举报
回复
为什么总是要程序员成为业务专家,而不是给开发团队配一个业务专家呢?
f3611018 2003-10-07
  • 打赏
  • 举报
回复
关注
dsfl 2003-10-01
  • 打赏
  • 举报
回复
从老板的角度这是合格的程序员;
从个人的职业生涯层面看,合格的程序员首先应是一个积极交流和主动学习的人,并对软件开发有者无比的热情,能掌握有一定技术门槛的软件开发技能(注意,软件开发只是一种技能,不是什么高科技),提供核心竞争力;如果对软件开发的热情消退,作为程序员,要积极准备不做程序员,向管理或技术指导与咨询方向发展,要么做项目管理(管理路线),要么做技术总监或咨询顾问(技术或行业经验路线)。
charles_hhb 2003-10-01
  • 打赏
  • 举报
回复
>楼主那些是作为程序员的要求吗?
当然。team lead何PM的要求比这高很多。
charles_hhb 2003-10-01
  • 打赏
  • 举报
回复
>作为程序员,要积极准备不做程序员,向管理或技术指导与咨询方向发展,要么做项目管理
>(管理路线),要么做技术总监或咨询顾问(技术或行业经验路线)。
如果你做到这个位置后,你是否会要求你下面的程序员具备这样的素质?如果你自己都不知道或做不到一个这样的程序员,你又如何指望你的程序员能做到?
branchsky 2003-10-01
  • 打赏
  • 举报
回复
楼主那些是作为程序员的要求吗?
charles_hhb 2003-10-01
  • 打赏
  • 举报
回复
>真正达到楼主所要求的程序员并不多哦!
呵呵,这些要求实在北美找到一份decent工作的最基本要求。
ozzzzzz 2003-10-01
  • 打赏
  • 举报
回复
Charles
赶快想想办法吧 你的信誉值太低了 马上你就没有办法发言了
klbt 2003-10-01
  • 打赏
  • 举报
回复
真正达到楼主所要求的程序员并不多哦!
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。   作一个真正合格程序员,应该具有的素质。   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意思相同)   坚持认为某种技术最好   如果让他用他认为不好的技术他会非常别扭   聪明、健谈、兴趣广泛   在大学和工作前就开始接触程序

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧