根据自己的经验,总结自己使用技术的变化,虽然很平淡无奇,但是也感觉到了世态变迁。
2006-2010,大学生涯,学习的内容C语言,Matlab,数据结构,操作系统,数据库,编译原理,计算机图形学,软件工程。
2009-2010,为了就业,参加了培训,是那种通过笔试面试进入企业定向的培训,不是花很多钱的那种。培训内容就是JAVA语法基础,数据库操作,Jsp/Servlet,Html/Javascript/CSS。培训结业跟着培训班的老师做实战,综合运用上述知识,做了个类似于电子商城那样的系统,感觉还是很有成就的。其实很庆幸那个时候的培训,老师讲的知识很深入透彻,基础原理讲的很多。做完了这个项目以后,才到一半,因为需要学习那个时候企业里使用到的框架,就是Struts,Spring和Hibernate。框架老师讲的比较少,直接上手就干,各种配置,一顿操作猛如虎,再弄个系统练练手就算入门了,最后老师留下了一句话,以后靠自己了。
2010-2012,进入企业,跟着前辈开始给公司赚钱,接手了第一个商业项目,可以说培训的东西都用上了,代码写的不好的地方,前辈们会给予指导,线上遇到各种问题,前辈们会给予帮助。这个时候使用的技术是Html,Javascript,CSS,Jsp,Struts.x,Spring,Hibernate,回忆不起来Spring,Hibernate具体版本了,但是Struts还是必须要记住是1.x版本的,因为跟后面的2.x版本差别有点多,当然使用的时间也比较长。那个时候的工作就是前后端都写写,主要是后端数据的处理。
2012-2014,使用的技术有了一点点小变化,主要就是我上面说的,把Struts1.x变成了Struts2.x,要问为什么换,当时不知道,现在也想不起来啥原因,可能顺其自然的,Struts2.x好用吧。前端使用了影响了我很长时间的Js库,就是JQuery。这样整个技术就变成了Html,Javascript,CSS,JQuery,Jsp,Struts2.x,Spring,Hibernate。这个时候有必要说一下就是我们还需要手动把lib下的jar包导入到项目中,还没用上maven呢。
2014-2018,技术又有发展了变化,Struts已经不用了,来到了SpringMVC的时代,Html,Javascript,CSS,JQuery,Jsp,SpringMVC,Spring,Hibernate,然后没过多久,估计不到一年,Hibernate被弃用了,直接换成了更轻量级的Mybatis,技术就演进到了Html,Javascript,CSS,Jquery,Jsp,SpringMVC,Spring,Mybatis。用上maven了,感觉很舒服。
2018-至今,感觉突然进入到了新时代,就是前后端分离,前端使用Vue,后端初期使用SpringMVC,Spring,Mybatis,最后变成了SpringBoot,Mybatis。感觉配置没以前那么多了,XML也消失了,现在遍地都是JSON。这段时间过得很快,可能要学习新的东西比较多。一直到现在就固定在了Html,Javascript,CSS,vue,SpringBoot,Mybatis。
除了上述的技术知识点,编程方式、部署和运维方式上也发生了几个能记得起来的变化,比如从刚开始的只有本地Map缓存到现代的Redis或者两者并用的缓存,从刚开始的手写线程池和数据库连接池到后来的使用JDK自身的或者第三方库,从最初的Tomcat5到后来的6,7,8再到现在的不用自己部署Tomcat的SpringBoot内置,从最初的只有自己系统的数据到现在远程调用或者远程输出给第三方系统的数据,从最初的同步到现在的各种消息队列满天飞的异步方式,从最初的前端主动拉取到现在后端大量主动推送,从刚开始的只有Tomcat到现在的Nginx+Tomcat做的负载集群等等,可以说发生了很多很多的变化。这里可能有点惭愧的就是主流的技术微服务全家桶、容器、容器编排和Serverless 还没使用到,主流的领域人工智能、大数据都没开发过,希望后续有机会接触接触。
PS:发现技术上面变来变去,还是标红的四个JAVA、Html、Javascript、CSS