个人成长 - 学习方法
来自程序员鱼皮的编程学习方法经验分享。
如何学习新技术
- 基本了解
- 了解该技术是用来做什么的?优缺点?适用场景?
- 通过网上的经验分享帖来对怎么学习这个技术有个大致的认识,或看大佬的介绍视频
- 进一步,上网看别人的完整视频/书籍教程,或者官方文档,别人的技术文章等等来进行系统学习。
- 快速上手
- 跟着教程或官方文档(Get Started)快速跑通这个技术的 Demo,
- 比如学习Spring Cloud框架,想在Idea里搭建一个项目,跑简单的程序demo, 有个大体的认识。
- 系统学习
- 跟着教程或官方文档完整学习,并能够被动使用这个技术来完成项目或解决问题。
- 除了以视频/书籍教程学习为主线外,需要更加注重实践。
- 多写代码、遇到问题多利用搜索引擎自主解决、同时可以多看别人的经验和技术文章,持续积累和写笔记总结。
- 主动运用
- 在能够使用技术完成项目后。
- 进一步了解该技术的特性,并做到熟练运用,主动 用该技术去解决对应的问题。
- 可以通过阅读官方文档、进阶书籍等进行学习。
- 多自主思考,使用该技术做一些有意思的项目,在项目中巩固所学知识。
- 了解原理
- 以上帝视角来了解该技术的核心思想、架构设计、关键模块、各模块的联系和作用等。
- 可以通过百度、阅读官方文档、技术文章、进阶书籍等进行学习。
- 深入源码
- 阅读该技术的源码,由整体到局部逐渐深入。
- 对于初学者,不建议自己去啃源码,可以和用开源仓库或进阶教程进行学习,掘金小册或极客时间都是不错的。
- 如果对基本框架还不熟悉,或者语言特性还不够了解,还是不建议直接阅读源码。
- 修改源码
- 能够在该技术源码的基础上修复一些 Buq、修改部分源码、或者定制开发新功能。
- 可以多和原作者、项目的issues 区讨论交流,最好能给该项目贡献代码,写在 GitHub 上也是很加分的经历。
- 给知名项目贡献代码,比自己做一个完整项目还要亮眼
- 推陈出新
- 在把一门技术(框架)吃透后,可以尝试自己实现类似的技术框架。
- 弥补原技术的缺点,使得你自己的东西也能拥有一席之地。
该学到哪一步?
- 如果是找一般工作,前两步即可,很多时候,应该先注重广度,再去深耕某个内容。
- 如果想进大厂,至少完成前四步
- 在做项目时,如果需要用到某个没学过的技术,也是建议先百度,去搜一下这个技术怎么最快使用起来?怎么最快满足我们的需求?而不是任何新技术我们都要看完整教程去学习。
高效看网课
- 如何选择网课
- 了解技术全貌,确定目标
- 倍数 + 跳过(一些熟悉的点,快速跳过;不熟悉的点,放慢速度)
- 记录 + 回想 (可以记录笔记,不要过于详细)
高效搜索
即时搜
搜索习惯:
- 搜学习资源:B站,CSDN,网盘聚合搜索平台
- 搜学习路线:知乎、掘金
- 搜项目:GitHub、Npm 官网、掘金、Gitee、百度开发者搜索
- 搜资讯:InfoQ、掘金、开源中国、微信搜一搜、51 CTO
- 搜图片:百度、Google、Bing、Pexel、Pixiv、识图软件
- 搜 Bug:百度、官方文档、Stack Overflow、GitHub Issues 区、百度开发者搜索、CSDN