# p6_road **Repository Path**: tuxiaowei/p6_road ## Basic Information - **Project Name**: p6_road - **Description**: 阿里P6之路 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-12-30 - **Last Updated**: 2022-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: 自学, Java, P6 ## README # 谈学习 ## 为什么学习? 关于如何学习,这个问题我在几年前有过一次总结,现在是时候更新一下了. 在谈学习之前,首要的问题是什么? 我想应当是这个问题:为什么学习? 你为什么要学习呢? 为什么要学这个那个呢? 我们现实一点考虑,学习无非是希望通过知识改善生活. 换句话说就是学习转换成金钱。也许你会说你有这个理想那个理想,你不全是为了钱。 但是实现理想的过程中是少不了金钱的帮助的。所以就暂时放下那些比较远的事情,专注于眼前的局势。 编程领域想要拿到更多的薪水无非就一个目标,提高职级!那么我们就应该是面向职级学习,目前按照市面上的分级大致可以参考阿里的P系列。 明白了学习的原因,下一步就是要制定合适的学习目标了,那么怎么制定适合自己的目标呢? # 如何制定学习目标? 制定目标可以参考《刻意练习》一书, 核心的点就是:目标的难度要在自己本身上加1, 也就是难度+1式学习。那么怎么知道自己的难度在哪呢? 这个可以先找一个目标学习,如果有看不下去的状态就说明难度过高需要降低, 如果感觉太容易就需要提高一点难度。 既然我们是面向职级学习,那么我们就必须知道每个等级对技术的要求是什么。比如现在我们大致是处于P5起步阶段,那么就需要先从P5的难度开始进阶。 ![p5.png](./img/p5.png) P5的路线如上,核心要点就是后台开发必备技术,spring全家桶, orm技术,JAVA常用类源码。 当然每个人的进度是不同的,可能这其中大部分的技术都用过了,那么就需要走到下一步了,源码阅读。 这里贴一下P6的职级要求: ![p6.png](./img/p6.png) # 计划的制定 在明白了为何学习,如何制定学习计划后,就需要开始制定计划了,根据前面所说难度+1式学习法。基本上JAVA的基本用法都用过了,下一步就是要深入研究了。 这一阶段的核心要点在于: 常用jdk类源码,spring核心源码,Mybatis源码。 按照难易程度排名的话: JDK类,Mybatis源码,spring核心源码。 确认了方向后,接下来就是制定清晰的计划了。 ## 什么叫清晰的计划呢? 一句话, 在有限的时间里阶段性的达成明确的目标。 这个和OKR工作方式是一样一样的,非常科学。提出明确目标,制定关键结果,确认结果日期。 举个例子:  我的目标是在一年内完成P5-P6的核心知识的储备。 那么就可以计划为这样: ![img.png](img/jihua.png) 计划虽然定完了,但是这还不够,计划是死的,人是活的,不能过于理想,随着学习的加深必然对这种长计划有动态调整。时刻找到最适合自己的才是最好的。 ## 学习的要点 学习还有一个重点,就是需要有足够的反馈,没有反馈我们很难坚持下去,玩游戏为什么会停不下来,就是因为游戏的反馈机制,每一次升级,每一次胜利都深深的刺激着你。 学习也需要找到自己的反馈点,我的反馈点就是实现一遍他们,虽然非常耗时,需要耗费很大精力,但这条路一定是收获颇丰的。 # 加速学习的方法 大家一定清楚有一个好老师有多么的重要, 能让我们少走多少弯路。这里也是提倡优先找到好的老师,那么找不到好的老师的话就没辙了吗? 不,我们还可以找到好的资料,一份好资料胜似一个好老师。那么怎么找到一份好的资料呢? 第一个, 找到牛逼的人,看他们有没有自己的公众号,会推荐什么,有没有自己出课程,课程是不是你想学的? 这里推荐一个Up主《鲁班大叔_007》专注研究JAVA领域源码学习,创办了源码阅读网 coderead.cn。 还有之前提到的《石杉的架构笔记》,作者也出了一些很不错的课程,而且便宜,教学风格很不错,每堂课必须有实例反馈。 第二个, 找到好的教育机构, 程序员应该都知道慕课网,最近也出了一些确实不错的课程 第三个, 找同事学习,这里为什么列在第三位呢,因为人家也要工作呀,能自己的解决的事情还是最好不要麻烦别人了。 第四个, 找好书, 看书对于程序员来说是比较枯燥的,但是如果前面都没找到合适的话,就只能走这一步了,豆瓣查查高分书籍,你值得拥有。 第五个, 暂时没有了,欢迎补充。 ps:  学习是一种逆人性的活动。它极度消耗我们的意志力, 当感觉学习无力时,一定要放下学习,出去走一圈,吃颗糖恢复一下。 掘金地址: [三海](https://juejin.cn/user/2788017217231703) 已完成: - 常用数组源码: 1. [arrayList的add源码阅读](./jdkcode/src/arraylist/README.MD) 2. [copyOnWriteArrayList源码探索](./jdkcode/src/copyonwritearraylist/README.MD) 3. [hashmap的源码探索](./jdkcode/src/hashmap/README.MD)