2019 年了,来分享一下有哪些东西是你并不懂的

2018-12-31 01:53:54 +08:00
 shadeofgod

最近看了 Dan 的一篇博客,Things I Don ’ t Know as of 2018,确实是有点诧异。非前端的同学可能不太熟悉,dan 是 react 的核心贡献者,redux/create-react-app 的作者,在 react 生态里非常有名。一般常人眼里都会对大牛有着很高的期待,会认为他们在自己的领域里无所不知。因为我算是对自己要求比较高的,知道自己有很多东西不会所以会给自己不少压力,我相信 dan 应该有自谦的成分,不过看到如此大牛站出来坦白说他也有很多不懂的东西,还是有一种哇原来大牛也有不会的东西这种感觉,顿时觉得应该少给自己一点压力。

作为一个前端,感觉自己很弱的地方:

越写越有点丧了,其实自己也没有那么菜。。。

瞎写一堆,就这样吧。马上 2019 年了,祝 v2 的水友们新的一年保重身体,好好赚大钱。

3191 次点击
所在节点    程序员
37 条回复
orangeade
2018-12-31 02:15:39 +08:00
作为非科班的后端:

编译原理,图形学:不太了解,不是科班,而且工作中接触不到,可能有空时会去自学一下

前端的各种打包构建工具,各种现代前端框架,仅限了解,不怎么熟悉

UI/UX/产品设计 /原生 App 开发:这些领域都还没接触

函数式语言仅限了解

分布式原理、大数据开发:属于了解生态和用法,也了解部分工具原理,但是基础的理论(CAP/raft 之类) 还有待加强

容器、微服务、服务网络:有待实践和深入
aijam
2018-12-31 03:21:56 +08:00
不懂:写硬件驱动,寄存器分配问题,dependent type,FLP impossibility 第三步证明,实现 SMT solver,麦克斯韦方程,common lisp。
yanaraika
2018-12-31 03:43:48 +08:00
- 分布式系统的很多基础知识:读了不少工程 paper,但一些基础性的东西(consistency、cap、flp、liveness 等)还有欠缺,准备跟一门 advanced paper reading course
- 前沿系统领域的进展:osdi sosp eurosys 和 usenix 下感兴趣的几个方向。准备补一补最新学术界的进展
- 程序分析:很多时候非常好用
- 虚拟化:准备读一些工程代码
elikoi17
2018-12-31 03:52:35 +08:00
除了学过的教科书上和用过的东西的官方文档新手教程里面,DFS 在 10 步以内能搜到的内容,都只是听说过看不懂或者根本没见过
vegito2002
2018-12-31 04:36:53 +08:00
女人
zealot0630
2018-12-31 04:57:49 +08:00
很多东西不是看你懂多少,更重要的是你理解了多少,比如 qsort,不就一行的事情么

qsort(v) = qsort(v.filter(_ < v[0])) ++ v[0] ++ qsort(v.filter(_ > v[0]))

你理解了这一行,把他翻译成你正在使用的语言,边界条件都考虑进去,会有困难么?



另外,拿你所说的 Observable 这个具体点的例子,这就属于一个需要从上往下理解的,理解这个东西全靠自己,比如你能否理解下面这俩问题:

1. vuex 的 data flow 为何要设计 view action state 三个玩意,只有 view 和 state 不好么? view 直接更新 state,state 直接更新 view
2. angular 为何要引入 emitter,直接在 ovservable 的 callback 里面做 render 不好么?为何要 emit 一个事件出来,下次再更新 dom

这两个东西是同一个问题的两种不同解决方案,你如果设计实现过类似系统一定就明白,只是用框架的话,用 100 年也无法了解为什么要这样设计。
zealot0630
2018-12-31 05:58:54 +08:00
半夜写了一堆不知所谓的,大意就是你会什么不重要了,重要的是你理解了什么

语言建议不要学 C/C++这种毫无借鉴意义的古董了,建议学习一下 Scala 和 Haskell,一个工程向的巅峰之作,一个学术向的巅峰之作
subdued
2018-12-31 06:15:39 +08:00
nothing2
2018-12-31 08:02:06 +08:00
你是谁?从哪儿来?到哪儿去?
gzlock
2018-12-31 08:04:30 +08:00
不懂怎么赚大钱是最痛苦的
hugee
2018-12-31 08:25:20 +08:00
罄竹难书
dacapoday
2018-12-31 09:14:43 +08:00
@zealot0630 这个要分开看吧,纯 c 还是值得的。文法简单,而且 c 系语言都继承了些 c 的约定,容易触类旁通。c++还是算了,太复杂,学不完。
beginor
2018-12-31 09:48:55 +08:00
知识就像一个圆圈,圆圈内是你掌握的,圈外面是你未知的。
你掌握的越多,你的圈就越大, 同时面临的未知领域就越大
aijam
2018-12-31 09:54:13 +08:00
@beginor 上一句比喻和下一句的逻辑怎么感觉一点都不连贯?
zealot0630
2018-12-31 10:17:52 +08:00
@dacapoday c 语言简直就是历史糟粕集合体,学这些糟粕有何用。

说起文法简单,Scala 比 C 简单太多了,Scala 的 spec 只有不到 200 页,C99 有 600 页。而且 Scala 实现了比 C 多几倍的语言特性。

C 的糟粕就举几个例子:

1. null,Scala 可以说消灭了 99%的 null 需求,剩下 1%是为了兼容 Java。
2. offset_of/container_of,这俩宏基本是每个 C 程序员天天见的,受限于 C 语言的表达能力,容易只能用这种浸入式方法实现。
3. 宏,macro,糟粕中的糟粕,功能强大?!,全靠同行衬托,因为 C 的表达能力太差,才显得宏功能强。使用难度高,难调试,易出错,IDE 不友好。其中 IDE 不友好是最致命的。
dacapoday
2018-12-31 10:35:35 +08:00
@zealot0630 如果准备设计一门新语言你说得对。但是 c 这些糟粕不少被继承到其他语言中,你不得不用。
Daiwf
2018-12-31 10:36:42 +08:00
什么都不懂靠直觉写代码的路过
zealot0630
2018-12-31 11:51:14 +08:00
@dacapoday 题主的困扰是如何提升,如何突破,这样情况下当然是去学习新语言的高端特性,开阔眼界。如果方向是如何入门,这种才会去推荐学 C/Java
yangzhezjgs
2018-12-31 12:00:51 +08:00
楼上的说法有失偏颇,C 语言是至今还是整个计算机知识体系最基础的部分之一,如果想了解 Linux 内核或者某些系统级软件,如 ngnix,不会 C 可谓寸步难行
yjm9898
2018-12-31 12:16:02 +08:00
@beginor 老铁说得很对呀。full stack 真不容易

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/522652

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX