之前看过很多篇关于服务端工程师和PHP开发者的能力模型介绍,每篇都对能力有侧重点.
下面我们来详细谈谈以开发能力为基准点的PHP程序员的能力水平层次.
这个水平的程序员一般是在校学生或者培训机构学习中的同学,这时对PHP基本语法不太熟悉,做东西都靠查资料.
对于功能实现,能用但是健壮性和扩展性都不行,也就是我们所提到的实验性项目的模块.推荐处于这个层次的同学去尝试大型的模块,去解决复杂的问题,在实际开发中提升对语言的熟悉程度.
能实现简单的CMS编写,能使用框架实现功能,对服务器相关知识有了解,能进行简单的服务器配置.
这里要注意的是,对于在学校或者培训机构做过的仿商城(仿京东商城等等)或者仿论坛仿博客,这些项目的作用是让学生熟悉团队开发(虽然大部分都不用版本控制,学完了也不知道),所以对于项目的可用性和代码质量还是持保留态度.
处在这个水平的同学这时会找到一个实习生的岗位,在公司里做一些小的模块,这时候他们会发现,学校教的东西全是辣鸡!
经过实习期的打击,会再次审视之前做过的功能部分,也就是进入了正式的开发功能模块的水平.
这时候,需求分析不再那么随意,会考虑更多的现实场景,代码层面不再使用多余的foreach,会从时间复杂度考虑自己写的代码是不是辣鸡.
打一个比方,第1阶段做出的模块是拿沙子堆成的,那么第3个阶段做出的模块就是石头做的.
这个时候的程序员会在一个开发小组做基本的模块开发,开始认识到需求/产品经理/UI/运维等职位的存在,并不再说自己可以独立开发商城.
提升水平靠的是不断重复以及换角度思考.
经过一段时间的工作,PHP程序员开始注重服务器/数据库,学会对产品经理不再来者不拒,学会在实现功能的同时夹杂一些自己研究过的新玩意儿.
大量的模块开发伴随的是大量的业务分析以及逻辑代码,大量的逻辑代码会产生大量的重复从而不知不觉的提高自己堆语言的熟悉程度,慢慢的,就会从语法层面升级到语言层面.
恭喜你,入门了!
这个阶段的PHP程序员会主导一个项目的开发,做完整的需求分析/文档编写/项目排期/核心模块开发,由于项目人很多,所以开始带处于第2/3阶段的同学,还有操不完的心.
俗话说,PHP程序员是万金油.原因在于PHP作为从web开发起家的语言,需要使用的东西很多并且不可或缺.
这个阶段的PHP程序员开始不满足于语法上的熟悉,从而开始横向发展,web服务器/操作系统/数据库开始涉猎,C语言作为基础语言再次回到视角.
C/C++方向,编写PHP扩展.Python进行数据分析,等等.
在公司,这个层次的PHP程序员开始做服务端整体的工作,小一些的公司的话,大概处于技术总监的位置.
由于服务端体量大,工作重,技术扩展性强,所以更容易培养出技术型的CTO(区别于耍嘴皮子的脑残型CTO).
技术水平的不断进步其实也就是不断的重复,这个阶段会再次回到PHP语言层面,只是更加深层次的理解.
在此同时,随着各个方向的积累,已经开始做大型项目的架构设计,从顶向下的分析整个系统.
团队开发上,开始带多个开发组,同时进行项目的开发.
行业内的人脉上,开始和其他领域的专家建立联系,方便技术交流和人才招聘.
经过PHP高级的不断修炼,就会迈入架构师的级别.大公司的架构师,也就是小公司的CTO.
技术层面,去追求新技术,并有能力引领一股新的技术风潮.
初级程序员的学习榜样,也就是在初级一点点向上学习的路程上必定会听说的人.
(星星眼)
目前的招聘市场存在着金字塔式的人才体量,也就是低端人才非常多,中高端人才越来越少,这也是和这几年大量的培训机构进入市场有关.
大量的程序员在第3个阶段止步,原因在于看问题的角度,大量的技术沙龙总结出的都是方法论,方法论简单但是确实有效,就像年年看一遍人月神话,每次看的感觉都不一样.
勤奋和眼界可以促进程序员不断进阶.