工作第一年作为一个新人菜鸟,也没什么大的目标和方向,就进入了一个传统行业的IT部门做技术支持,每天就是收集公司不同业务部门的业务/功能,进行提炼,最后传递给总部的IT研发部门进行研发,偶尔为公司的同事改下SQL,装个系统,维护一下OA系统,官网的bug;
目标:主要是熟悉这个行业,锻炼了一定的表达和整理能力,对于数据库及数据对于一家公司的重要性有了一定的认识;
之后进入了软件公司,算是接触到大学课本上讲到的所有的软件工程的东西,但是更多的是浅尝辄止的皮毛。
公司的业务是为国内比较大的公司提供软件咨询方案,简单的说就是亚马逊,沃尔玛用什么IT系统,公司就争取将方案推到国内的大公司中。
首先要显得方案牛X,找到市面上最牛的技术方案,所以面对的大部分问题都是解决复杂业务逻辑和优化强大的代码库;
目标:作为一家软件公司的软件工程师,接触最多的就是TW的那一套,敏捷,CQRS,DDD,TDD等各种软件开发模式和思想,讨论到分层顶多围绕在代码逻辑上的构造和整理,对于整体的系统解决方案那是没有什么高瞻远瞩的,提高的能力就是在代码分层,代码位置摆放的自得其乐了。
鉴于对于技术的持续追求,从软件公司离开之后就一头扎入了互联网公司。
进入互联网公司的理由很简单,之前做软件方案及软件咨询方向的工作主要是为甲方提供更好的解决方案,技术及框架本身没有多少落地的实践,同时自己这套价值输出的主要目标是B的企业,本人对于服务C端用户还是有很大期望的,进入互联网公司能够将自己设计的方案完美的呈现到C端用户的眼前,满足作为一个程序员创造价值的初心吧。
互联网公司和软件公司在技术方案上的区别在于,软件公司更多的是解决复杂业务逻辑的依赖和关系,于是和代码分层,代码模块打交道的机会比较多;
目标:互联网公司则更注重于技术视野的广度和深度,打交道的对象不仅仅是代码本身,中间件的使用和整体框架数据的流转稳定性都是相当的重要,于是技术的广度有了一定的研究。
互联网公司混迹多年,对于一套标准的大型互联网技术架构用到的和会用到的解决方案都是有了一定的认识。
缓存,数据安全,API接口,SOA,读写分离,异步通信等技术更多的是为解决一套C端系统的整体的片面应用,随着一线研发工程师的增多,研发内容和业务的增加,建立一套有效的提高工程效率的框架和工具则显得比较重要。
目标:提高研发,测试,产品上线等多环节的效率,通过工具标准化流程,于是对于AB Test框架,大数据框架,系统集成,微服务等工程化的项目和框架会有更多从进行思考。