这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly[1]),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》[2],提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

河北太行山脉,山头密密麻麻都被太阳能板覆盖了。(via[3]

本周话题:知识广度 vs 知识深度

上一期[4]谈到,“特长程序员”比“全能程序员”吃香。
网友发给我一个网址[5],国外有人已经谈过这个话题。
国外作者画了一张图,将世界上的程序员比喻成三种形状。
(1)大饼型:拥有知识广度,但没有知识深度。
(2)竹竿型:拥有知识深度,但没有知识广度。
(3)T 型:介于前两者之间。
那篇文章也认为,通常情况下,竹竿型程序员的出路最好,雇主愿意为知识深度买单。因为现代社会高度分工,越是大公司,岗位职责越明确,需要的是领域专家,而不是多面手。
但是作者提到,有一种情况例外,知识广度有明显优势,那就是确定项目路线的时候。
请看上图,右上角有一个黑点,那是公司的目标。当前位置在左下角的原点,两点之间没有现成的道路,需要自己寻找实现路径。

这时,知识广度就发挥作用了,了解的信息越广泛,知道的情况越多,就越可能具备洞察力,能够在多条路径里面,选出最合适的道路。知识面狭窄的人,由于不了解其它道路,不管遇到什么问题,可能都选择他会的那一条路,比如 Java。
这就是全能程序员的优势,判断正确的仰角 θ,使得两点之间距离最短;特长程序员的优势是前进速度 r,可以在既定道路上做到快速前进。所以,知识的广度能告诉你什么是正确的方向,知识的深度则可以让你在该方向上快速前进。
对于长期而艰巨的项目,走得快固然重要,但更重要的是走对方向。如果仰角 θ 不对,走得再快也没用,因为一开始就走错方向,后期必须停下来校正方向,甚至可能永远到达不了目标,白白浪费了生命。
因此,全能型的人才比较适合确定项目方向,担任团队领导。 乔布斯、马斯克就是这样的人,强在知识的广度,而不是知识的深度。他们既懂技术,又懂市场和管理,还了解人文(“我喜欢站在人文和技术的交叉点”),一旦掌握资源,就能带领团队,做出创新的产品。但是,如果让他们担任工程师,绝对是糟糕的工程师,会被开除。
不过话说回来,现实中,谁会因为你知道的事情多,就让你担任团队领导呢?反而是因为你克服了技术难题,才有机会来领导团队。乔布斯和马斯克都是自己创业才出头的,恐怕不是偶然。
总结一下,对于公司来说,如果有明确的技术方向,那么就需要聘请特长程序员,帮助加快开发速度。如果是刚刚诞生的创业公司,方向还在摸索之中,那么全能程序员也许更有价值。

设计师零基础入门

随着互联网一起飞速发展的职业,除了程序员,就是设计师了。
大家知道吗,设计师的招聘需求,一点不比程序员少。而且,由于自学的难度高,好的设计师有时比程序员更难求。
国内的设计师一直存在巨大的人才缺口,供不应求。设计师的平均工资,北京市今年达到了18K,可能已经超过了程序员的平均工资。
在互联网公司的产品团队里面,设计师都是标配,而且往往不止一个,前端程序员都有对接的设计师。大型团队的设计师,还有明确的分工:UI 设计师、平面设计师、交互设计师……
周刊每周介绍的课程,一般都是程序员课程,今天是第一次,向大家介绍一个免费的设计师课程 《零基础学 UI 设计 & 视觉设计》 。
如果你想增加一些设计知识,或者就是想成为设计师,去互联网公司或广告公司求职,那么就是这个课程的目标听众。
课程分成三天,老师先讲解海报设计、品牌设计、UI 设计的一些要领,然后带你完成一个真实的海报设计项目和一个名企品牌的设计方案,最后还会分享设计师的市场行情和职业规划。它可以当作设计师入门培训,也可以当作求职训练。
该课程由国内著名的培训机构“开课吧”提供,三天的讲课之中,除了体验如何完成设计项目,动手实操海报创意作品以外,还可以获赠设计的学习资料包。
微信扫描上方二维码,或者点击这个链接[6],添加助教老师就可以报名。感兴趣的朋友,不妨听听看。

科技动态

1、高科技软甲[7]
《自然》杂志报道,科学家最近研发出一种 3D 打印面料,可以做成人体软甲。
这种材料是一种聚合物,而不是针织物。它的最大特点是能在柔软和坚硬两种状态之间切换。处于柔软状态时,它易弯折,可以贴附在人体表面。
但是一旦成型以后,它会变得异常坚硬,能够承受巨大的外力。因此,可以用作运动员、军人的外骨骼和防弹衣。
2、智能机器马[8]
小鹏汽车发布了一款可以乘坐的智能机器马,其实就是一个四足机器人,带有摄像头、激光雷达等汽车级别的智能驾驶系统。
它可以当作玩具,让小朋友骑,会自动行进,智能避障,并且能跟小朋友进行互动对话。小朋友抚摸机器马,它也会做出反应。
此外,它还可以当作载具,在主人取货、逛街、远足时载货。它的具体发售日期和售价,还没有公布。
3、新陈代谢速率[9]
《科学》杂志报道,科学家发现人体新陈代谢的速率,与以前认为的不一样。
1岁时,新陈代谢达到最高点。1岁到20岁,新陈代谢每年放缓约3%。20岁到60岁,新陈代谢保持稳定。60岁以后,每年下降约0.7%。
这意味着,青年和中年时期,人体的能量消耗速度并没有下降。
所以,20岁到60岁之间,节食可以减肥,因为新陈代谢并没有放缓,只要吃得少,体重就会下降。进入60岁以后,就很难通过节食减肥,因为新陈代谢每年都在下降,节食效果越来越小。
4、SpaceX 的民用航天项目[10]
SpaceX 公司预定在下周三(9月15日),发射一艘宇宙飞船,四名宇航员全部都是平民。这是历史上第一次“平民宇航员”的宇宙飞行,为将来的太空旅游做尝试。
这四名乘客此前没有任何宇航经验,他们将在太空停留三天。这与贝佐斯今年7月份仅仅持续50分钟的“飞出大气层”之旅完全不一样,更接近真正意义上的“太空旅游”。
5、道路使用费[11]
美国国会最近通过了一项计划,研究征收统一的道路使用费是否可行。
目前,世界各国都对汽油额外收费,用于道路维护,比如美国征收汽油税,中国征收燃油附加费。但是,越来越多的人开始使用电动汽车,不再使用汽油车,这笔钱就收不到了。
为了给道路维护提供资金,确实应该找到一种办法,按照行驶里程,对所有车辆征收道路使用费。
6、小行星撞地球[12]
根据美国宇航局的计算,有一颗叫做 Bennu 的小行星,直径约为492米,将在一个多世纪后的2135年到2200年之间,在地球和月球之间经过,而且不能排除撞上地球的可能性。
早先的计算是撞击概率为2,700分之一,后来经过修正为1,750分之一。不过,就算千分之一的可能,真的相撞了,那时的科技应该有改变小行星轨道的方法。
7、Mac 专用机械键盘[13]
很多人不喜欢笔记本电脑的键盘,不如机械键盘手感好。一家英国的键盘公司,就发明了一种供笔记本电脑使用的便携式机械键盘。
使用时,套在 Mac 笔记本键盘上方即可。这样的话,既提供了良好的打字手感,又不必适应不同的键盘布局。

文章

1、青海冷湖:东半球唯一一个世界级天文台址诞生记[14](中文)
中国国家天文台经过3年连续监测认定,青海冷湖的光学观测条件比肩国际一流大型天文台。
这一发现为中国光学天文发展创造了重大机遇,也为国际光学天文发展提供了宝贵的战略资源。8月18日的《自然》杂志公布了这项重大科学进展。
2、中国的实验室猴子短缺[15](中文)
生物医药研究,都需要用到实验室猴子(主要是猕猴)。猕猴是国家保护动物,不能去野外抓,只能从养殖场购买。由于疫情,猴子供应紧缺,价格飞涨。本文介绍了国内实验室猴子的状况。
3、使用 React.memo() 提高组件性能[16](英文)
默认情况下,如果React 父组件重新渲染,它包含的所有子组件都会重新渲染,即使子组件没有任何变化。
React.memo() 方法可以防止子组件不必要渲染,从而提供组件性能。
4、CSS 盒状模型的 block 和 inline 之分[17](英文)
CSS 盒状模型的bordermarginpadding属性,有 block 和 line 之分,比如paddingpadding-inlinepadding-block两个子属性。本文介绍这种区别。
5、elm 语言的使用心得[18](英文)
作者在生产环境使用 Elm 将近两年了,写了10万行代码。这篇文章详细评价了 elm 语言,给予很高的评价。本文写得很好,推荐阅读。
6、NetBSD 解释[19](英文)
一篇科普文章,介绍什么是 NetBSD 操作系统,它的由来和特点。
7、Let's Encrypt 的免费替代品[20](英文)
现在大家都用 Let's Encrypt 生成免费的 HTTPS 证书,本文介绍其它三个类似的免费证书服务。
8、JavaScript 涟漪动画[21](英文)
一篇简单的 JavaScript 教程,介绍如何在 Canvas 上面,使用正弦函数画出涟漪动画。

工具

1、Clip It[22]
一个智能视频剪辑软件,分析 OBS 软件的直播视频,从中选出精彩片段,通过人工智能自动生成一段精选视频。
2、NvChad[23]
一个 NeoVim 编辑器的插件集合,将其变成一个完备的 IDE 开发环境。你也可以用它来了解 NeoVim 编辑器需要安装什么插件。
3、Lit[24]
谷歌推出的基于 Web Components 的前端框架,非常小巧(5KB),用法很优雅。
4、intellij-media-player[25]
这个插件可以让 JetBrains 公司的 IDE,在背景里面播放视频。适合在同一个窗口,一边编码,一边看视频。(@wuyr[26] 投稿)
5、markdown-tweet-scheduler[27]
使用 GitHub Actions 将仓库里面的 Markdown 文件,定时发到推特上面。
6、Webpack to Vite[28]
这个工具可以将 Webpack 项目转为 Vite 项目。(@Chieffo2021[29] 投稿)
7、Act[30]
一个在本机搭建 GitHub Actions 环境的工具,让你在本机运行 GitHub Actions,可以用来验证 workflow 文件是否正确。
8、TypeIt[31]
一个 JS 库,用来在网页上生成打字机输入文字的动画效果。
9、Gitfs[32]
这个工具把一个远程 Git 仓库挂载到本地目录,该目录所有的变动自动提交到 Git,并推送到远程仓库,因此也可以回滚到任意时点。它相当于实现了基于 Git 的文件系统。

资源

1、商务部国别指南[33]
商务部网站提供全世界各国的《国别指南》,PDF 文件免费下载,详细介绍各国基本情况,内容非常实用。
2、交互式线性代数[34]
一本英文的初级线性代数教材,免费在线阅读,并提供 PDF 下载,最大特点就是配有很多图片,方便理解。
3、机器学习入门[35]
瑞典乌普萨拉大学的《机器学习》英文教材,针对大学新生,有 PDF 全书下载。
4、Merlin[36]
一个手机 App,用来识别看到或听到的鸟类,特色是可以根据鸟的叫声识别是什么鸟。
5、技术面试手册[37]
工程师如何准备技术面试的英文免费电子书,全书分成两部分:面试本身的准备和技术知识的准备。GitHub 有5万多颗星。

图片

1、中银胶囊塔大厦[38]
1972年,日本东京建造了一个胶囊大厦,使用140个预置的公寓单元,堆叠成一幢楼,称为中银胶囊塔。
建筑师的设想是,以后可以随意更换某个单元,使用新的胶囊替换旧的,不影响其他单元。但是建造完成后,开发公司就破产了,所有单元后来都没有更换过。
更糟糕的是,由于组合结构本身的缺陷,以及建造质量不过关,建成后一直有漏水问题,导致内部结构生锈,破损不堪。前几年,政府决定拆除这栋楼,但是一直没有动工。
目前,楼里只有少部分的房间,还有人居住。前几年,有一位摄影师拍摄了一些胶囊大楼居民的生活状态。
2、古斯塔夫·哈肯松[39]
1951年,66岁的瑞典人古斯塔夫·哈肯松(Gustaf Håkansson),报名参加一个超长距离1764公里的自行车比赛。主办方拒绝了,理由是他的年纪太大了,比赛只允许40岁以下的人参加。
但是,他还是跟选手一起出发了,但不是正式参赛者,而是在最后一名参赛者出发后一分钟出发,并穿着一件写着零的号码牌衬衫。
比赛分成好几天,其它参赛者睡觉时,古斯塔夫·哈肯松依然在骑车。他留着很长的白胡子,显得更加苍老。许多报纸都报道了他的故事,引起了全国的关注,他变成了知名人物。
经过6 天 14 小时 20 分钟,他率先到达终点,比其它参赛者早了 24 小时。人们在终点迎接他。
他一直活到了1987年,102岁逝世。
3、空中看极光[40]
一位欧洲宇航员在国际空间站,拍到了地球南极的极光照片。
最难得的是,那天是满月,所以光照非常好,可以清晰地看到云层和地面,非常壮观。

文摘

1、错误的面试答案,让我得到了工作[41]
2007年,我去一家公司应聘程序员。当时,为了应聘成功,我不得不故意答错了一个问题。你可能觉得很奇怪,让我解释一下怎么回事。
面试官有两个人:技术团队的负责人和公司总经理。总经理是技术负责人的上级,技术负责人对我进行提问。
一开始是几个一般性的问题,然后他问我“什么三层架构”?
我回答说,“三层架构”就是客户端-服务器-数据库。我还补充说 Web 浏览器就是最常见的瘦客户端。他们似乎对我的回答很满意。
他接着问:“三层架构与 MVC 模式(模型-视图-控制器)有什么关系?”
我知道,这个问题有一点棘手。大多数人都会将两者等同起来,但是实际上,MVC 模式只用于中间的“应用程序”层,并不涉及客户端和数据库。
维基百科是这样解释的:
“三层架构”的一个基本规则是,客户端不直接与数据层通信,所有通信都必须通过中间层。因此,从概念上讲,三层架构是线性的。
然而,MVC 模式是三角形的:视图层向控制器发送更新,控制器更新模型,模型的更新又直接触发视图的更新。
我原想这样回答,但是我怀疑,面试官认定的正确答案,就是大多数人的错误答案。如果我说出自己的答案,他会认为我是错的。
要是我当面指出他的错误,而他的老板又在一旁,就等于在老板面前让他丢脸。那么,他可能会坚持自己的立场,拒绝我的正确答案,挽回自己的面子。他也可能承认自己错了,当众丢脸。
我觉得这两种结果都不好,最后决定,我必须回答他们眼中正确的答案。
我先试探着,说出我的正确答案,看看对方的反应。
“MVC 模式是一种软件模式,属于代码的组织形式,大多数情况下,仅在应用程序层运行……”
我看到技术负责人皱着眉头,所以猜想这不是他预期的答案。我就改口说:“视图对应用户界面,控制器对应应用层,模型对应数据库”。
搞定!回答正确!大家都很高兴,我得到了这份工作。
这个故事告诉我们,面试不仅仅需要技术技能,还需要人际交往能力。这也很合理,因为实际工作中,确实两种能力都需要。

言论

1、
宇宙诞生于138亿年前的大爆炸,可能会在未来数十亿年后终结。我们还不知道宇宙到底是什么,但是无论宇宙是什么,它肯定与我们人类无关。我们越了解宇宙,宇宙也就越发显得毫无意义。
-- 史蒂芬·温伯格[42],不久前去世的诺贝尔奖得主、美国物理学家。这是他的畅销科普书《宇宙诞生后的前三分钟》里面的名言。
2、
自由软件运动,本质上不是一场软件运动,而是一场社会运动,因为它的核心是提倡一种基于“共享”的意识形态,要求成员相互支持和帮助。
-- 《理查德·斯托曼与自由软件的历史》[43]
3、
许多企业拒绝自由软件,提出质疑:如果一家公司免费赠送软件产品,它如何生存?
理查德·斯托曼不得不向他们解释:自由软件只是要求给予用户自由,而不是提倡免费。但是,企业无法理解这种意识形态的细微差别。
-- 《理查德·斯托曼与自由软件的历史》[44]
4、
日本的卡通片画师,画一帧可以赚 1.80 美元,有时一个月只能画 300 帧,总收入为 540 美元。这点钱维持生计非常困难,所以日本动画师离职率极高。
-- 《日本动画师离职率高达90%》[45]
5、
我在普林斯顿大学学习物理学时,曾经与一个同学一起花了三个小时,研究一个非常困难的偏微分方程,但一无所获。后来,我们去找了班上最聪明的同学,他看了几分钟就说:“余弦变换可以解”。我们表示不理解,他就写了三页纸的答案,并说几年前就解过类似的问题。
因为这件事,我知道自己永远不会成为一名伟大的理论物理学家,所以就改学了计算机。
-- 贝佐斯[46],亚马逊公司的老板,回忆大学生活

历史上的本周

2020年(第 124 期):华为如何考核员工
2019年(第 72 期):当代人不再有手稿
2018年(第 21 期):人生的水平运动和垂直运动

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/1913
[3]
 via: 
http://m.thepaper.cn/rss_newsDetail_2755422
[4]
 上一期: 
https://www.ruanyifeng.com/blog/2021/09/weekly-issue-174.html
[5]
 网址: 
https://nested.substack.com/p/short-fat-engineers-are-undervalued
[6]
 这个链接: 
https://wx.kaikeba.com/xiaoke/market/landing-page/v2/k3mVKDj9LAUXvdxmG8N?id=59140
[7]
 高科技软甲: 
https://www.tmtpost.com/5565230.html
[8]
 智能机器马: 
https://www.ithome.com/0/573/894.htm
[9]
 新陈代谢速率: 
https://cn.nytimes.com/health/20210813/metabolism-weight-aging/
[10]
 SpaceX 的民用航天项目: 
https://nypost.com/2021/09/05/spacex-cleared-for-historic-civilian-launch-next-week/
[11]
 道路使用费: 
https://www.fierceelectronics.com/electronics/goodbye-gas-tax-hello-road-user-fees
[12]
 小行星撞地球: 
https://news.yahoo.com/nasa-boosts-impact-risk-potentially-220546594.html
[13]
 Mac 专用机械键盘: 
https://www.theverge.com/2021/7/16/22579847/epomaker-nt68-wireless-mechanical-keyboard-laptop-macbook
[14]
 青海冷湖:东半球唯一一个世界级天文台址诞生记: 
https://finance.sina.com.cn/tech/2021-08-19/doc-ikqciyzm2290832.shtml
[15]
 中国的实验室猴子短缺: 
https://www.bjnews.com.cn/detail/163111532114807.html
[16]
 使用 React.memo() 提高组件性能: 
https://alexsidorenko.com/blog/react-render-always-rerenders/
[17]
 CSS 盒状模型的 block 和 inline 之分: 
https://css-tricks.com/css-logical-properties-and-values/
[18]
 elm 语言的使用心得: 
https://engineering.rakuten.today/post/elm-at-rakuten/
[19]
 NetBSD 解释: 
https://www.makeuseof.com/what-is-netbsd/
[20]
 Let's Encrypt 的免费替代品: 
https://scotthelme.co.uk/heres-another-free-ca-as-an-alternative-to-lets-encrypt/
[21]
 JavaScript 涟漪动画: 
https://www.bryanbraun.com/2021/04/15/ripple-animation-in-javascript/
[22]
 Clip It: 
https://hypetrigger.io/clipit/
[23]
 NvChad: 
https://github.com/NvChad/NvChad
[24]
 Lit: 
https://lit.dev/
[25]
 intellij-media-player: 
https://github.com/wuyr/intellij-media-player
[26]
 @wuyr: 
https://github.com/ruanyf/weekly/issues/1926
[27]
 markdown-tweet-scheduler: 
https://github.com/reidjs/markdown-tweet-scheduler
[28]
 Webpack to Vite: 
https://github.com/originjs/webpack-to-vite
[29]
 @Chieffo2021: 
https://github.com/ruanyf/weekly/issues/1924
[30]
 Act: 
https://github.com/nektos/act
[31]
 TypeIt: 
https://typeitjs.com/
[32]
 Gitfs: 
https://www.presslabs.com/docs/code/gitfs/
[33]
 商务部国别指南: 
http://fec.mofcom.gov.cn/article/gbdqzn/
[34]
 交互式线性代数: 
http://textbooks.math.gatech.edu/ila/index.html
[35]
 机器学习入门: 
http://smlbook.org/
[36]
 Merlin: 
https://merlin.allaboutbirds.org/
[37]
 技术面试手册: 
https://techinterviewhandbook.org/
[38]
 中银胶囊塔大厦: 
https://failedarchitecture.com/2014/06/a-year-in-the-metabolist-future-of-1972/
[39]
 古斯塔夫·哈肯松: 
https://en.wikipedia.org/wiki/Gustaf_H%C3%A5kansson
[40]
 空中看极光: 
https://twistedsifter.com/2021/09/southern-lights-under-full-moon-from-space-iss/
[41]
 错误的面试答案,让我得到了工作: 
https://dewitters.com/i-had-to-give-a-wrong-answer-to-get-the-job/
[42]
 史蒂芬·温伯格: 
https://www.scientificamerican.com/article/learning-to-live-in-steven-weinbergs-pointless-universe/
[43]
 《理查德·斯托曼与自由软件的历史》: 
https://www.cmpod.net/all-transcripts/history-open-source-free-software-text/
[44]
 《理查德·斯托曼与自由软件的历史》: 
https://www.cmpod.net/all-transcripts/history-open-source-free-software-text/
[45]
 《日本动画师离职率高达90%》: 
https://www.animenewsnetwork.com/interest/2021-08-06/animator-dorm-project-about-90-percent-of-animators-quit-their-jobs-within-3-years/.175908
[46]
 贝佐斯: 
https://get21stnight.com/2021/08/09/difficult-math-is-about-recognizing-patterns-lessons-from-jeff-bezos/
继续阅读
阅读原文