Programmer Mental Models¶
Estimated time to read: 1 minute
这个章节的根本目的是研究何谓“高级程序员”,这个高级到底是什么?怎么获得这个高级?
一个高级程序员如何定义:
-
mechanism: 不同层级、不同种类的model
-
domain model: 特定行业的业务逻辑
-
causal reasoning: 在复杂系统中快速缩小未知空间,本质上是model refactoring
-
ownership: 对更大生命周期负责
对问题进行不同层级model的定位,程序是非常复杂的。有三层model是首先要掌握的:
- computation
最底层的对于“计算”的语义抽象
- implementation
相关语言、frame、软件系统在实现时候构建的model
- domain.
业务逻辑
Right Mental¶
-
Don't worry about trying to understand all of the code.
-
As a developer, you may need to work closely with designers. If you understand basic design terminology, you'll have a shared vocabulary and you'll be able to participate in the design process more actively. This can make your workflow more efficient and result in a better user experience.
高级程序员心智图¶
- Soloway, E., & Ehrlich, K. (1984). Empirical studies of programming knowledge.
Progrmming plans and discourse rules.
-
Shneiderman, B. (1980s). Cognitive models in programming.
-
Aho, Lam, Sethi, & Ullman, Compilers: Principles, Techniques, and Tools
Discourse Rules¶
- Memory layout;