收藏本站
51Code Android开发培训Banner
您所在的位置:51Code首页 > 资料精选 > 学习资料 > 【学习资料】成长为高级软件开发人员需要的几个阶段

【学习资料】成长为高级软件开发人员需要的几个阶段

      发布时间:2016年01月20日 16:39分    来源:51Code采编    关键词:软件开发         | 上一篇 | 下一篇 |


 

       

       软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。

我们严重缺乏能够满足需求的人才,这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。现在我们把淫浸代码时间超过3年的开发人员称为“高级开发人员”。这些人通常把持领导岗位,最终做出来的东西,你懂的——非常糟糕。

 

成长为高级软件开发人员需要的几个阶段

 

       软件开发人员的成长阶段

 

       作为程序员,我们生活在复杂的系统和变量世界中。可以这么说,即使是执行一个简单的,定义明确的,重点突出的任务,都令人难以置信的难,尤其是如果你对你手头的工具,或者是你正在工作的代码库不是那么有经验的话。

 

       初级程序员

 

       初级开发人员是这样的,刚从学校出来,就像坐井观天中的青蛙一样,自认为什么都会。突然间,你发现自己面对的问题,靠学校中的那点知识是远远不够的。问题更复杂,更凌乱,没有理论上说的那么纯粹。你正处于放弃还是坚持的分叉路口,你不知道该怎么办。对策就是专心致志,专心致志地竭尽全力学习。初级开发人员需要大量的指导、监督和辅导,否则他们将会在这一阶段呆上很长一段时间。因此,实际上你也可以将这一阶段视为策略和日常技术的吸收消化时期。

 

       初级开发人员关注代码,而不注重开发,他们不明白两者之间的区别。如果一个程序员表示“要是代码不需要面向所有用户,那他们会更喜欢编码”,那么我可以判断这是一个初级开发人员。一个优秀的初级开发人员给定一个已知任务之后,就能够迅速良好地执行。

 

       至此中级开发人员逐渐能够意识到失败(通常是他们自己的失败)模式,并认识到比起实际构建匆匆忙忙去做重点任务其实所需要的时间和精力更多,并且也不会因为有人说要改一改而一下子垂头丧气。他们也经历过自以为写出了引以为豪的内容,实际上证明是垃圾的悲惨遭遇。

 

       中级程序员

 

       中级开发人员寻寻觅觅于用正确的方法去构建,去解决问题,他们会通过实验、文献和与其他程序员的讨论去发现这些正确的方法。这实际上已经是学习软件架构的水准,而不再是构建代码水平。

 

       没有受到监督的中级开发人员构建的系统之所以失败的原因和初级开发人员的失败原因截然不同。初级开发人员会构建一堆稍微有点用的算法。而优秀的中级开发人员会跳出《Design Patterns》和《Domain Driven Design》的禁锢。虽然这些都是学习构建大型OO系统的好书,但是直接应用理论只会导致死板的设计结果,不重要的地方灵活多变,重要的地方却又死板无法更改。

 

       你可以信任中级开发人员构建的系统,他们的系统毫无疑问比初级开发人员做的要好。但是时间久了,依然会有各种问题出现,成为拦路虎。一个可悲的事实是,绝大多数高级开发人员,甚至团队领导者其实都还只是——中级开发人员。当然,大多数人都没有这样的自我觉悟,原因是他们根本没有和更高水平的人一起工作过。

 

       一个优秀的中级开发人员应该懂得使用代码来解决问题只是一种手段而不是目的。然而,他们仍然深爱着纯粹的设计,仍然渴望寻求所谓“正确的方式”来构建软件。优秀的中级开发人员依然需要少量的监管。毫无疑问,他们能够提升代码设计,并在设计讨论中发挥重要作用。他们是开发团队中的主力。但是,对于他们,进一步的指导和更高层次的监管依然至关重要。