我14年专科毕业,到今已有3个年头。期间入职过两家公司。

很多次学习技术,都是走到临门一脚,然后就没有往下了。我和大牛之间的差距就是,别人看完了源码,而我只是会用。

这是我20170412做的一次笔记,最后记住就是有多少种设计模式



系统的了解一下, 是这样的。



然后这样的



有幸阅读了《刻意练习》这本书,收获的3大技巧

第一步:走出舒适区

第二步:寻找导师

第三步:刻意练习

Java程序员学习要求:

分布式、Spring MVC、Spring Boot、Spring Cloud、ZooKeeper、Kafaka、Redis、MQ。

基本就是两招:

1. 用到哪块学通哪块,要学精还是有难度的,第一二次上够用就行,任何知识都架不住多用啊,第三次之后逐一吃透即可。(不要急,也不要求多,这就是我的心态)

2. 多买一些基础书籍,我一般喜欢多看数目录,选择其中看不懂的反复读。

现在最主要的是吸收JAVA的思想和深度理解JAVA企业开发的优势和弊端。

临渊羡鱼,不如退而结网

第一家是为"用友"集团做ERP外包的软件公司。那时候,对于大部分专科生来说,毕业不失业,那就算走上正轨了。


这样从事ERP开发的公司,已经有了一套自己成熟的大型软件框架系统。自己在校了解学习的spring,hibernate等框架并没有得到实践的机会。反而因为数据库SQL的通用性,被安排了一份根据报表需求,专门写SQL的工作,就这样入职培训1个月后,顺利上岗。

那会儿自己只会"select * from emp",能用到分组查询"group by"
,就感觉很深入了。可是,甲方的需求不可能这么简单,各种复杂查询"啪啪啪"得打脸。没有人带,没有人问,面对项目负责人每天的怒骂,只能自己上网搜资料。磕磕绊绊,解决了连表查询,多字段排序,去重,合并等,感觉自己能力增长了不少,有点小膨胀,开始想"我要打十个!!"。甲方没有辜负我的内心想法,顺利完成前几个任务后,工作量开始陡然变大。之后的2个月,每天联系甲方的经理,了解业务;询问老同事,查询数据字典,了解字段含义,就这样,完成了人生工作里第一个项目。


回想这段工作经历,我觉得我最大的收获就是:学会了自己尝试解决问题的能力,而不是面对问题,变得不知所措。虽然效率不理想,但迈出了第一步。如果再深入总结一下,不足之处还有很多。比如:当自己的技能不能胜任工作需求,除了第一时间,学习关键技能(可以向人请教,上网查找),完成工作需求。还应该在课后系统的回顾一下知识点。比如买本书,把基础示例上机敲一遍,我相信,对已经会的内容,你会有新的认识。而不会的,将加入你的技能树中。


之后团队(10来个人)领导内部斗争,拉帮结伙,每天上班并没有很多的工作。我对比一起出来的小伙伴的情况,认为自己的能力和薪资都不会有提高,在入职6个月时,提出了离职。


第二家公司是一家创业小公司(12个人左右),但是公司偏硬件(嵌入式开发:电路板设计,生产,配套驱动等全做),为之服务的软件也是以.NET为主。他们招我进去的职位是java开发工程师,算是填补了web开发方面的空白,在这家公司一直任职到现在。

入职后,先是接手了一个小型Java
SE就能做的server项目,同时使用的数据库也从上一家的Oracle变成了MySQL。该项目技术点有基本io,线程,jdbc,JNA(连接硬件c++库),WebService(与C#端做RPC通信)。这个项目同样,没有人交流询问,因为他们也不懂。查询资料期间了解到了CSDN,博客园,开源中国等知名网站。经过一个半月,第一个小版本联调成功,当时成就感满满,跑了大半年几乎没问题。


接下来一直做的都是WEB开发的项目,从简单的前端页面到后台应用服务,都由自己完成。因为业务原因,都是类似的"XXX管理系统"。几个项目上线后根据客户需求,一直在维护。接连几个项目上线,并没有发生什么问题,让我在公司也得到了一份肯定。而我那段时间也安于现状,每天过着"三点一线"式的生活。今年年初,我渐渐意识到了问题。


由于公司业务和当下流行的互联网技术(高并发处理,分布式处理等)完全不搭,且"XXX管理系统"这样的软件同时使用的人数不多,并发访问这种问题几乎没有。一方面,自己平时会浏览CSDN这样的网站,"高并发","虚拟化","XX解决方案"这样高大上的文章点进去,发现自己看不懂的,有些关键词都不了解。一方面,自己回顾自己掌握的技术,也仅仅是SSM和数据库的使用。对linux,虚拟机,版本控制,工程化管理,nosql,集群等根本没有很多深入的认识,再次放大了危机感。

我认真思考了所面临的问题,决定静下心,放下那种"着急"的感觉,从头开始学习。从《Java技术核心-基础知识》开始查漏补缺,结束以后开始看Java
Collection框架,自己翻源码,使用uml工具画继承图。从最简单的ArrayList开始,带着网上的结论"ArrayList内部维护的是数组"的结论,看每一个方法的实现原理。看着自己明白了以前不曾去想的实现原理,也拾起了信心。接下来通过学习tomcat的实现过程,对servlet有了进一步的认识。


一次偶然的机会,在网上看见了咕泡学院免费课程,是小马哥的《理解Java内省机制》。内省?是什么?当时的我一脸懵逼,难道之前的java白学了?点进去一看,哇,原来除了反射,java还有这种机制!也正是这次,小马哥那种三言两语就能将复杂原理说清楚的能力,让我再次认识了java!接下来的几天,我一直在听咕泡的免费课程,期间从NIO,到手写IOC。虽然自己会使用,但每一次都有新的收获!


看着老师几行命令,搞定了数据库主从配置,几个方法,实现自定义代理。看着James老师几个配置搞定maven插件,实现开发,测试,生产分开打包。看着小马哥笑谈spring
cloud。没别的感觉,就是羡慕!

临渊羡鱼,不如退而结网。我相信接下来的几个月,跟着几位老师,我将打开分布式的大门,进入架构的领域,而不是停留在SSM的圈圈里。


总结:针对架构的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆录制了一些视频,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加Java进阶群:190713474,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信