我15年专科毕业,到今已有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。虽然自己会使用,但每一次都有新的收获!
那如何学习才能快速入门并精通呢?
当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。
但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有一套实用的视频课程用来跟着学习是非常有必要的。
为了让学习变得轻松、高效,今天给大家免费分享一套阿里架构师传授的一套教学资源。帮助大家在成为架构师的道路上披荆斩棘。
这套视频课程详细讲解了(Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构)等成为架构师必备的内容!
加QQ群:331789133,免费领取!
网友评论