CatCoding

第 12 期,高效阅读技术书籍;工程师的产品思维;可视化生活数据

2022-05-08

这个周刊大概就是分享些能触发我分享欲的东西,每次三到四个主题。我觉得不单纯是那种聚合类的信息收集,而很多是自己的相关见解,这样可读性更好点,而且也不至于让我看起来像是一个收集信息的机器人。

如果有建议请告诉我,这样也许能做得更好。

如何高效阅读技术书籍

How to Read Technical Books Effectively

我上学的时候经常读技术书籍,感觉那时候好的技术书籍非常多。现在我看技术书少些了,而且很多时候都是看电子版,没了那种浸润书香的感觉。

这篇文章谈到如何高效地阅读技术书,高效意味着以最短的时间获取书里的价值。文中谈到,首先要区分的是“参考书”和“非参考书”。

参考书我们可以快速浏览,在脑海中建立知识索引,具体细节可以再回来翻阅。比如:

非参考书:

作者的这个举例我不太赞同,一本书是否列为参考类别,取决于读者的时间和积累,比如上面那本设计模式的书,在学校学生有时间从头到尾读一读会很好。

而对于已近建立了知识索引、或者有经验的工程师,一本书中可能部分是参考的,部分是非参考的,比如我最近在看《JavaScript 高级程序设计》,我觉得其中 JavaScript 面向对象部分值得精读,而另外几章比如 Canvas 之类的,对我而言就是参考章节,等我需要的时候来翻翻。

所以拿到一本书,最好是能有个大致类似地图的索引知识,否则从头到尾读收效甚微。

作者最后提到一点我很赞同,就是用自己的话来解释新学到的东西,这很重要也不容易达成。另外我认为如果能在实践中用到才算真正掌握,否则都是纸上谈兵。

工作年数多一些之后,我觉得学技术的焦虑没了,大概是意识到了自己永远无法掌握所有技能,也意识到了学习能力更为重要。还有就是,工作和生活中的事远比单纯的技术学习艰难、复杂多了🤣

具有产品思维的工程师

The Product-Minded Software Engineer - The Pragmatic Engineer

之前分享过刘建硕关于创造者和实施者的文章:创造者和实施者。这篇英文文章里阐述了工程师的产品思维。

具有产品意识的工程师是对产品本身非常感兴趣的开发人员。他们想要了解如何做决策,人们如何使用产品,并且喜欢参与到产品决策中去。如果他们放弃工程的乐趣,可能成为一个优秀的产品经理。上次听播客《聊微信 8.0 和产品经理如何成长》中,张小龙谈到自己更多还是工程师思维,而工程师思维在做产品的时候非常重要,这包括逻辑推理能力,数据分析能力等。

稀有的能力往往是组合起来的,技术和管理、产品、运营任何一个组合起来都能提高自己的稀缺性。

如果你想要变成一个更具有产品思维的开发者,有如下建议:

  • 理解你所在公司的商业逻辑,为什么成功或失败
  • 和产品经理达成更为密切的联系,而不是他让你做什么,你去执行这样的单向关系
  • 了解工作中的上下游,多和不同角色的人打交道
  • 更广泛和深入的参与用户调研,需求分析,数据和结果分析
  • 提供工程和技术上的 trade-off,重视非技术人的反馈

上周刚好看到 Cat Chen 写的 Facebook 工程师文化独特之处,看起来 Facebook 就是秉承这种理念,工程师必须对产品端到端负责,所以和 PM 是密切协作的关系。

我之前在大疆有段时间做物流相关的系统,跟着业务分析跑去仓库和物流人员交流,回想起来也有些意思。总之,不只专注于技术,也许能给开发工作带来些不一样的体验和更大的成就感吧。

数据可视化

How I put my whole life into a single database · Felix Krause

作者把自己的很多生活中的数据可视化了,做得非常酷炫 ,而且所有代码都开源了。这些数据包括吃了什么、体重、心情、位置、运动量等等。

那数据从哪里来呢?一共有以下几个来源:

对于手动输入的数据,作者使用的是 Telegram API写了个机器人可以让自己在对话框里发出数据:

这是个不错的点子,上次有个人在 Github 上说要给 obweb 做 Telegram 机器人。我之前也想过能否像 flomo 那样在微信里直接输入灵感笔记,这周又稍微看了看微信的接口,发现公号需要微信验证才能有那个接口的权限,好吧,我放弃了。

这周看到的另外一个数据可视化的例子是 PingCAP 发布的工具,可以用来查看开源项目的相关数据。

Open Source Software Analysis and Comparing Tools

我玩了玩,感觉做的非常不错!

言论

Humor

公号同步更新,欢迎关注👻