注:本文是摘自 任玉刚 的公众微信号,部分摘抄
做开发的时间长了,会发现:对程序员这个高度依赖学习的群体来说,很多人的工作年限在不断增加,但是技术水平却没有相应的提升,其实是因为缺少了一套行之有效的学习方法。
下面分享 3个通用的学习方法,这些方法,对我提高自身技术有很大帮助,希望对你也有用。
1 吃透基础技术
2 养成良好的阅读源码的习惯
3 制定长期的技术学习规划
下面,我们来逐条看一看这 3个方法
1 吃透基础技术
基础技术是各种上层技术 共同的基础。吃透基础技术是为了,更好的理解程序的运行原理,并基于这些技术,进化出更优化的产品。很多分布式系统架构,以及高可用,高性能,高并发的解决方案,基本都可以在基础技术上,找到它们的身影。所以,对基础技术的学习才能够更好的掌握更高维度的技术。
很多人会觉得底层的技术博大精深,从 语言,编程范式,算法和数据结构,计算机原理,网络,数据库,分布式技术 等等
,怎么可能有时间去掌握这门多东西呢。现在很多技术大佬扔在夯实扩展自己的底层技术,自己就更没有理由忽视这一块了,不是吗?
2 良好的阅读源码的习惯
阅读源码要能回答两个问题:要解决什么问题 + 是如何实现的?
大到整个项目,小到一个模块,函数,看的时候,都要抱着这两个问题去看。看完了这两个问题能够答上来,才是有效。
阅读源码时,这么做,你会更有收获:
背景调查:
看官网介绍,维基百科,了解主要功能,被应用于哪些项目,以及基本的使用,掌握这些基本信息
使用框架:
至少follow"Get Strated"
,做个小demo
(真的有人连API都没有调过,上来就看代码)
尽可能编译调试:
能调试的代码,几乎没有看不懂的
了解一些设计模式:
这样看到名字里有proxy,builder,factory
之类的,就心领神会了
横向分层,纵向分块:
代码都是分模块的,有的是core
,有的是util, parser
之类的,要知道看的是哪一层,哪一块。有的小项目分层不明显,也不必强求
注意:要看的不只是 语法上的技巧,更重要的是,设计上的思路和原理