前言
这里主要整理一些日常学习资料。比如计算机科学、JavaScript、TypeScript、Node.js、Haskell、Bash、文学、音乐等。笔者每当见到有价值的学习资料的时候,就会归纳在这个系列里。在需要补充某个短板进行学习的时候,或者温故复习的时候,可以迅速找到学习资源的索引。
当然笔者,也会把过时的、质量较低的学习资源给删除掉。
另外,需要注意的是,尽管此清单涉及范围很广,但是由于第一,笔者是 Web 前端开发工程师;第二,时间有限。所以清单整体倾向于 Web 前端领域,以及笔者目前也只是学习了其中很小一部分。
总而言之,这是一份笔者打算长期维护的学习清单~ 有需要的同学可以关注收藏~
这个学习清单来源于笔者在语雀中维护的 苏里查阅手册,日常主要更新也会在语雀上。
PS:部分为英语资料、以及付费资料。质量上乘,推荐学习和反复学习。
计算机科学
计算机科学广义上来说,可以作为长期学习目标,不断提升这方面的知识广度和素养水平。
以及推荐阅读《深入理解计算机系统》
数据结构与算法
长期编写应用软件的过程中,将会越来越意识到这些的价值所在。
推荐阅读 + 练习 + 视频
《算法》
algs4.cs.princeton.edu
普林斯顿大学丨算法第四版(中英双语字幕)
MIT 6.006 Introduction to Algorithms, Fall 2011
数据结构入门视频系列:Youtube | Data structures
TypeScript
体验类型语言的优雅之处
JavaScript
保持高效精准的学习!
Frontendmaster 和 Egghead.io 两个都是订阅收费的前端视频学习网站。
Frontendmaster 注重从入门到进阶的学习路线,我订阅学习了接近半年,进步明显,期间也安利了不少朋友和同事。
Egghead.io 主要都是一些热门流行技术的教学短视频。我也订阅了一段时间,但是没怎么看,有点浪费。因此建议其实很多教学视频可以也可以在 B 站 或者 油管 上进行搜索。
以及推荐阅读
《JavaScript 高级程序设计》
《JavaScript 面向对象精要》
最近发现这个不错的教程(2019/12/10)
十分推荐 NodeSchool 里面有实战练习帮助学习,对我帮助很大。
目前还没有上线的 Dan Abramov的Just JavaScript教程,但是可以通过邮件订阅,提前阅读教程草稿。
极客时间也可以推荐
李兵《浏览器工作原理与实践》
winter《重学前端》
通过 JavaScript 一些有趣的难题来深入学习
TypeofNaN JavaScript Quizzes
以及各种前端知识体系比较齐全的博客系列
社区
工具
学一点调试技能,不紧急但很提升解决问题的效率。
webpack 也必须掌握(官方文档)
正则表达式
正则表达式是一个神奇的领域,不了解的人可以永远不用到它,也不承认学习正则的价值。了解正则并从中体会优势的人,将会持续不断的加深认识。
Node.js
从理解社区各种工具,到开发工具,到中后台服务架构,前端工程师必须掌握的技能。
推荐阅读
《深入浅出 Node.js》
《Node.js 硬实战》
最近发现一篇关于流的博客,补上(2019/12/10)
还有学习 NodeSchool 的 stream-adventure
StackOverflow 高赞回答:How do I get started with Node.js
介绍 Node.js 原理:Node.Js Under the Hood
Node.js TypeScript | Blog Series
Haskell
学习 Haskell 就见仁见智了,总而言之,学了能加深对函数式编程的认知。
Bash
持续优化工作流,编写高效率脚本的工具
还有学习 NodeSchool 的 learnyoubash
高质量的 bash 脚本集合! bashoneliner
技术社区 & 博客
可以推荐 Github、Medium、知乎、Ted、Youtube 等等。
推荐油管视频:
Web Development In 2020 - A Practical Guide
多读有益,利用碎片化时间进行吸收。
除此之外还有很多,日后见到补充。
开发、学习工具
Mac
Dash 离线文档工具
iTerm2 命令行
Bear 笔记软件(跨平台)
Microsoft Todo 任务管理工具(跨平台)
iPhone
Tide 白噪音软件
Medium 博客
绘图工具软件
绘制草稿、示意图、流程图等
Excalidraw
Draw.io
代码示意图
Carbon
设计模式
从理论上来说,我们不能停留在简单编程实现需求上,需要认识代码设计的必要性。时刻谨记 SOLID 五大原则,并且灵活运用多范式编程(OOP/RP/FP),才能让代码保持健壮和长期迭代下可维护。
同时也需要记住的是:
- 保持简单
- 先设计后实现
- 避免过度设计
- 设计服务需求
推荐阅读
《图解设计模式》
《Head First 设计模式》
《UML 基础、案例与应用》
《架构整洁之道》:) 尤其推荐这本书
编程范式
了解多种编程范式!
OOP
参考设计模式章节
RP
了解学习 RxJS,在特定技术场景下运用此类范式编程。
FP
函数式编程里的纯函数、高阶、组合、还有 Functor 和 Monad 都是一些很迷人的概念,学习这些知识十分有价值。
推荐阅读
《mostly-adequate-guide》
《JavaScript 函数式编程指南》
测试资料
比较常接触的有单元测试和 e2e 测试。比如推荐:jest、puppeteer、cypress
计算机网络
作为前端工程师,熟悉 HTTP 协议是必须的。
推荐阅读
- 《HTTP 权威指南》
- 《图解 HTTP》
- 《图解 TCP/IP》
以及相关工具,比如 curl、HTTPie
标准文档
各类官方 API 文档,当被网上各类资料迷惑时,应当寻找权威资料纠错。
- W3 TR
- MDN
- Hypertext Transfer Protocol -- HTTP/1.1
- HTTP Over TLS
- Hypertext Transfer Protocol Version 2 (HTTP/2)
- The WebSocket Protocol
- Git Reference
- Pro Git
- ECMAScript 2018
自我成长
工具网站
练习平台
一些有趣的网站,可以拿来刷题学习,训练自己。
音乐资料
有空多学学音乐。
一个 JavaScript 的音乐工具类库
推荐阅读《聆听音乐》
文学作品
个人比较喜欢的文学作品,纯做备忘录
《白夜行》
《心有猛虎 细嗅蔷薇 -- 余光中散文集》
《雪落香杉树》
《禅与摩托车维修技术》
科普作品
关于科普书,目前正在读,感觉还不错的
《肠子的小秘密》:) 科学介绍人类肠胃的作用和机制
关于讲数学的,也很平易近人
《程序员的数学》
《程序员的数学 - 概率统计》
《程序员的数学 - 线性代数》
总结
补充:Github 的各种 awesome-list 系列也有大量的学习资源
逆水行舟,不进则退~
加油~