一开始学习JAVA,觉得仿佛给自己打开了一扇创造的大门,每天用学到的点点滴滴实现一个又一个的需求,很有成就感!赚的也比一般工薪族多一些!

但是很快就厌倦了没日没夜的增删改查,看着功能大相径庭,其实内里相差无几,CV大法,改改对象名,改改方法名,很快就实现了一个需求!

很快的就觉得公司不大行,配不上自己的“水平”,出去面试,专门找大公司,好公司,以为信手拈来,然而事实是不断放低自己的要求,面试了很多公司都无疾而终,跪在的问题不是高并发,不是分布式,而是基本的排序算法,基本的数据结构,基本的网络知识,JAVA运行原理等等这些平时用了千百遍,却说不出所以然的东西!

分享一下学习java的经验

于是开始怀疑自己了,学JAVA到底学了什么?增删改查写了几百遍,这跟实习生写三遍的差别在哪?缓存指令只会set,get,遇到问题了怎么办?服务宕机,缓存击穿?jvm底层是什么,你知道吗?

然后告诉自己,要熟悉底层,开始关注性能,可扩展性,如何优化,如何跟实习生拉开差距,不再是一个只会CV,只会增删改的“大神”!

所以我在此建议 :

①,注重底层:jdk中基本的数据结构(比如hashmap,hashtable,concurrentHashmap,synchronizedMap区别是什么?如何取舍?),jvm内存模型,内存结构,gc,并发包,反射等等!

②,不要想着啥都会:缓存有好几种,消息中间件有好几种,数据库中间件有好几种,微服务框架有好几种,如果这个学一点那个学一点,有可能最后都只是掌握皮毛,实际中用不到很快就忘了,而且看的太多容易产生倦怠心里,真真正正的搞懂几个中的一个就行了!

③,紧跟新技术但不盲从:目前JAVA8还是主流,流式处理函数式编程都很经典,虽然JAVA已经发到11,但可以变掌握旧的边拥抱新的,类似的还有springboot和最新的微服务mesh等等!

分享一下学习java的经验

④,不要三天打鱼两天晒网:学习是一辈子的事,只有保持足够的热情,付诸足够的精力才能不被淘汰!

⑤,喜欢分享:以我自己为例,有时候有些概念比较模糊,心里就想着要分享给别人,不能含糊,

努力去弄懂,然后尽量用通俗易懂的话描述出来,这时候你会发现豁然开朗了,真正的会了!