什么人适合从事软件开发呢?软件开发者会经历怎样的发展历程呢?
首先,让我们来看看一个软件开发者可能的从业经历:
以上表示的是一个软件开发者成长路线。当然软件行业的技术路线还有测试、项目管理等,但多数从业者都是开发者,这里只谈开发者。
从图中可以开出,软件行业的门槛相对较低。根据我招聘的经验,初级的开发者很多,这些开发者大多从事最上层的基本开发,基本知识相对薄弱,几乎没有经验和系统思维,而且成长的空间也不大。图中可以发现,在成长的初期,就是软件工程师和高级工程这个阶段是成长的关键。在软件工程师阶段,如果走不到高级工程师就只能转变角色去其他的领域生存,实际上就所有的大学毕业生而言,最终成为高级开发工程师的并不多,大概有10:1的比例吧。大多数在初级工程师到高级工程师这个过程中选择了其他的发展方向,有一部分工作了数年依然是初级工程师的,这样的人我也遇到过,很多时候感觉他们选择这个行业是完全错误的。在高级工程师阶段,如果继续发展自己的技术能力走技术路线,可能成为系统架构师、分析师、资深技术专家。如果具备一定的领导能力,则可能成为团队的领导者,甚至成为一个软件开发企业的CTO。也就是说,要想在软件开发的道路上走下去,就必须先成为高级开发工程师。但是什么样的人能够成为高级工程师呢,根据我的经验来看,成为高级工程师需要具备相当的素质,那么我们总结一下能够成为高级工程师的条件吧:
很强的理工科基础,基本上要在重点中学阶段属于理工科方面的尖子生。
很强的逻辑、抽象、空间思维能力。
细致、周全、负责的思维方式,软件系统本身要求开发者思维做到细致、周全,具有很强的责任心,否则开发出来软件会有很多bug。
不断学习的努力精神,软件技术日新月异,这就要求开发者不断学习,努力跟上技术的发展。
接着,让我们把软件开发者的工作来做一个简单分类:
系统开发者,如操作系统、数据库系统、服务器系统开发者
专业开发者,如人工智能、大型索引系统开发者
应用开发者,如BOSS,BI系统开发者
简单开发者,如简单网站、简单查询系统开发者
要成为系统开发者、专业开发者、高级应用开发者,需要很高的专业知识和很强的逻辑、抽象、空间思维能力,这就要求从业人员具有很好的基础,同时具有较大的提升潜力。而要成为简单开发者和初级应用开发者相对容易,但是正是这个容易,使很多人走上了软件开发的道路。初级开发者在发展的过程中很容易遇到成长的障碍,能否跨过这个障碍成长为高级开发者就需要扎实的软件理论基础,较强的思维能力,努力的学习态度。
由此可见,软件开发者的路是很不好走的。成为入门级的开发者相对容易,但是普通的开发者基本过了30就很难找到满意的工作了,如果没有成为高级开发者继而走上正确道路的能力和决心,在选择软件开发行业的时候一定要慎重!对于在技术路线上苦苦摸索的人来说,我的建议是:与其苦苦追寻,不如发挥自己的特长另辟蹊径;对于适合技术路线的人,一定要规划好自己的技术方向,努力提升自己的各方面能力,营造良好的人事环境,争取自己最大的发展空间。