最近看了 Dan 的一篇博客,Things I Don ’ t Know as of 2018,确实是有点诧异。非前端的同学可能不太熟悉,dan 是 react 的核心贡献者,redux/create-react-app 的作者,在 react 生态里非常有名。一般常人眼里都会对大牛有着很高的期待,会认为他们在自己的领域里无所不知。因为我算是对自己要求比较高的,知道自己有很多东西不会所以会给自己不少压力,我相信 dan 应该有自谦的成分,不过看到如此大牛站出来坦白说他也有很多不懂的东西,还是有一种哇原来大牛也有不会的东西这种感觉,顿时觉得应该少给自己一点压力。
作为一个前端,感觉自己很弱的地方:
算法。bubble sort/quick sort 这种还是能写出来的,当初刷过一点点算法不过现在基本忘光了,知道 Big O notation,平时写的时候也会稍微注意下避免用时间复杂度高的操作,不过更多的复杂算法题就不怎么会了。如果是需要面试的话还是会提前准备一些。
数据结构。linked list/hashtable/stack/queue 这些最基础的了解,但更复杂的什么红黑树之类的完全没看过。
计算机基础 /网络。大概知道 CPU/内存 /硬盘都是干啥的,windows/linux 这些操作系统的细节就搞不太清楚了,TCP/IP,仅限于看过一些面试题解析,三次握手四次挥手那种,深入的细节完全不会。HTTP 还算熟悉,知道常见的 header 和 cors 怎么处理。
底层知识。没看过 chromium/v8 这些源码,什么 libuv,epoll,kqueue 听说过这些单词但是完全不懂,为了查一些问题看过一点点 nodejs 源码( js 部分)。理解 event loop,当初翻过规范和很多文章,不过现在哪些是 macrotask 哪些是 microtask 已经有点忘了,要去查一下。
低级语言。完全不懂汇编,写过 c 的 hello world,(可能)知道 pointer 是什么东西,就到此为止了。看过一点点 Rust,虽然没写过几行但是很喜欢这种工具链很完善的语言,文档什么的写的也很棒。
后端。用过一些 node api,写过简单的 crud,看过 koa 源码,洋葱模型设计的很妙,加上代码短小精悍,看起来还是很开心的。不过仅限于写一个简单的 crud 服务部署到单机上了。看过一些 large scale system 的架构设计,大概理解负载均衡、读写分离、分库分表、数据缓存这些概念,但具体怎么操作完全不懂。一直很好奇分布式什么的几百台机器怎么管理的,自己翻墙的机器上多跑几个服务就不太会管理了。
unix/linux。知道一些常见的命令,但是从没写过复杂一点的 shell 脚本。
原生应用。完全没碰过 oc/swift/kotlin,写过 rn/flutter 的 hello world,比较看好 flutter,打算用 flutter 写个正儿八经的应用。
CSS。不喜欢写 CSS,现在已经只会写 flex,margin,padding 加上简单的 css animation 这些了,业务来说基本够用了。模块化一般用 css module 或 css-in-js 解决。深入点的原理基本不会,BFC 什么的已经忘光了。
函数式。看过一点点函数式的书,知道 curry/compose/pointfree/pure 这些简单的概念,从来没学过一门正儿八经的函数式语言。functor/monad 听说过但完全不懂。
TypeScript。一直想用,用来写过一些简单的 demo,但是要写复杂点的类型就抓瞎了,碰到没有 d.ts 的第三方库用起来也很痛苦。
图形。只用过一些简单的 canvas api,但复杂的图形,可视化相关的完全不会。
Observable。翻过好几遍 rxjs 文档,也自己实现过简单的 Observable,但是各种操作符完全不熟。对这方面很有兴趣,简单页面没什么用,但我相信复杂的 web app 以后基本会是 reactive programming 的天下,typescript/react/redux/redux-observable 是很靠谱的架构。
越写越有点丧了,其实自己也没有那么菜。。。
瞎写一堆,就这样吧。马上 2019 年了,祝 v2 的水友们新的一年保重身体,好好赚大钱。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.