第一篇:程序员六大素养
程序员六大职业素养
说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么是程序员需要的职业素养?
案例一:问题团队A
D公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工工作难以监控的现象。公司想近期上OA系统,以加强公司的工作效率、支持快速增长的业务。经过几次与F开发公司的沟通后,双方确定了合作意向。安排有两年开发经验的开发工程师苏成,作为项目经理带领三个开发人员,开始了D公司的OA项目。
因项目不大,没有特别安排需求工程师,而由项目经理与客户确认需求后进行开发,初为项目经理的苏成信心爆棚:对外,他想当然地按照合同后附的简单需求说明草率开发;对内,他认为项目经理拥有绝对权力,任何关于开发的不同意见都听不进去。在第一期快结束时,苏成已与项目组成员发生了N次争吵,大家纷纷要求调离项目组,团队面临崩溃。
在两个月未与客户沟通的状态下,苏成项目组向D提供了OA系统一期产品,按合同规定包括了:员工管理一项功能和其中四个子项。看完基本功能演示后,D公司的HR经理Helen几乎崩溃——OA系统中员工管理没与考勤部分联系起来,而且在系统中增加一个新用户需要五步,十分繁琐,很多功能也与公司需求相差极大。
但是苏成却认为这些都是小问题,更让Helen气结的是要求增加一个小的统计功能时,他居然说做不了。后来才了解到,原来在开发时,项目组并没有留下文档,加之团队其它几个成员均已准备离开项目组,任何在此模块中的小小变化都会面临所有代码重新开发的局面,更不用说要新增什么功能了。
最终苏成辛苦开发了几个月却没有得到相应地回报,客户不满意,项目组成员不满意,研发部总监更是对他的能力产生了怀疑,在几经努力拿到D公司的第二期项目开发合同之后,更换了项目经理。
点评:程序员如何以明确需求为基础与客户沟通?
如果有专门掌握需求编写技术和经验的需求工程师作为客户和程序员之间的桥梁是最理想的状态。但以国内目前的国情,每个项目组都配有需求工程师的并不多。因此,正确地帮客户表达需求、正确地理解需求就成了程序员的基本素质之一。在此次调查中66.67%的被访者认为“能帮助客户正确提出需求”是程序员职业素养之一,可见在程序员内部已就此达成了相当的共识。认为“能使客户需求更完善”是程序员看重的职业素养之一,占到此次调查的55.13%,这说明超过一半的程序员认识到,帮助客户完善需求会节省双方的时间和精力。
那么如何才能提高自己的需求分析能力呢?以下分享几个有关需求的小技巧:
1.尽量提高自己的表达和沟通能力。良好的表达和沟通能力能在客户不能清楚表达需求时,融入到客户组织内部,了解客户的工作流程,与客户共同更好地、更准确地定义和分析需求。此次调查中60.90%的被访者认为沟通能力是程序员应具备的基本能力,但只有28.85%的程序员认为“表达能力”是程序员必备的基本能力。沟通固然很重要,但我们更应该进一步认识到准确表达自己的观点和意见也是成功沟通的基础之一。如果只“沟”而不“通”仍然是在浪费方面宝贵的时间。
2.应用多种方式了解需求。常用的方法有:问题分析法和建模分析法以及几种方法的结合。比
如在问题分析法中应用面向对象的思想,与客户的员工谈话,访谈首先要面向工作流程,面向任务,面向角色,也就是用面向对象的思想帮助客户理清思路。
3.不臆测需求。如果有专门的需求工程师,有一点要特别强调,就是在编码过程中当需求不明确时,必须与项目经理或需求工程师及时沟通,程序员不能自作主张地猜测客户的需求。
4.不过度承诺。很多销售人员拿到项目,向客户大包大揽,甚至完全不顾公司的现有开发能力向客户承诺很多功能。在定义需求阶段,一定要向客户说明“什么是我们能做的,什么是我们应该做的,什么是我们不能做的”。很多时候过度承诺导致了新功能无法实现的同时,原有功能也受到影响。在此次调查中,有59.62%(近六成)的被访者正确地认识到对客户提出的不合理需求拒绝得当也是程序员职业素养的一个重要方面,这是非常难得的。
案例二:严格开发流程的团队B
国资委某下属集团公司要上OA系统,C公司在研发能力、价格两个方面以综合分第一的成绩竞标成功。拥有10年项目管理经验的李石被任命为项目经理,并由他组建团队。李石对团队成员只有三个要求:分析能力、产品意识、较强的团队意识。
初选方案
需求确定后,项目有两个方案:更流行的BS模式和传统的CS模式。李石安排两个程序员前期负责选方案,分别基于两种模式开发用户权限管理系统的原型,给大家做演示,并结合客户特别评估每一个架构的优劣。
分析了BS/CS的特点、结合客户的需求,他们发现:
1.从流程的定制来看CS结构更加利于客户方便地进行“可视化”定制;
2.从公文的“不可修改、保密性”以及电子图章的“不可诋毁性”需求来看,CS框架更加利于实现DRM技术和数字指纹技术实现;
3.从公文的打印需求与一般WEB报表的差异性来看,CS框架更加适合对打印格式的定制与控制;
4.从客户提出的内部电子会议的实时性来看,CS框架明显优于BS框架的非状态性,能够做到更顺畅、更及时的沟通;
5.从系统的安全性来讲,CS框架更加适合硬加密系统(如加密狗、U盘Key)与系统的对接。
产品开发
在开发过程中李石强调了每个程序员的产品意识,取得了不错的效果。比如客户要求一个能上传文件的功能时,并没有提出UI需求,团队的B程序员并没有简单完成任务了事,而是做出一次能同时选取上传5个文件的程序。这种产品意识为客户使用带来方便,弥补了需求的不足。
团队配合在团队B中,每个程序员都做到了做完一个功能后与项目经理沟通进度、结果,并与负责测试的同事沟通,及时检测Bug,及时修改并及时回归。每个功能的实现都相对完善。及时的沟通与相互学习,还促进了团队磨合。
经过8个月的开发,OA项目第一期完成基本功能顺利上线。C公司已顺利拿到了客户第二期的开发合同。
点评:成功的开发需要这样的程序员
通过上面的案例,我们为程序员总结出如下素养:
1.学习和分析能力。每个团队都在成长,作为程序员这个群体就更需要“与时俱进”。尤其是在开发这个知识日新月异的行业里。同时分析能力也是必不要少的。在调查中71.15%的程序员认为,学习能力非常重要,同时有57.69%的程序员认为,在技术方面有不同的意见时,处理妥当是程序员应该具有的职业素养。相信这个案例为我们提供了新的思路。
2.与内外保持良好的沟通,永远是成功的保证。及时汇报、沟通进展也可以在第一时间发现自己的偏差。数据证明59.62%的程序员认为“汇报项目进展时明确及时”是重要的职业素养。
3.产品意识。良好的产品意识可以大幅度提高开发效率,也能有效的弥补需求不足。例如,在案例二中,在做文件上传功能时,充分考虑了客户使用的方便性,弥补了需求中被忽略的细节。
4.团队意识。强烈的团队意识能帮助自己和整个团队更快成长,因为知识的分享是知识学习中一个最有效的方法,尤其是在程序员这个行当里。
5.编码规范和文档规范。据调查显示有分别由80.77%和68.59%的程序员认为编码规范和文档规范是程序员的必备职业素养之一。
第二篇:中学数学六大核心素养
数学核心素养可以理解为学生学习数学应当达成的有特定意义的综合性能力,核心素养不是指具体的知识与技能,也不是一般意义上的数学能力。核心素养基于数学知识技能,又高于具体的数学知识技能。核心素养反映数学本质与数学思想,是在数学学习过程中形成的,具有综合性、整体性和持久性。数学核心素养与数学课程的目标和内容直接相关,对于理解数学学科本质,设计数学教学,以及开展数学评价等有着重要的意义和价值。
一般认为,“素养与知识(或认知)、能力(或技能)、态度(或情意)等概念的不同在于,它强调知识、能力、态度的统整,超越了长期以来知识与能力二元对立的思维方式,凸显了情感、态度、价值观的重要,强调了人的反省思考及行动与学习。”“数学素养是指当前或未来的生活中为满足个人成为一个会关心、会思考的公民的需要而具备的认识,并理解数学在自然、社会生活中的地位和能力,做出数学判断的能力,以及参与数学活动的能力。”可见,数学素养是人们通过数学学习建立起来的认识、理解和处理周围事物时所具备的品质,通常是在人们与周围环境产生相互作用时所表现出来的思考方式和解决问题的策略。人们所遇到的问题可以是数学问题,也可能不是明显的和直接的数学问题,而具备数学素养可以从数学的角度看待问题,可以用数学的思维方法思考问题,可以用数学的方法解决问题。
比如,人们在超市购物时常常发现这样的情境,收银台前排了长长的队等待结账,而只买一两样东西的人也同样和买一车东西的人排队等候。有位数学家马上想到,能否考虑给买东西少的人单独设一个出口,这样可以免去这些人长时间的等候,会大大提高效率。那么问题就出现了,什么叫买东西少,1件、2件、3件或4件,上限是多少?因此,会想到用统计的方法,收集不同时段买不同件数东西人的数量,用这个数据可以帮助人们做出判断。在这个过程中,具有数感的人会有意识地把一些事情与数和数量建立起联系,认识到排队结账这件事中有数学问题,人们买东西的数量(个数)与结账的速度有关系。
具备数学素养可能有助于人们在具体的情境中发现问题、提出问题和解决问题。而这个情境本身可能并非有明显的数学问题。
核心素养是个体在解决复杂的现实问题过程中表现出来的综合性能力。核心素养不是简单的知识或技能,它是以学科知识技能为基础,是整合了情感、态度或价值观在内的,能够满足特定现实需求的综合性表现。不难看出,核心素养关注的是后天教育的结果,它有别于一个人潜在的能力。而学科核心素养是核心素养在特定学科(或学习领域)的具体化,是学生学习一门学科(或特定学习领域)之后所形成的、具有学科特点的关键成就,是学科育人价值的集中体现。
新的课程标准中,给出了数学学科核心素养的六个主要方面,即数学抽象、逻辑推理、数学建模、运算能力、直观想象和数据分析,并从概念的界定、及其在数学与生活中的作用和意义方面进行了描述。
如在数学核心素养之一的数学抽象中,便指出数学抽象是指舍去事物的一切物理属性,得到数学研究对象的思维过程。给出数学抽象的作用是使得数学成为高度概括、表达准确、结论一般、有序多级的系统。数学抽象的意义,在于它是形成理性思维的重要基础。
第三篇:教师的六大素养
教师的六大素养
一、教师的语言
教师的语言是人类最美的语言。抑扬顿挫是教师语言的节奏美,诙谐幽默是教师语言的机智美,声情并茂是教师语言的情感美,逻辑严密是教师语言的理性美,启迪心灵是教师语言的道德美。教师的语言是一种技术更是一种艺术,曼妙、细腻、唯美、豪放教师的语言是一种知识更是一种思想,深邃、练达、智慧、仁爱。
二、教师的习惯
有人说,习惯成就人生;习惯决定成败。好习惯提升人的品质和生活品位,坏习惯糟蹋人的形象和生活层次。在教育中人们特别注重培养学生良好的学习习惯、生活习惯。一个同等重要的问题,那就是教师的习惯养成问题。无论是好习惯还是坏习惯都需要改良与更新、发展与进步。坏习惯一定要改,好习惯如果十年如一日,一成不变,终究有一天也会归入坏习惯的行列,因为“不变”本身未必就是好习惯。从教师个体的角度看,教育改革就是一种挑战习惯的活动。
三、教师的信念
信念是确信的观点或看法、尊奉或信奉的思想或看法、坚守的思想可理念。教育是一种需要信念的活动,因为教育的对象是人。教师的信念是教育场景中应该坚守的基本教育观念、教育思想和教育理想。教师的核心竞争力是什么?也许就是教师的信念。教师的信念蕴含着教师的信誓,教师的激情。教师的信念中还包含着责任与使命、爱心与真情坚持不懈与持之以恒。
四、教师的微笑
微笑是一种积极的心理状态,是一种朴实的精神动力;微笑是关注,使人觉得在你心中有地位;微笑是赞许,能给人以不夸张的肯定;微笑是友好,预示着我们之间没有任何心理距离;微笑是激励,表达着我们可以共同努力;微笑是关心,似乎在对人说“没关系”。作为教师,微笑有着无穷的教育魅力。教师的微笑和严厉同样重要,二者相比,微笑更平和、温和,更可亲、可爱。严厉的教师令学生敬畏,微笑的教师令学生喜爱,善于在严厉中不时渗透会意微笑的教师,则令学生敬爱。教师的微笑应该是善意的、会意的,发自内心的,而不应该是装出来的、无奈的。只有心中装着学生的教师才会有甜美的、会心的、善意的微笑。
五、教师的服饰
细节决定品质,服饰影响人的品位。不修边幅,不符合教师的形象要求;不懂礼仪,不合教师的职业规范。教师从事着文化和人化的事业,吊带衫、露脐装也许情感动人,但应远离学校和教室;黄头发、鸡冠发妩媚可人,但应移开教师的头上。教师服饰无小事!
六、教师的思想
教育的理想与梦想是天使,而教育的现实与困境是魔鬼。应试教育、功利主义、分数崇拜、知识授受主义的混血儿手持魔棒,折磨着教师的意志,讥讽着教师的良知,压抑着教师的创造。思想是行动的指南。思想有多远,我们就能走多远!一个有思想的教师一定是学生喜爱的教师,一个有魅力的教师,一个有精神感召力的教师。你想成为一位有思想的教师吗?赶快去读书,赶快去研究,赶快去反思,赶快去总结,赶快去提炼,赶快去合作,赶快去破除对权威的迷信,赶快去找回梦想和理想、信念和信心,赶快去成为你自己!
第四篇:中层必备六大职业素养
中层必备六大职业素养
很多企业对中层领导力缺失这一问题并非置若罔闻,也都投入了很大的关注,这从目前培训市场领导力和管理课程的火爆程度可见一斑。然而,我们不得不承认,中层领导力缺失所引起的战略传导障碍、信息传导障碍、绩效分解障碍等问题仍然非常突出。
可以说,中层领导力问题在学术界和实践界都是老生常谈,在百度搜索“中层领导力”能够得到约156万条搜索结果,很多管理学大师都曾围绕这个题目提出过精辟的观点,这里不做赘述。如果说解决这一问题存在一个最终方案,那么,就是将最合适的人放到合适的位置上,正如斯隆在通用汽车公司做的那样,由最高层直接确定中层管理者(甚至基层)人选,他们会花几个小时研究一个基层经理的聘用,而且斯隆坚持认为这才是他最该干的事。
一个掌握再多篮球理论的人,如果不到篮球场上训练,永远不可能成为一名合格的篮球运动员(但是这不妨碍他成为一名篮球专家)。要实现这一转化,除了实践还是实践,只不过我们可以让中层管理者在一些模拟场景和案例研究中进行尝试,加快这一进程。这就需要培训机构更多地深入企业,研究案例和场景,在过程中重视体验和分享的环节。
同时,企业对新任职的中层管理者提供一个在实践中学习的方案,可以参照学习路径图的方式,研究制定新任中层管理者达到独当一面的标准和达到此标准需要的培训和实践,缩短他们的岗位适应时间。中层领导力的提升单靠企业界、学术界、培训界任何一方都无法单独实现,需要通力协作,从中层管理者的需求入手,建立起激发、供给、满足等一整套领导需求管理体系,让他们实现喜欢学、看得懂、学得会、做得好,得到真正的提升。
众所周知,中层是企业管理的核心力量,他们处于“上传”和“下达”的枢纽位置,企业的高效运作离不开他们。中层干部是企业乃至所有组织的核心力量,是连接“头脑”和“四肢”的“脊柱”——但中层的问题往往也是高层最头疼的。中层觉得自已最委屈最累,高层觉得中层执行力不够,基层觉得中层瞎指挥。
既然中坚主管是企业中连接战略层和操作层的核心纽带,是打造一流企业执行力的中坚力量,因此如何培养、提升这些中层管理者的领导力是企业关注的重点。
具体来说,提升中层管理者的领导力,主要从以下六方面去做:
一、中层领导的影响力
决策力可以靠经验、靠助手、靠智慧;领导力和和执行力可以靠制度、权力、职责,只有影响力是靠人格、靠领导者个人的威信、美誉度,以自己的个人品质影响团队的思想、行为、习惯甚至甚至决策。我们要提高中层领导者的影响力,首先要晓得——什么是影响力呢?所谓影响力,就是一种特殊的人际影响力,组织中的每一个人都会去影响他人,也要接受他人的影响,因此每个员工都具有潜在的和现实的影响力。
在组织中,领导者和成员共同推动着团队向着既定的目标前进,从而构成一个有机的系统,领导者的个性特征和领导艺术,员工的主观能动性,领导者与员工之间的积极互动,组织战略与经营目标的制定以及实现的过程都与企业的领导者本身的领导能力直接相关!谭小芳老师表示,领导力的核心是对他人产生的一种持续的影响力,影响力来自以下三个方面:
二、思想力。影响力的第一源泉是领导的思想特质。
这里所说的思想家,是指那些具有自己独特的思维模式和哲学理念,对复杂问题有独到判断,并具有完备价值体系的人。
2、专家。在专业领域里的扎实基础和精湛技能,能使领导者成为一名受人敬仰的专家。专家在特定领域具有权威的话语权,对特定问题有着超过常人的理解和认识,并且具备把这种认识运用到实践中的能力。这样的专家也往往具有相当的影响力。
3、品格。有些领导者具有某种闪光的品质。这种品质既包括为人处世的道德准则,也包括人在困难面前所表现出的坚韧不拔的毅力,在人与人交流过程中的同理心和换位思维能力,对持有不同性格和思想的人的宽容,在处理危机时的勇敢和沉着。
三、中层领导的学习力
学习力,是指学习动力、学习毅力和学习能力。已经具备学习力的经理人,有如何将学习力转化为竞争力的问题。如果企业的全体成员能全身心投入并获得持续增长的学习力,这个企业才是学习型组织。对于今天企业的竞争,大家会说是人才的竞争、资源的竞争等等,但是学习型组织理论告诉我们:企业竞争争的是有学习力的人才。道理很简单,学习力比较强,那么几年以后,不是人才会变成人才,是人才会变成高级人才。选择学习就是选择进步,没有学习力就没有竞争力,提高学习力就是增强竞争力、创造力、领导力。
对于今天的我们而言,学习已经成为不可忽视的一种需要,知识经济的增长带动的整个世界的变化是知识的快速更新和整个人类步伐的加快,在这样的社会,我们驱赶得疲于奔命,却总会在某一个时刻发现自己已经不能适应这个社会的高速运转。时间在流转,我们在一天一天的变老,世界却在一天天更新,我们与世界的差距在不知不觉间扩大。于是,我们知道自己的生活需要知识的填充,需要知识的完善和积累。所以,学习已经成为职场人必须要做的事情——甚至可以说,学习力的竞争成为企业竞争和个人职场竞争的决定性因素。
美国前总统罗斯福的夫人曾说:“我们必须让我们的青年人养成一种能够阅读好书的习惯,这种习惯是一种宝物,值得双手捧着,看着它,别把它丢掉。”还有一位经济学家讲过这样一句话“不学习是一种罪恶,学习是有经济性的,用经济的方法去学习,用学习来创造经济、创造效益。”著名领导力训练专家谭小芳老师表示,作为中层领导者,应该从理论上、实践中和相互的交流中学习,不仅要注意学习方法,更要有正确的学习态度。
胡锦涛总书记曾指出,各级领导干部必须牢固树立终身学习的思想,把学习的体会和成果转化为谋划工作的思路、促进工作的措施、领导工作的本领。作为领导者,只有具有多方面的系统知识,才能深入地观察和把握事物的全貌、工作的全局,才能使思想认识和行动建立在科学的基础上,增强全局观念和工作上的全局性、系统性,减少和避免片面性。实践证明,没有科学的思想方法,就不能正确地观察和处理问题;而缺少科学文化知识,也难以把握事物的发展规律。科学文化知识越丰富,就越以深刻认识客观规律,做出的决策就越准确。
企业人士读书大多为了“镜以鉴人,史以明智”,我们要探寻的本质往往都会在历史中找到答案,或是一个行业的历史,或是一个成功企业的历史。可我们的民族却总是会遭受不爱学习的批评,尤其是大学里走出来的人,那些知识早已经在高中时期读完了,怆然于心。已经具备学习力的经理人,有如何将学习力转化为竞争力的问题。有些学员问我,谭老师,到底如何学习才有效率呢?笔者认为,中层领导者——
要学习,就要学自己现在和在可预期的将来就会需要的东西;
要学习,就要学习如何处理已经发生、正在发生或即将发生的问题;
要学习,就要学习能够符合企业实际情况并能在使用中可以行之有效的东西。
四、中层的变革力
变革是不可避免的,很多协作的、自组织的系统已经开始在全球范围内进行转变。谭小芳老师认为,作为21世纪的中层领导者必须了解这些系统,了解如何与它们共同致力于成功的跨国界和跨文化协作——协作(collaborative)要求更高层次上的思考和沟通,要求理解协作的核心价值观以及在全球层次上与协作的、自组织的系统合作的原则。
过去的那种“命令和控制”型的CEO很难在当今这种高度互联、合作的环境中生存。“协作型领导”的论调到处都是,所谓协作型领导是指那些情商高、拥有广泛人脉、通过向追随自己的人授权而不是根据组织结构图进行管理的人。管理大师HerminiaIbarra和MortenT.Hansen认为,这显然不是你父亲那个年代的CEO——那些希望成为协作型领导者的人需要全新的工具和技术()。
五、中层的协作力
把组织内外的人和观点连接起来。领导者们应该扮演“全球连接者”的角色,不断地同员工、客户、思想领袖以及其他行业的同僚保持联系,并且在组织内部分享智慧。“为了将他们所在的组织同更宽广的世界连接在一起,协作型领导不仅仅需要同传统领域建立联系——本地俱乐部、行业协会、客户和供应商关系——他需要更广泛的联系。”
六、中层的文化力
利用多种多样的人才。大量的研究不断表明拥有不同文化背景的人组成的团队会比来自同样背景的人组成的团队更有智慧。但是识别人才然后将他们融合在一起形成一个不同种族、性别、文化和年龄阶段的团队则需要特别的领导人才。领导者面对融合多种文化的多国人才团队,必须掌握跨文化管理的技巧。
在我看来,领导者是否卓越,有一点的差异比较关键:那就是——是否能够建立成功的合作关系。虚弱的领导从不相信自己成功,除非他们看到别人的失败。如今,企业面临的各种挑战非常复杂,以至于个人或单个组织已经很难解决。要想得到一个长期有效的解决方案,不仅需要组织内部的协调,还需要组织与顾客、供应商、甚至竞争对手之间的协作。领导者必须通过消除内部斗争和狭隘主义,营造出一种相互协作的精神,只有实现内部的通力合作,才能形成外部的竞争优势。
第五篇:一个程序员的基本素养
一个程序员的基本素养(转载)
中国有很多精于编码的人.但是中国软件行业.尤其是网络应用开发方面误区很大.很难形成有规模的软件开发力量和产品能力.不但比美国差距甚远.和印度相比也是颇有不 如.这些问题不是在于中国程序员的智商和工作努力状况.也不是在于国家和民间对开发 的投入程度.而是很大程度上.有一些对技术.对程序开发.对项目设计方面的思想误区.这些误区.导致了软件行业的产品化能力不足.缺乏规模化和大型复用系统研发能 力.可以说.改变认识误区.是解决软件行业小作坊模式和个体英雄模式所带来的局限性 的重要工作.中国有很多小朋友.他们18.9岁或21.2岁.通过自学也写了不少代码.他们有的代码写的很漂亮.一些技术细节相当出众.也很有钻研精神.但是他们被一些错误的认识和观点左右.缺乏对系统.对程序的整体理解能力.这些人.一个网上的朋友说得很好.他们实际 上只是一些Coding fans.压根没有资格称为程序员.但是据我所知.不少小网络公司的 CTO就是这样的coding fans.拿着吓人的工资.做着吓人的项目.项目的结局通常也很吓人.一.程序员基本素质 1:团队精神和协作能力
把它作为基本素质.并不是不重要.恰恰相反.这是程序员应该具备的最基本的.也是最 重要的安身立命之本.把高水平程序员说成独行侠的都是在呓语.任何个人的力量都是有 限的.即便如linus这样的天才.也需要通过组成强大的团队来创造奇迹.那些遍布全球 的为linux写核心的高手们.没有协作精神是不可想象的.独行侠可以作一些赚钱的小软 件发点小财.但是一旦进入一些大系统的研发团队.进入商业化和产品化的开发任务.缺 乏这种素质的人就完全不合格了.2:文档习惯 说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子.良好的文档是正规研发流程中 非常重要的环节.作为代码程序员.30%的工作时间写技术文档是很正常的.而作为高级 程序员和系统分析员.这个比例还要高很多.缺乏文档.一个软件系统就缺乏生命力.在未来的查错.升级以及模块的复用时就都会遇 到极大的麻烦.3:规范化.标准化的代码编写习惯
作为一些外国知名软件公司的规矩.代码的变量命名.代码内注释格式.甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定.良好的编写习惯.不但有助于代码的移植和 纠错.也有助于不同技术人员之间的协作.有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂.这种叫嚣只能证明他们自 己压根不配自称程序员.代码具有良好的可读性.是程序员基本的素质需求.再看看整个linux的搭建.没有规范化和标准化的代码习惯.全球的研发协作是绝对不可 想象的.4:需求理解能力
程序员需要理解一个模块的需求.很多小朋友写程序往往只关注一个功能需求.他们把性 能指标全部归结到硬件.操作系统和开发环境上.而忽视了本身代码的性能考虑.有人曾 经放言说写一个广告交换程序很简单.这种人从来不知道在百万甚至千万数量级的访问情 况下的性能指标是如何实现的.对于这样的程序员.你给他深蓝那套系统.他也做不出太 极链的并访能力.性能需求指标中.稳定性.并访支撑能力以及安全性都很重要.作为程 序员需要评估该模块在系统运营中所处的环境.将要受到的负荷压力以及各种潜在的危险 和恶意攻击的可能性.就这一点.一个成熟的程序员至少需要2到3年的项目研发和跟踪经 验才有可能有心得.5:复用性.模块化思维能力
经常可以听到一些程序员有这样的抱怨.写了几年程序.变成了熟练工.每天都是重复写 一些没有任何新意的代码.这其实是中国软件人才最大浪费的地方.一些重复性工作变成 了熟练程序员的主要工作.而这些.其实是完全可以避免的.复用性设计.模块化思维就是要程序员在完成任何一个功能模块或函数的时候.要多想一 些.不要局限在完成当前任务的简单思路上.想想看该模块是否可以脱离这个系统存在.是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用.这样就能极大避 免重复性的开发工作.如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题.那么程序员就不会在重复性的工作中耽误太多时间.就会有更多时间和精力投 入到创新的代码工作中去.一些好的程序模块代码.即便是70年代写成的.拿到现在放到一些系统里面作为功能模块 都能适合的很好.而现在我看到的是.很多小公司软件一升级或改进就动辄全部代码重 写.大部分重复性工作无谓的浪费了时间和精力.6:测试习惯
作为一些商业化正规化的开发而言.专职的测试工程师是不可少的.但是并不是说有了专 职的测试工程师程序员就可以不进行自测,软件研发作为一项工程而言.一个很重要的特 点就是问题发现的越早.解决的代价就越低.程序员在每段代码.每个子模块完成后进行 认真的测试.就可以尽量将一些潜在的问题最早的发现和解决.这样对整体系统建设的效 率和可靠性就有了最大的保证.测试工作实际上需要考虑两方面.一方面是正常调用的测试.也就是看程序是否能在正常 调用下完成基本功能.这是最基本的测试职责.可惜在很多公司这成了唯一的测试任务.实际上还差的远那,第二方面就是异常调用的测试.比如高压力负荷下的稳定性测试.用 户潜在的异常输入情况下的测试.整体系统局部故障情况下该模块受影响状况的测试.频 发的异常请求阻塞资源时的模块稳定测试等等.当然并不是程序员要对自己的每段代码都 需要进行这种完整测试.但是程序员必须清醒认识自己的代码任务在整体项目中的地位和 各种性能需求.有针对性的进行相关测试并尽早发现和解决问题.当然这需要上面提到的 需求理解能力.7:学习和总结的能力
程序员是人才很容易被淘汰.很容易落伍的职业.因为一种技术可能仅仅在三两年内具有 领先性.程序员如果想安身立命.就必须不断跟进新的技术.学习新的技能.善于学习.对于任何职业而言.都是前进所必需的动力.对于程序员.这种要求就更加高 了.但是学习也要找对目标.一些小coding fans们.他们也津津乐道于他们的学习能力.一 会学会了asp.一会儿学会了php.一会儿学会了jsp.他们把这个作为炫耀的资本.盲目 的追逐一些肤浅的.表面的东西和名词.做网络程序不懂通讯传输协议.做应用程序不懂 中断向量处理.这样的技术人员.不管掌握了多少所谓的新语言.永远不会有质的提 高.善于总结.也是学习能力的一种体现.每次完成一个研发任务.完成一段代码.都应当有 目的的跟踪该程序的应用状况和用户反馈.随时总结.找到自己的不足.这样逐步提高.一个程序员才可能成长起来.一个不具备成长性的程序员.即便眼前看是个高手.建议也不要选用.因为他落伍的时候 马上就到了.具备以上全部素质的人.应当说是够格的程序员了.请注意以上的各种素质都不是由IQ决定的.也不是大学某些课本里可以学习到的.需要的仅仅是程序员对自己工作的认识.是一种意识上的问题.