为什么要学习基础技术
-
一通百通
所有技术原理和本质都在基础技术上
-
突破瓶颈
只有基础技术才能让你上升到更高的层次
在技术的世界里,量变永远无法导致质变
-
自己推导
掌握基础技术以及原理可以让自己推导答案和趋势
有哪些基础技术
- 程序语言
- 原理、编程范式、设计模式、代码设计、类库…
- 系统
- 计算机原理、操作系统、网络协议、数据库…
- 中间件
- 消息队列、缓存、网关、代理…
- 理论知识
- 算法和数据结构、系统架构、分布式…
如何识别新的技术
-
解决了什么样的问题
- 任何技术的出现都是要解决已有问题
- 降低技术门槛、提高开发效率、提升稳定性…
-
提升了什么样的能力
- 可以计算更为复杂的计算
- 可以自动化更为复杂和更为困难的事
-
会成为主流技术的特征
- 有大公司做背书
- 有杀手级应用
- 有强大的社区
-
Java、Go
格局、认知
被动学习 vs 主动学习
实践、讨论、思辨、分享、训练
自己动手搭环境、翻译、模仿
学习的相关方法
- 挑选知识和信息源
- 第一手资料非常重要(英文非常重要)
- 注意基础和原理
- 我可以忘了这个技术,但是我可以自己徒手打造出来
- 使用知识图系统的学习
- 通过知识关联可以进行"顺藤摸瓜"
- 举一反三
- 用不同的方法学同一个东西
- 学一个东西时把周边的也学了
- 总结和归纳
- 行成框架、套路和方法论
- 实践和坚持
- 实践才能把知识变成技能,坚持才有沉淀
如何阅读代码
- 基础知识、文档、代码结构
- 模块、接口、关键业务路径
- 代码逻辑、运行时调试
画时序图、流程图
如何面对枯燥和硬核的知识
- 找到应用场景和牛人
- 补充基础知识
- 咬牙使劲啃
其他小技巧
- 不要记忆
- 把信息压缩
- 经常犯错
- 写blog
- 它山之石可以攻玉