最近看了 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 是很靠谱的架构。
越写越有点丧了,其实自己也没有那么菜。。。
- 技术上 p6 水平吧,es6/react/redux/electron,js 相关生态基本都很熟悉了,但完全不知道要怎么到 p7。
- 思维比较缜密,逻辑也算清晰,写的 bug 相对来说还算少,代码可读性也还可以。
- 英语不错,读写口语都没什么问题。
- 软能力方面都还不错,沟通啊做事啊什么的。
- 对技术算是有追求,但我觉得自己是,相比那种特别喜欢钻研底层研究各种原理的人,更关注怎么做出来一个好用产品出来的人。不是科研心态,算是匠人心态多一点。(当然不是说底层原理不重要,我也是会去学的,但更多是理解思路除非有需要不然不会一路深挖下去)
瞎写一堆,就这样吧。马上 2019 年了,祝 v2 的水友们新的一年保重身体,好好赚大钱。