mind dump: 工程师思维方式  Problem List

mind dump: 工程师思维方式 Problem List

TL;DR: 寻找几个喜欢领域里的(大)问题放在脑袋里, 然后不断地去解决它.


最近 Dan Abramov 的 The Elements of UI Engineering, 让我回想起 Edward Kmett 的 Stop Treading Water: Learning to Learn (slides).

根据 Dan 的自述, 好像他什么东西都不会, 但是为什么会觉得他这么牛逼!? The Elements of UI Engineering 这篇文章解答了这个疑问: 他在脑里维护了 UI 领域里面方方面面会碰到的问题, 而且这篇文章里也给 Entry-Level 工程师常见的疑问 -- "我下一步要学什么一个" 解答.

其实类似的建议和做法也算老生常谈, CS 研究励志文 Richard Hamming - You and Your Research, 里面就提到找一个大问题, 然后去解决它. 著名的 Hilbert's problems , 也是如此.

讲多无谓, 推荐直接看 ekmett 的演讲或者 slides.


分享下我 problem list 里面有印象的几个

Expression Problem:

祖与占:第2届函数式编程分享随便记 里提到我怎么遇到这个问题的, 现在不少语言特性或者模式某种程度上都是为了解决这个问题, 这个问题也有 20 年历史了.


Configuration Problem:

函数式编程如何优雅的处理很多 多个函数都要用到的 参数? 里提到过, Sometimes I feel like half of programming is the result of avoiding passing arguments to functions , 全局变量, 依赖注入, type class 各种手法好像都是为了同一个目的: 少传一些参数


View Update Problem:

什么是 view update problem 可以看这个 slides 前几页: cis.upenn.edu/~bcpierce , 这个 view 不限于数据库里的 view, source 当然也不限于数据库作为 source, 例如 view 可以是 UI 里的 view, source 可以是 model. view 可以是另外一个类型的数据库例如 Elasticsearch, source 可以是 mysql, mysql 全文搜索比较烂这种情况很常见, 但是同步这一件事就挺蛋疼.


Ask HN: How did you decide what problems to solve in your lifetime?

A mathematician is a person who can find analogies between theorems; a better mathematician is one who can see analogies between proofs and the best mathematician can notice analogies between theories. One can imagine that the ultimate mathematician is one who can see analogies between analogies.
编辑于 2019-01-12