前言
#种一棵树最好的时间是十年前,其次是现在
很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。所以我建议你看文章博客,不能只看一篇,通透的、连续的学习,效果才是最佳的。
Alibaba作为一线互联网公司的代表,是大部分程序员梦寐以求的工作场所,确实大厂出来的程序员,其背景也更值钱,含金量也会更高。实际上,Alibaba程序员早已成为行业内学习的榜样和标杆,但实际上光鲜的背后付出的血汗是我们没看到的。那么阿里程序员平常都是怎么学习的呢?
今天就讲讲让我们一众菜鸡惊艳到的“Java突击宝典”,这份宝典在Alibaba内部流行已久,适合各个年限的程序员来学习,它主要将需要学习的技术栈分为了三个阶段:
- 0-1年开发经验(夯实基础):Java基础+并发编程+JVM基础+设计模式+SQL基础与优化+HTTP/TCP协议+算法与数据结构+学习能力+源码+Redis+了解一个消息产品
- 1-3年开发经验(合格的程序员):JVM基础调优+常见框架源码+MySQL优化+缓存+熟悉消息中间件(至少一个)+熟悉微服务(至少一个)+互联网项目经验+Netty+分布式技术
- 4-5年开发经验(提升技术广度与深度):性能调优+分布式技术+微服务+技术选型+分布式场景问题+互联网项目经验+项目管理+团队管理
0-1年:夯实基础
1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java泛型+Java序列化+Java复制)
2.并发编程(线程池+生命周期+锁+阻塞队列+CAS等)
3.JVM基础(线程+JVM内存区域+JVM运行时内存+垃圾回收与算法+GC+IO/NIO+类加载)
4.设计模式(24种设计模式)
5.SQL基础与优化
6.HTTP/TCP协议
7.算法与数据结构
- Java算法(二分查找+排序算法+回溯算法等)
- 一致性算法(Paxos+Zab+Raft+NWR+Gossip+一致性Hash)
- 数据结构(栈+队列+链表+散列表+排序二叉树+红黑树+B树+位图)
8.Redis
1-3年:合格的程序员
1.JVM基础调优
2.常见框架源码(Spring+SpringMVC+Mybatis)
3.消息中间件(MQ+Kafka)
4.微服务
5.Netty
4-5年:提升技术广度与深度
1.性能调优
2.微服务
3.分布式场景问题
4.项目实战
- 高仿小米商城项目
- Alibaba订单管理系统项目
- API监控系统
总结
对程序员来说,技术上的学习是“防御性”的,我们在为未来学习,为了在新项目中应用,所以想要能够在未来市场上拥有自己的核心竞争力,占据一定的地位,坚持学习不断提升自己,才是避免三十岁焦虑的关键。
这份Alibaba内部流行的“Java突击宝典”就免费分享给大家,希望都能够通过自我学习,将技术深度和广度提升到不一样的层次。