职业程序员培养之道
职业程序员培养之道
软件开发是以人为核心的过程,对人的依赖性远高于传统的
硬件生产企业,为了保持开发能力的稳定性,一方面需要定
义软件过程,以过程为枢纽将人、技术、工具衔接起来,另
一方面也要加强人才的培养,使人的工作能力能够稳定、提
高人员的自治性。随着社会需求的膨胀,对程序员的需求量
、对熟练的程序员的需求量在剧增,然而对程序员的培养问
题却成了一个盲点,学生在学校里学习的是关于软件开发的
基础知识,软件企业需要的是熟练的能够快速开发出产品的
程序员,需要程序员具有很强的实用知识,因而出现了明显
的学校教育与实际需求脱节的问题。企业反映新毕业的学生
知识老化、动手能力太差、缺乏实用理论知识、缺少工程管
理知识等问题。尽管社会上有各种各样的专业程序员培训班
,但是距离企业的实际需求仍然有较大的差距。在企业中培
养一名合格的程序员一般需要个月到半年时间,对企业来讲
,这个周期就显得太长了,所以一般的企业不愿要新毕业的
学生,企业希望程序员能够“来则战之,战则胜之”。无论
如何,对程序员来讲总是要面临一个成长的过程,希望学校
或者培训班来解决这个问题很难,因为程序员不是标准件,
程序员不是教育出来的,是在实践中干出来的,最终还是要
在实践中来培养程序员,这是任何软件企业必须承受的,因
此,对软件企业来讲需要有一套机制,一套办法来培养程序
员。那么,我们需要从哪些方面来培养程序员呢?大体来讲
,包括以下几个方面:精神、能力、理论基础、工作方法、
工作习惯。、精神软件开发是一项智力劳动,需要开发人员
很投入的工作,因而需要开发人员能够热爱软件开发,有工
作热情,有投入的精神。如果一个程序员缺少一种投入的精
神,他不可能在最需要他投入精力的时候来工作。有的人很
聪明,但是他对软件开发没有兴趣,或者他工作很不专心,
杂事很多,工作效率很低,别人天能干完的,他需要天甚至
天才能干完,而且还漏洞百出,这样的程序员需要尽早识别出
来,尽早转换工作。现在的工作环境对程序员的诱惑很多,
比如游戏、、各种新闻等等,这些诱惑使不能很好处理这些
关系的程序员浏览忘返,浪费了大量的时间,降低了工作效
率。程序员的业绩很大程度上不是取决于其智商,而是取决
于其情商。、能力程序员最主要的能力可以概括为点:良好
的逻辑思维能力、良好的沟通能力与良好的学习能力。良好
的逻辑思维能力软件的开发过程是解决复杂业务逻辑的过程
,是简化复杂逻辑的过程,是用精确来实现模糊的过程,开
发人员需要具有良好的逻辑思维能力才能胜任。现实空间是
模糊的,数字空间是精确的,在现实世界中很简单的问题,
在数字空间中来模拟时,就变成了一个复杂的问题。它要求
程序员能够全面、准确、简洁地把握问题、分析问题、解决
问题。在笔者接触过的很多程序员新手中,很少有程序员能
将下列的题目解答的完全正确:画出解答下面问题的程序流
程图:输入三个整数,作为三角形的三个边,判断是否构成
:等边、等腰、直角、锐角、钝角三角形。这个题目的逻辑
很简单,需要的处理的逻辑包括:输入的合法性判断:输入
的是否是正整数是否构成三角形:任意边之和大于第三边是
否构成等腰或等边三角形是否构成钝角、直角、锐角三角形
答题者常见的错误有:%%序号%常见的错误没有判断输入的
合法性没有判断是否构成三角形判断为其中一种结论时就结
束了,没有考虑到:等边三角形也是锐角三角形,等腰三角
形可以是钝角也可以是直角或锐角程序内部逻辑复杂上边的
题目是一个很简单的程序,但是类似的逻辑问题在实际的软
件开发中是经常用到的,需要程序员能够对各种情况进行仔
细的分析、归纳、总结,如果在这样的问题上出错是很难成
为出色的程序员的。沟通能力现在的软件越来越庞大,根本
不是单兵作战能解决的,需要多人来协同工作,比如一套简
单的进销存系统可能就要产生万行代码,按每人天生产行代
码来估算,也需要人年,再加上分析、测试等的时间,需要
人年才能完成,因此就需要开发人员具有很好的沟通能力。
作为程序员要善于沟通,习惯沟通。程序员在交流问题时,
往往在描述问题是什么时要花费大量的时间。这种现象在项
目组中是经常出现的:在给一个程序员布置任务时,讲清楚
任务比他完成这项任务花费的时间还要多,而有的程序员自
己心里明白,但是说不清楚,或者干脆就不说,这些情况都
会降低整个团队的工作效率。学习能力软件的新技术发展很
快,开发人员必须能够不断的跟踪、学习新技术,要有很好
的学习能力。只有善于学习的人,才能够不断进步,在实践
中快速成长。真正优秀的程序员一定是掌握了很好的学习方
法的程序员,否则现在是优秀的程序员,年后可能就被淘汰
了。
软件开发是以人为核心的过程,对人的依赖性远高于传统的
硬件生产企业,为了保持开发能力的稳定性,一方面需要定
义软件过程,以过程为枢纽将人、技术、工具衔接起来,另
一方面也要加强人才的培养,使人的工作能力能够稳定、提
高人员的自治性。随着社会需求的膨胀,对程序员的需求量
、对熟练的程序员的需求量在剧增,然而对程序员的培养问
题却成了一个盲点,学生在学校里学习的是关于软件开发的
基础知识,软件企业需要的是熟练的能够快速开发出产品的
程序员,需要程序员具有很强的实用知识,因而出现了明显
的学校教育与实际需求脱节的问题。企业反映新毕业的学生
知识老化、动手能力太差、缺乏实用理论知识、缺少工程管
理知识等问题。尽管社会上有各种各样的专业程序员培训班
,但是距离企业的实际需求仍然有较大的差距。在企业中培
养一名合格的程序员一般需要个月到半年时间,对企业来讲
,这个周期就显得太长了,所以一般的企业不愿要新毕业的
学生,企业希望程序员能够“来则战之,战则胜之”。无论
如何,对程序员来讲总是要面临一个成长的过程,希望学校
或者培训班来解决这个问题很难,因为程序员不是标准件,
程序员不是教育出来的,是在实践中干出来的,最终还是要
在实践中来培养程序员,这是任何软件企业必须承受的,因
此,对软件企业来讲需要有一套机制,一套办法来培养程序
员。那么,我们需要从哪些方面来培养程序员呢?大体来讲
,包括以下几个方面:精神、能力、理论基础、工作方法、
工作习惯。、精神软件开发是一项智力劳动,需要开发人员
很投入的工作,因而需要开发人员能够热爱软件开发,有工
作热情,有投入的精神。如果一个程序员缺少一种投入的精
神,他不可能在最需要他投入精力的时候来工作。有的人很
聪明,但是他对软件开发没有兴趣,或者他工作很不专心,
杂事很多,工作效率很低,别人天能干完的,他需要天甚至
天才能干完,而且还漏洞百出,这样的程序员需要尽早识别出
来,尽早转换工作。现在的工作环境对程序员的诱惑很多,
比如游戏、、各种新闻等等,这些诱惑使不能很好处理这些
关系的程序员浏览忘返,浪费了大量的时间,降低了工作效
率。程序员的业绩很大程度上不是取决于其智商,而是取决
于其情商。、能力程序员最主要的能力可以概括为点:良好
的逻辑思维能力、良好的沟通能力与良好的学习能力。良好
的逻辑思维能力软件的开发过程是解决复杂业务逻辑的过程
,是简化复杂逻辑的过程,是用精确来实现模糊的过程,开
发人员需要具有良好的逻辑思维能力才能胜任。现实空间是
模糊的,数字空间是精确的,在现实世界中很简单的问题,
在数字空间中来模拟时,就变成了一个复杂的问题。它要求
程序员能够全面、准确、简洁地把握问题、分析问题、解决
问题。在笔者接触过的很多程序员新手中,很少有程序员能
将下列的题目解答的完全正确:画出解答下面问题的程序流
程图:输入三个整数,作为三角形的三个边,判断是否构成
:等边、等腰、直角、锐角、钝角三角形。这个题目的逻辑
很简单,需要的处理的逻辑包括:输入的合法性判断:输入
的是否是正整数是否构成三角形:任意边之和大于第三边是
否构成等腰或等边三角形是否构成钝角、直角、锐角三角形
答题者常见的错误有:%%序号%常见的错误没有判断输入的
合法性没有判断是否构成三角形判断为其中一种结论时就结
束了,没有考虑到:等边三角形也是锐角三角形,等腰三角
形可以是钝角也可以是直角或锐角程序内部逻辑复杂上边的
题目是一个很简单的程序,但是类似的逻辑问题在实际的软
件开发中是经常用到的,需要程序员能够对各种情况进行仔
细的分析、归纳、总结,如果在这样的问题上出错是很难成
为出色的程序员的。沟通能力现在的软件越来越庞大,根本
不是单兵作战能解决的,需要多人来协同工作,比如一套简
单的进销存系统可能就要产生万行代码,按每人天生产行代
码来估算,也需要人年,再加上分析、测试等的时间,需要
人年才能完成,因此就需要开发人员具有很好的沟通能力。
作为程序员要善于沟通,习惯沟通。程序员在交流问题时,
往往在描述问题是什么时要花费大量的时间。这种现象在项
目组中是经常出现的:在给一个程序员布置任务时,讲清楚
任务比他完成这项任务花费的时间还要多,而有的程序员自
己心里明白,但是说不清楚,或者干脆就不说,这些情况都
会降低整个团队的工作效率。学习能力软件的新技术发展很
快,开发人员必须能够不断的跟踪、学习新技术,要有很好
的学习能力。只有善于学习的人,才能够不断进步,在实践
中快速成长。真正优秀的程序员一定是掌握了很好的学习方
法的程序员,否则现在是优秀的程序员,年后可能就被淘汰
了。
浙公网安备 33010602011771号