技术能力层次的思考
软件开发这个职业,可能是最好的职业,也可能是最坏的职业。最好的职业就是,可以发挥你最大的创造力,可以不断提升自己,可以入行就有不错的待遇,甚至可能一夜暴富的机会等等。最坏的职业可能就是,新技术层出不穷,一不留神就可能被淘汰,必须花大量的时间学习充电,并且中国面临更大的成本压力等。
如何不断提升自己,是每个技术人员必须思考的问题。从技术能力上,可以大致划分为三个层次:第一个层次,掌握实施方法,如各种编程技巧等;第二个层次,掌握具体方法,如架构设计,解决方案等;第三个层次,掌握抽象方法,如设计模式,解决问题框架等。
第一个层次,掌握实施方法,基本上是程序员的要求,如掌握Java的各种语法,能够按照规范完成相应的程序,能够使用相应的框架,如SSH,编写Web应用。常见的问题有,多而不精,大都了了,使用1年Java,开始用.net,之后使用PHP,除非是特殊的人才,基本成了万金油的角色,很难进入第二个层次,这在中小公司不断打转的人身上都能看到;虽然使用一种技巧,但是始终作维护相关的工作,在一个已有系统上修修补补,这在大中型的企业,特别是外企比较多,几年工作只是在已有框架上就行功能开发,如果本身缺乏深入研究的精神,也基本成为企业的螺丝钉而已。比较理想的情况是进入一个新项目,有高手指导,项目进行的不错,成长是非常快的,如前些年进入阿里巴巴,QQ等的这拨人,比较容易突破了第一层次的限制。
第二个层次,掌握具体方法,可以进行架构设计,解决方案设计。对于使用Java进行Web开发,就需要对于Spring Framework等开发框架进行深入理解,对于相关软件也有深入研究,并且积累了足够的行业知识,能够针对业务需求,进行解决方案和技术架构的设计工作。如果工作接触的系统,都是比较小规模,并且层次比较低,在这个层次上也很难成为优秀的架构师,很多只是徒有架构师的Title而已。现在比较好的条件是,优秀开源项目比较多,如Spring Framework, Lucene等,如果能够对于这些系统达到源代码级的精通,又有实际的应用场景,想不优秀也难。如果只是使用.net这样的封闭系统,也只有在业务上下功夫了。
第三个层次,掌握抽象方法,如设计模式,方法论框架等。真正达到这个层次,也就所谓掌握了软件的道,无疑是大师级人物,从小里算,承担总监级角色应该没有问题。而当今软件无处不在的情况下,在一个细分领域,能够真正贯通,也已经成为非常了不起的人物了。达到这个层次,需要天分,更需要不断努力,同样也需要机遇,也就是实践的机会,否则,即使是诸葛亮,如果是没有出山的机会,终老于南阳,又能如何?
掌握软件的道,是每技术人员的梦想,这需要我们脚踏实地,不断完善自己,不断在能力上进行跨越,升级,最后才能成就完美人生。
页:
[1]