我15年专科毕业,到今已有3个年头。期间入职过两家公司。前端
不少次学习技术,都是走到临门一脚,而后就没有往下了。我和大牛之间的差距就是,别人看完了源码,而我只是会用。java
这是我20170412作的一次笔记,最后记住就是有多少种设计模式linux
系统的了解一下, 是这样的。c++
而后这样的程序员
有幸阅读了《刻意练习》这本书,收获的3大技巧web
第一步:走出温馨区面试
第二步:寻找导师spring
第三步:刻意练习sql
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性能优化、分布式架构)等成为架构师必备的内容!
欢迎工做一到五年的 Java 的工程师朋友们加入的 Java 架构开发:685167672 本群提供免费的学习指导架构资料以及免费的解答 不懂得问题均可以在本群提出来以后还会有职业生涯规划以及面试指导
欢迎关注这个公众号,里面也会分享一些面试经历和架构干货知识,帮助你们提高面试技巧