感受本身不会的东西太多了,不知道如何下手?

GitHub 8.8k Star 的Java工程师成神之路 ,不来了解一下吗?git

GitHub 8.8k Star 的Java工程师成神之路 ,真的不来了解一下吗?程序员

GitHub 8.8k Star 的Java工程师成神之路 ,真的肯定不来了解一下吗?github

若是让我统计下,粉丝问我作多的问题是什么,这个问题确定能够排前5,问出这个问题的朋友们遍及各个年龄段。web

实话说,这个问题一样也困扰过我,大概就是我刚毕业的第一年。面试

那一年,刚刚离开校园,来到阿里,那时候就感受本身好像什么都不会,好像不少东西都要学,不知道哪一个是重点,不知道该如何下手。数据库

那段时间我也像个无头苍蝇同样尝试过不少办法。编程

刚开始疯狂买书,《Java编程思想》、《Effective Java》、《深刻理解Java虚拟机》等等。设计模式

而后想着本身撸一个项目,因而到github上找了不少开源项目,想着能够本身写一遍。刚开始想写个JUnit、而后想着写个SSH的项目,接着考虑本身写个Dubbo框架。缓存

甚至考虑过去报个班,不瞒你们说,我一个阿里的程序员,刚毕业的时候居然咨询过达内。tomcat

总之吧,作过不少尝试。如今我知道了,这就是焦虑。

焦虑是好事

首先,若是你有这种心态,那么彻底不要慌。这很正常。

并且,我认为这何尝不是一件好事儿!

我当时之因此像个无头苍蝇同样,主要是由于我想让本身变的恰好。因此,我相信,那些问过我相似问题的他们,也同样。

有焦虑,说明本身有上进心,有上进心,是一我的能够变得更好的一个最基础要素。

说实话,这篇文章的标题很像是软文,会不会有人由于怕是软文广告就错过了,我犹豫了好久要不要换一个。

可是,我想了想,若是这一点努力都不肯意付出的话,就算我当着他的面把这篇文章读给他估计也无济于事。

什么是知识体系

有不少人问我,到底什么是知识体系。

要我说,知识体系这个词根本就没有人能说的清楚它究竟是什么。

由于他真的是可大可小。

你能够说加减乘除是知识体系,也能够说数学学科是知识体系,还能够认为整个基础科学领域才是一个知识体系。

因此,没有必要给本身界定一个明确的体系框架。

不少人说,知识太多了,我不知道该学什么。其实,这么问的人,潜意识里是但愿本身能够获得一份完整的知识体系大图,能够获得一个完美的知识学习路径。

可是,我不得不泼一盆冷水。就没有所谓的完整的知识体系大图,更没有完美的学习路径。

不少人看多我总结的《Java工程师成神之路》,可是,这并不能算是完整的Java知识体系大图。

觉得,这最多算是个人知识体系的一个简单总结,可是,个人这份知识体系必然有局限性,局限性就是我对Java知识的认知和了解程度。

再说完美的知识学习路径是否存在,我以为这是不可能存在的。

由于技术学习,不像咱们在学校的时候学习算数,学算数能够先学加减、再学乘除,而后再学方程等等的。

可是,技术是服务于应用的,学习技术的原动力也确定是由于我要用,因此我才要学。

不论是工做中要用到,仍是面试的时候要用到,出发点都是我要用。

可是,每一个人要用的知识怎么可能都同样呢?因此,也不存在完美的学习路径。

没有完整的知识体系,也没有完美的学习路径,怎么办?

适合本身的才是最好的!!!这句话有点像是正确的废话。可是,这是我走过焦虑期以后惟一能传达给你的!

找一个点,先进去

我以为,学习是一件很简单的事儿,简单到你打开这篇文章的时候就已经在作了,只是你本身没意识到。

说到技术学习,该怎么作?

更简单。就像步步高点读机,哪里不会写哪里。

那怎么知道本身哪里不会呢?

这个更简单了,只要你开始学,那就知道本身哪里不会了。

那么,怎么开始学呢?

有几个方法,简单可实践:

一、随便找一本书,好比《深刻理解Java虚拟机》,翻开目录,总能找到一个本身不会的知识点,而后从这个知识点开始看。

二、工做中遇到的一个问题,或者须要用到某个技术,从把他弄清楚开始。

三、经过我总结的《Java工程师成神之路》,翻开这篇文章,找到本身不会的知识点,而后开始看。

我博客中,有不少文章,其实我从写文章的第一天起,一直到如今,都在不断的完善我本身的知识体系。用到的无外乎就是以上这三个方法:

从第一篇文章是我记录了我毕业时候的面试准备和面试题,而后学习工做中用到的webx框架。后来我维护咱们事业部的zookeeper集群,而后本身学习了不少zk以及分布式相关的知识。紧接着一次排查线上问题,了解到jdk提供了不少命令,因而开始学。再后来Java 8发布,我学了一些Optional 、Stream等知识。后来买了一本《高性能MYSQL》,因而写了不少和数据库有关的文章。接着是工做中用到了模板方法模式,感受设计模式颇有用,因而开始学。后来看了《Java并发编程实战》,又写了不少和并发有关的知识。接着我就总结了《Java工程师成神之路》,而后就是按照这个又写了不少系列文章.....前段时间,阿里巴巴推出《Java开发手册》,我又写了不少篇解读《手册》的文章....

还有不少文章,我都忘了当初为何写了。可是重要的不是从哪来,也不是去哪里,而是在路上!!!

不少人老是想着想要找到一份完整的知识系统或者完美的学习路径才开始。可是,如今我告诉你了,并无。

因此,按照我说的,或者不按照我说的,找一个点,先进去,先开始学。

就像我以前总结过一篇文章,经过StringBuffer和StringBuilder开始,你都能一直学到并发编程、学到数据锁,学到分布式。

深度优先与广度优先

接着,说一下学习方法。

学习过程当中,必然会遇到更多本身不会的知识点,这时候怎么办?

两种办法,1是先无论他,绕过去,回过头再看。2是先停下来把这个关联知识点搞清楚,再继续。

说到底这就是图论中的深刻优先搜索和广度优先搜索呀,我通常采用的是深度优先,遇到一个搞清楚一个。

个人博客写过几篇和分布式有关的文章。若是你仔细看。可能会发现个人学习思路。

1.什么是分布式?发现相对于集中式来讲的,那什么又是集中式。 2.分布式好像和集群很像。那什么是集群? 3.分布式有啥优势,有啥缺点? 4.好像分布式很难保证数据一致性,那什么是数据一致性。什么是CAP,什么是BASE,CAP和ACID好像挺像? 5.数据一直性问题如何产生?如何解决? 6.什么是2pc,什么是3PC,有了2PC为啥要3PC 7.为啥不多有人用2PC和3PC 8.什么是最终一致性。 9.什么是柔性事务,那什么是又是事务呢? 10.经过事务,又能够学习Java本地事务,全局事务,数据库事务。数据库事务隔离级别怎么回事?脏读,不可重复读这些都是啥?Spring事务咋回事? 11.柔性事务,什么是TCC,什么是消息最终一致性。那又如何实现的? 12.为啥有这么多方案,分布式事务问题还没法解决 13.TCC好像和2PC很像?有啥区别 14.各大公司是如何解决分布式事务的 15.支付宝的XTS到底怎么实现的? 16.有了事务了。那性能怎么保证? 17.缓存咋回事。缓存击穿咋办,热点问题咋解决 18.…………可用性相关?安全性相关?好像负载均衡我还不懂,到底咋回事?负载均衡和Web服务器有关?那tomcat咋实现?jboss和他有啥区别。Nginx呢?卧槽,反向代理是啥?啥是代理?代理模式?啥是设计模式?我之前读过设计模式之禅,可是有些地方以前没懂得,如今好像忽然懂了。jboss modules是啥?啥特么又是模块化?osgi?Java9跟模块挂啥关系?Java10呢?

其实,不论是深度优先仍是光度优先,总会有把图上的各个点串联成一张图的一天。

这不就是所谓的知识体系么?

鸡汤没毒

借着这个问题,多说几句鸡汤吧。咱们大多数人的努力程度,根本还没到和别人拼天赋的程度。

我一直以为,天赋是决定一我的的下限,而努力才是决定一我的的上限。

最可怕的就是咱们并无尽人事,却埋怨天命。有的时候,从哪开始并不重要,重要的是你要开始啊!!!

我认为,知识这东西,异曲同工。你先看哪本书,后看哪本书,差异没那么大,最终那几本有用的书以前的关系仍是会被你发现。那个时候,知识体系就有个大概的框架了。而后查缺补漏呗。

慢慢的,知识体系不知不觉就创建起来了。别想那么远。找一个点,先进去。

相信我,坚持下去,1年后,你会感谢我,2年后,你会感谢你本身!

另外,这篇文章中没有讲关于如何规划时间,如何更好的学习的事情,这个不是最重要的,你们感兴趣的话我后面的文章再分享吧。

相关文章
相关标签/搜索