当你决定要掌握一门新的语言或技术框架,首先就是要找到最佳的学习路径,那这个就仁者见仁智者见智了,但我还是总结出一个Check列表,这些内容既有自己的经验,也来源于对一些优秀同事小伙伴们的观察,下面的条目顺序可以依据你的自学目标、项目情况和学习能力灵活调整。

1. 从系统学习的途径入手

什么叫系统学习呢?就是了解所学东西的来龙去脉,来源最好是视频,youtube上或其他一些视频网站都有很好的资料,再者就是去看一本《xxx从入门到精通系列》,当然还有像菜鸟教程https://www.tutorialspoint.com/,都是很不错的在线教育网站,一般跟着一个系列走下来也就达到了初级阶段,此阶段的目标是能看懂代码。

2. 从所要学习技术的官方网站去搜寻学习路径

如你想学习python,那如何学习呢?可以从其官方网站查看Recommendations,里面涉及零基础编程人员路线、有经验的程序员从其他语言转过来的最佳学习路线,由此我们可以做到心中有数,再依据个人情况去选择。

3. 掌握尽可能多的语言

为什么要掌握尽可能多的语言?因为无论是后端技术还是前端技术,框架或技术架构都离不开语言,语言是水,我们去学习算法也好,学习数据结构也罢,一些关键技术的解释都离不开编程语言,而且有些东西是由某特定语言率先引入的,难理解的思想都是通过相关代码解释。 这里我们要按照如语言语法->项目结构->常用内建模块的使用->依赖包的构建->部署的优先级去学习。

4. 搜索关键词xxx最佳实践

这一步很重要,往往你会某种技术栈并不代表你能把该类项目做好,为了让项目代码质量更好,可维护,更干净,需要遵循业界的一些标准,这是专业的程序员应该做到的。

5. 到一些开源网站社区关注所学技术

如著名的gitHub,follow也好,star也好,从中你可以阅读到优秀的程序代码段落,如有余力还可以参与其中反馈社区。

6. 乐于分享

整理归纳所学知识以博客文章或公司团队内部Session的方式分享出去,即输出是最好的学习方式。

7. 回答技术社区相关问题

著名的如Stack Overflow,国内的掘金等自己搜索,既帮助了别人也提升了自己。

8. 翻看招聘职位的JD或招聘公司的面试问题

这一步可以做到查漏补缺,检查跟所学技术相关联的其他技术,头脑中建立关联,去check自己学习的是否系统,并用来检验自学效果的深度与广度。

9. 订阅学习专栏

如极客时间、唯库、千聊都推出一些学习专栏,以便让你知道第一个吃螃蟹的人所踩过的坑,他们往往以过来人的经验即使你是一名技术管理者也可以达到增强技术判断力的效果,这会让你的工作效率事半功倍。

10. 关注官方文档更新

每一门需要学习的技术都有其官方网站,我们应随时关注其更新,有些在github上的issue以及pull request,如果你们的项目采用了该技术也要时刻关注。

11. 实践式学习

用所学的知识或框架写个side project或小应用。积极主动争取公司相关项目的参与权,让自己所学发挥最大价值,更能在实践过程中成长。

12. 迭代思考

用已有经验找出新东西的相似性,推导其使用场景,思考方式学习同样是一个演进的过程,不断迭代重构我们头脑中的技术栈,类似于一个思维导图。

13. 保持刻意编码的习惯

如果你的目标是技术专家或架构师,请保持刻意练习编码的习惯,途径是github连击或者遇到一个新问题尝试用所学的东西去解决。