刚刚入职一家IT公司成为一名初级开发工程师,我们如何在技术这条路线上野蛮生长呢。
这条技术进阶之路就是一个金字塔形,越往上人越少。
奶爸在IT职场很多年接触了很多技术大咖,他们的成长路线大概都是以下几步:
1、规范编程,夯实基础
不管你是计算机专业科班出身,还是半路出家,刚开始写代码都是一张白纸,如果一开始不懂的规范写代码,就会养成不好的习惯,以后很难改。
按照规范格式编写代码,不用格式化工具,自己写出可读性极好的代码,特别是要养成写注释的好习惯,再好的脑子也不如写上完整得注释。
一定要记住这句话,别太相信自己都能记住,就算是你自己写的代码,半年后再去看,如果没有注释也很难看懂。
另外这个时候要把最基础的编程算法打牢,如果你用的是JAVA语言,那就要把J2SE核心的类苦弄明白,最常用的算法多多演练。
扎扎实实走好第一步,基础打牢了,以后的路更好走。
2、实战演练,技能拓展
一定要多参与不同的软件开发项目,不同类的软件开发项目用到的技术侧重不同,这样能让你的技术通过项目实战,更加精进、全面。
分析类的软件,需要对数据处理和展现的技术要求更高,这时你可能会接触一些ETL工具,图表展现工具(比如EChart等)。如果涉及到海量数据处理,你将有机会开始你的大数据开发之路,除了会使用oracel进行关系型数据库的开发,还要学会使用类似Hadoop这样的分布式框架进行开发。
流程类软件,侧重流程和表单得配置,这样你会熟悉JBPM的设计机制,如何基于流程引擎完成开发,如何开发各类表单(单笔、多笔等)。如果涉及到长流程,还会让你学到依据状态机实现流程管控、有序流转的技术。
ESB类的软件,让你学会如何进行接口总线开发,这时候你会开始接触各类接口方式,比如webservice,FTP、JMS、rest等,开始学会如何调用邮件和短信网关。
门户类软件,让你学会如何开发统一代办,如何通过CAS实现单点登录,如何通过门户实现首页的定制开发,皮肤定制,不同子系统如何集成等。
第二步,通过实战,让你的技术更全面、更精进,要想达到这个目的就不能死磕在一个项目组里。
3、学会做软件设计
到这,你要学会进行软件设计,大到整个系统,小到一个功能模块,你的设计方案将是开发人员进行软件开发地依据,就像盖房子,你画图纸,程序员施工,是不是感觉自己变得有一点牛了。
做一个软件设计师,还是要懂得基本的设计思想,常见的设计模式要好好研究一下,比如单例模式、工厂模式、策略模式等。其实这些方法论的基础都是面向对象的编程思想,在基础思想加上一些应用场景,便有了各类设计模式。
一个软件设计师,最主要的职责就是写设计文档并指导开发人员按照设计开发。设计文档的核心包含类图设计、活动图设计、状态图设计、功能设计、性能设计等。
设计师和开发工程师的最大区别是,设计师能依赖软件架构完成软件设计,而开发不能。
4、成为一个架构师
到了架构师这个级别就需要对底层软件模型完成架构设计,包含展示层的封装、应用层的服务封装,公共技术组件封装,比如前面说的流程引擎工具、表单组件、图表展示组件都需要由架构师完成封装,形成可复用的组件,提供给开发人员使用。
一般架构师这个级别的人就需要开始深入研究一些开源组件,阅读核心的开源代码,比较勤奋的架构师已经开始做自己的开源项目了。
架构师一般是一个团队中的技术专家,产品研发中遇到的技术难点一般由他来攻克,比如软件的执行效率问题,软件的性能问题等。
比较厉害的架构师,还要学会软硬件集成部署,设计应用和数据库的负载均衡方案,让系统更加健壮、更加灵活。
架构师是一个软件架构的缔造者,一个团队的生产力高低,很大程度上取决于架构师的水平高低。
5、走向CTO
听起来是个很高大上的职位,能够走到架构师位置的人已经凤毛麟角了,要能成为一个企业的CTO更是难上加难。
CTO最重要的工作就是关注行业的技术趋势,进行技术选型,将比较好用的新技术引入到技术架构体系中。不断升级现有的技术架构,应付不断增长和扩展的业务。
所以你会看到很多的CTO经常奔走在,各种论坛,峰会,目的就是为了培养敏锐的技术嗅觉,拓展人脉,建立技术合作关系。
走到这里基本上已到了技术的顶点了,有点高出不胜寒的感觉,回头看看来时的路,是否会感叹,无限风光在险峰。