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

封面图

美国的 RobotReport 网站,评选波士顿动力公司的跳跃机器人为2021年度技术突破之一。根据8月份的视频,该公司的机器人已经可以跳跃了,只见它双手一甩,从左边的台子挺身跃起,稳稳落在右边的桌子上。(via[3]

本周话题:一个程序员的财务独立之路

本周,推荐一篇美国程序员的文章[4]
作者20岁时第一次当实习生,发现在 IT 行业,普通人有可能在30多岁就实现“财务独立”,不再为维持生计和支付日常账单而劳碌。以前,他一直以为每个人都需要工作到退休。
从此,他就将财务独立作为自己的人生目标。
2009年,他大学毕业了,没有任何积蓄,进入英特尔公司担任初级工程师。当时的年薪是10万美元,年支出3.8万美元,再扣掉税,第一年就有了3.5万美元的净资产。
以后,他每年都记账。在这篇文章里面,他公开了收入和支出(见下表)。十二年以后的2021年,他已经是亚马逊的高级工程师,年薪62.5万美元(含股票),年支出7.8万美元,净资产达到了240万美元(含股票)。
他详细说了,自己怎么经过十二年的奋斗,在35岁做到财务独立,我觉得很有借鉴意义。
(1)首要的努力方向,就是追求工资提升。 普通人的收入来源,主要还是本职工作,如果工资很低,根本不可能实现财务独立,所以必须想方设法提高工资。
一般来说,大厂的高级职位可以拿到稳定的高工资。所以,他要求自己一定要进大厂,并且做到高级工程师。
(2)每过三年,就到别处面试。 他一般三年换一家公司,这样可以获得显著的加薪和晋升。他说每次换公司,收入至少增加30%。另外,还可以让自己始终拥有一种进取的心态,不断处于学习和成长的环境之中。
不过,换公司是双刃剑,为了获得更高的薪酬,就需要在面试和工作中给别人留下深刻印象,后面的公司对你的要求也会越来越高。
(3)建立良好的职业履历。 要通过大厂的面试,必须有良好的职业履历。最早的时候,他的履历没有特别的亮点,他就去一个名校,读了一年制硕士(欧美硕士一般都是一年)。这会带来很多职业机会(前提是必须为 Top 5 名校),同时一年的时间成本相对较小。
不过,IT 行业跟律师和金融业不一样,就算没有名校经历,只要自身水平过硬,也能求职成功,只是开始时的机会可能会少一些。
(4)优先加入增长最快的领域。 一个行业增长越快,产生的机会越多,越容易涨工资。在机会面前,你不要害怕改变专业领域。
他是硬件工程师出身,进入行业时在英特尔做硬件。后来发现互联网机会更大,他就跳到互联网公司当软件工程师。现在,机器学习很热门,他又去尝试这个领域。
(5)投资你的钱。 有了积蓄以后,不要让钱在银行闲置,要学会投资。他的很大一部分资产是股票,虽然投资过程中经常遭遇损失,但还是比放在银行增长快得多。
(6)节制消费。 想要财务独立,一定要控制消费。他认为,钱要花在生活必需品,不要花在奢侈品(比如高档车)。钱也不要用于享受,但可以用来增加体验。他说自己始终认为,跟物质享受相比,财务独立才是人生最大的奢侈品。
另外,购买房屋通常是最大的财务决定,务必要想清楚。他有能力购房以后,还是选择租房,而且跟别人一起合租,因为感觉这样在财务上更灵活。不过那是在美国,跟国内的情况不太一样。
以上就是他的一些主要做法,供大家参考。

Go 语言高频面试题

去年,周刊推送过一份《Go 语言高频面试题》,很受欢迎。如果你错过了,可以过来看一下。
最近,Go 新版本 1.18 正式加入了泛型,这是近几年来这门语言最大的功能增强。可以预见,它的应用领域还会进一步扩展。
Go 已经是国内的第二大互联网开发语言,仅次于 Java,各大厂都在用于生产环境。这导致 Go 语言的招聘岗位一直很多,而开发者相对稀缺。
所以,Go 很值得学习。一方面,它本身具有很强的生产力;另一方面,它的行业应用很广,容易求职。
这一份 《Go 语言高频面试题》 资料,收集了2021年国内各大厂的面试真题,共250多道,按照学习顺序分类编排,每道题都包括简要的解题思路讲解,可以作为面试或学习指南。
整份资料一共134页,除了 Go 语言的部分,还带有一个附录,包括跟后端开发相关的一些其它面试真题。
它是由知名的工程师学习平台“极客时间”[5]制作的,他们为了推广 Go 的学习品牌,特别向周刊读者赠送。
现在领取的读者,还能获赠一份2021版的 《数据结构与算法面试题讲解》(113页)
微信扫描上方二维码,添加助教老师,就可以 免费领取 这些资料。因为是手动发送,添加老师后,还请大家保持耐心。

2021年度最佳新产品

美国《大众科学》杂志,评选出了2021年度最佳的100种新产品[6],包括 mRNA 疫苗、苹果公司的 M1 芯片、SpaceX 公司的龙飞船等著名产品。
下面是其中一些很有趣、但不那么出名的新产品。
1、键盘贴纸
微软推出了一套可触摸的键盘贴纸,供盲人和视障人士使用。只要贴在笔记本电脑的某个位置,盲人就可以触摸识别,比如贴一个圆圈在 Win 键上。
这种贴纸对正常人加快盲打速度也很有帮助。
2、磁铁睫毛膏
一家美国公司推出了含有氧化铁粉末的睫毛膏,并配有磁性睫毛刷。只要一刷,化妆品粉末就能均匀分布到睫毛各处,并且能让睫毛获得最大长度和弯曲。
3、健康追踪内衣
这款运动内衣,内置了电池和传感器,可以24小时感知穿戴者的睡眠质量、运动压力和心率,从而确定健康状况和健身安排。
4、飞机蓝牙系统
飞机座椅背后的电视屏幕,以前只能连有线耳机。松下公司开发了一套新系统,允许乘客用自己的蓝牙耳机连接。
在飞机这样狭小的金属机身里面,同时让所有乘客都能有稳定的蓝牙连接,并不是一件容易的事。但是,松下这套系统效果很好,已经有航空公司开始采用它。
5、太阳帆
人类迄今发射的宇宙飞船都带有动力系统,美国宇航局研发成功不带有动力系统的太阳帆。它基本上就是一大张镀铝的塑料膜,依靠太阳喷射出来的粒子流(太阳风)推动前进。
它可以用来追踪高速飞行的小行星,计划在今年7月发射。由于不需要携带燃料和动力系统,它的造价只有传统飞船的十分之一。
6、氢气炼钢
传统的炼钢方法是使用焦炭,将氧化铁矿石里面的氧元素还原出来,这个过程会产生大量的二氧化碳。
为了减少二氧化碳排放,一家瑞典钢铁公司发明了氢气炼钢,不使用焦炭,而是用氢气将氧元素还原出来。这样不会产生二氧化碳,只产生水。
7、立体镜头
佳能公司发布了一款两眼的镜头,只要把这款镜头安装在普通相机上,就能拍摄立体视频。这个镜头的每个眼用到一半的图像传感器,使用视频制作软件 Adobe Premiere 的插件,就能将两眼拍摄到的图像叠加在一起,得到立体视频。
8、空中加油无人机
波音公司新开发的无人机,可以为战斗机空中加油,从而使空中加油变得更简单和方便,不需要额外投入飞行员。
它对航母的意义尤其重大,海上作战时,战斗机就不必返回航母加油了。美国海军可能会订购70架这种空中加油无人机。
9、雷达摄像头
传统的监控都使用摄像头,通过视觉侦测判断是否有入侵。美国的 Ring 公司发布的一款家庭监控器,除了摄像头,还加上了电波侦测,相当于一个微型的雷达。
这个雷达可以在10米范围内跟踪运动的物体,再加上摄像头识别物体。两者结合起来,就能更好地判断是否出现异常情况。
10、两栖摩托艇
一家法国军工公司开发了两栖摩托艇,在海上是高速快艇,到了岸上,它的底下会升出两排履带,变成履带车。它适合登陆作战,到了海滩以后,士兵不用下艇,接着驾驶到合适的登陆位置。

文章

1、令人困惑的 HDMI 2.1[7](中文)
本文介绍了高清视频 HDMI 2.1 标准,并且讨论了一个外行人容易误解的细节:由于标准化组织的奇怪规定,HDMI 2.0 设备都可以自称符合 HDMI 2.1 标准。
这里是中文译文,另有英文原文[8]
2、德国最受欢迎的程序员技能排行[9](英文)
有人统计了德国程序员招聘广告里面,出现频率最高的技能,跟中国的情况基本一致。大家可以看看,什么技能容易在德国就业。
3、自制 NFC 唱片卡[10](英文)
作者将 NFC 标签,贴在纸卡片的背后,然后将唱片的数据写入 NFC 标签。手机只要靠近这些纸卡片,就可以读取数据,自动播放这张唱片。
这篇文章值得借鉴,学习怎么使用 NFC 标签。
4、node_modules 目录放入代码仓库[11](英文)
本文提出 Node.js 项目的 node_modules 目录可以放入代码仓库,尤其是在公司内网,有很多好处。
5、where 与 having 子句的区别[12](英文)
SQL 查询有 where 子句和 having 子句,它们的区别是什么?
6、如何在 Mac 安装 Rails[13](英文)
这个网页很别致,以可视化的形式,给出命令行怎么安装 Rails。
7、为什么 ISO 格式应该被淘汰[14](英文)
磁盘的镜像文件有两种格式:ISO 和 IMG。作者认为 ISO 文件格式应该被淘汰,只使用 IMG 格式。
8、显示服务器是什么?[15](英文)
本文是一篇长文里面的一节,解释 Linux 系统里面显示服务器的作用(X11 协议和 Wayland 协议),写得很通俗。

工具

1、xxh[16]
远程服务器登录的时候,往往只有 Bash 可用。这个工具可以把你本地的 Shell 环境(zsh、fish 等等)自动带到远程服务器。
2、Pico.css[17]
一个极小化的 CSS 框架,只有 8KB,优雅简单,功能也不弱。
3、uBlacklist[18]
一个浏览器插件,可以从 Google/Bing 的搜索结果里面,去除指定网站或 URL。
4、Lapce[19]
一个 Rust 语言写的轻量级代码编辑器,速度极快,功能上模仿了 VS Code,支持 Windows 和 MacOS。
5、console-helper[20]
一个 VS Code 插件,只要在 JavaScript 脚本里面选中一个变量,就可以自动为这个变量插入一行console.log打印语句。(@moore529[21] 投稿)
6、PPTist[22]
一个 PPT 网页应用,还原了大部分 PowerPoint 常用功能,支持 PPT 的在线编辑、演示和导出。这里有 demo[23]。(@pipipi-pikachu[24] 投稿)
7、My LightNote[25]
一个 MacOS 的网页收藏器,支持分类、标记、收集图像、添加标签,所有数据都保存在你的 iCloud。(@hite[26] 投稿)
8、Internal App Store[27]
一个开源的安卓 App 商店,可以用来搭建自己的应用商店。
9、GDBFrontend[28]
调试工具 GDB 的一个前端,可以在图形界面上调试 C/C++ 程序,使用 Python 语言写的。

资源

1、彻底理解中国山水画生成器[29]
中国山水画生成器[30]是一个很有名的软件,一个老外用户很惊叹,希望把它彻底搞懂,就写了这个由24篇文章组成的系列,逐一分析代码,看看能否自己重新实现。(@ameizi[31] 投稿)
2、ES proposals[32]
该网站列出了 ECMAScript 标准所有各阶段的提案。
3、eja.tv[33]
该网站收集全世界可以网上免费观看的电视频道,目前一共收集了4029个频道,提供地区和语言分类。
4、黑客杂志《PoC || GTFO》[34]
这本在线刊物收集了世界众多黑客在逆向分析、渗透测试、生活感悟等方面的文章,再由编辑润色排版,图文并茂。国内网友特别制作了电子书,提供下载。(@evmn[35] 投稿)
5、DareBee[36]
这个网站收集了1700多种身体锻炼的方法,每种方法都有插图说明。

图片和视频

1、小飞机坠机视频[37]
一个美国飞行爱好者说,自己的小飞机在空中发生故障,螺旋桨停转力后坠毁,他不得不跳伞逃生。事后,他将视频放上网,这种第一视角的坠机视频,真是难得一见。
由于拍摄得太过完美,很多人质疑这场坠机是故意安排的,美国航空管理局 FAA 宣布进行调查。
2、南非穷人怎么上网[38]
南非穷人负担不起手机流量上网,只能在围墙栏杆外面,蹭学校的 Wifi 上网。Wifi 的密码是学生卖给他们的,用来换取一点午餐费。

文摘

1、为什么关系型数据库更流行[39]
现在最流行的数据库都是关系型数据库。这种数据库以表格的形式存储数据。
但是,现实世界中,事物之间的关系不像表格,更像一张互相连接的网。也就是说,图数据库才是描述事物更合适的方式,也更容易扩展和理解。
那么,为什么关系型数据库才是主流,图数据库始终属于小众应用?
原因跟数据的存储媒介有关。磁带发明以后,没过多久,关系型数据库就诞生了,这不是偶然的。因为磁带的数据是线性存储,关系型数据库恰恰最适合线性读写数据。
磁盘是磁带的继承者,也是线性存储,这决定了关系型数据库的主导地位。
2、滑坡谬误[40]
滑坡谬误(Slippery slope)指的是使用一连串的因果推论,夸大了每个环节的因果强度,而得到不合理的结论。
它的典型形式是,“如果发生 A1,接着就会发生 A2,接着就会发生 A3,接着就会发生 A4,……,接着就会发生 An”,然后推论“由于 An 不应该发生,因此我们不应允许 A1 发生”。
从 A1 推论至 An 的过程就像一个滑坡。
它的问题在于,每个“坡”的因果强度不一,有些因果关系只是可能、而非必然,有些因果关系相当微弱,有些因果关系甚至是未知或缺乏证据,因而即使 A 1发生,也无法一路滑到 An,An 并非必然发生。
若有充足证据显示每个“坡”都有合理、强烈的因果连结,即不构成滑坡谬误。
例一:如果我今天借了10元给小明,他明天又会跟我借一百元,接下来就借一千元、一万元,我岂不破产?
小明今天借十元也不表示明天就会借一百元,就算明天借一百元也不表示以后就会借一千元,就算小明借一千元甚至一万元,也不表示说话者就会破产。
 例二:孩子如果不上好的小学,就考不上好的中学,之后就考不进好的大学,接着会找不到好的工作,然后会穷困潦倒,一生就毁了!
孩子如果不上好的小学,也不表示之后就考不上好的中学;就算考不上好的中学,也不表示就考不进好的大学;就算考不进好的大学,也不表示就找不到好的工作;就算找不到好的工作,也不表示会穷困潦倒;就算穷困潦倒,也不表示一生就毁了。
例三:员工偷懒公司便会损失,公司赚不到钱就要裁员,被裁员的人会没工作,没工作的人为了生计就会铤而走险。因此,上班偷懒是非常严重的问题。
公司损失不表示公司会赚不到钱,就算公司赚不到钱也不表示公司就要裁员,就算公司裁员也不表示被裁的人会走投无路,就算被裁的人走投无路,也不表示会为了生计铤而走险。

言论

1、
C 和 C++ 这两种语言不保证内存安全,后果就是所有软件安全问题的大约三分之二,都跟内存处理不当有或多或少的关系。
-- 《Rust 正在变成 Linux 的第二官方语言》[41]
2、
媒体业务的核心,是每天能从消费者的注意力里面,分到多少分钟。它满足消费者需求、卖给广告商的就是这个东西,也是媒体之间相互竞争的核心。
--《好莱坞媒体的电子游戏盲点》[42]
3、
一只蝎子请求青蛙带他过河,青蛙害怕被蜇伤。蝎子说,如果他蜇青蛙,两者都会淹死在河里。青蛙就同意背他。但是,一到河中间,蝎子就蜇了青蛙。青蛙临死之前问:“为什么啊?” 蝎子回答说:“这是我的本性。”
这个故事告诉我们,不要跟本质有毒的人交易。
-- 《五堂永恒的课》[43]
4、
旧金山是美国房价最贵的城市,很多穷人负担不起住房,只能流落街头。市政府每年拨款10亿美元,帮助无家可归者,平均每人超过10万美元。
讽刺的是,这笔巨款不仅没有解决流浪问题,反而让它变得更严重了。很多全职工作的人,为了住房,花光了积蓄,活得非常辛苦。那些流浪者,反而因为政府的资助,处在一种无忧无虑的稳定状态,不想再去工作。
--《旧金山的姑息治疗》[44]
5、
你永远不会通过与现实做斗争,而改变事物。想要改变事物,需要建立一个使现有模型过时的新模型。
-- 富勒[45],美国建筑师

历史上的本周

2020年(第 140 期):印度人的工资是多少?
2019年(第 88 期):如果你遇到一条蛇
2018年(第 37 期):小说家的时代,永远地过去了

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/2139
[3]
 via: 
https://www.therobotreport.com/12-memorable-robotics-moments-of-2021/
[4]
 文章: 
https://software.rajivprab.com/2021/12/26/my-path-to-financial-independence-as-a-software-engineer/
[5]
 “极客时间”: 
https://time.geekbang.org/
[6]
 2021年度最佳的100种新产品: 
https://www.popsci.com/technology/best-of-whats-new-2021/#Aerospace
[7]
 令人困惑的 HDMI 2.1: 
https://www.cnbeta.com/articles/tech/1215181.htm
[8]
 英文原文: 
https://tftcentral.co.uk/articles/when-hdmi-2-1-isnt-hdmi-2-1
[9]
 德国最受欢迎的程序员技能排行: 
https://pkdyn.mozello.site/blog/params/post/3910923/
[10]
 自制 NFC 唱片卡: 
https://hicks.design/journal/moo-card-player
[11]
 node_modules 目录放入代码仓库: 
https://www.jackfranklin.co.uk/blog/check-in-your-node-dependencies/
[12]
 where 与 having 子句的区别: 
https://sql-bits.com/the-difference-between-where-and-having/
[13]
 如何在 Mac 安装 Rails: 
https://rails.new/
[14]
 为什么 ISO 格式应该被淘汰: 
https://bkhome.org/news/202112/why-iso-was-retired.html
[15]
 显示服务器是什么?: 
https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html#display-servers
[16]
 xxh: 
https://github.com/xxh/xxh
[17]
 Pico.css: 
https://github.com/picocss/pico
[18]
 uBlacklist: 
https://github.com/iorate/uBlacklist
[19]
 Lapce: 
https://github.com/lapce/lapce
[20]
 console-helper: 
https://marketplace.visualstudio.com/items?itemName=AT-9420.console-helper
[21]
 @moore529: 
https://github.com/ruanyf/weekly/issues/2141
[22]
 PPTist: 
https://github.com/pipipi-pikachu/PPTist
[23]
 demo: 
https://pipipi-pikachu.github.io/PPTist/
[24]
 @pipipi-pikachu: 
https://github.com/ruanyf/weekly/issues/2145
[25]
 My LightNote: 
https://apps.apple.com/us/app/lightnote/id1546030973
[26]
 @hite: 
https://github.com/ruanyf/weekly/issues/2144
[27]
 Internal App Store: 
https://github.com/SimonMarquis/InternalAppStore
[28]
 GDBFrontend: 
https://oguzhaneroglu.com/projects/gdb-frontend/
[29]
 彻底理解中国山水画生成器: 
https://zverok.github.io/blog/2021-12-28-grok-shan-shui.html
[30]
 中国山水画生成器: 
https://github.com/LingDong-/shan-shui-inf
[31]
 @ameizi: 
https://github.com/ruanyf/weekly/issues/2140
[32]
 ES proposals: 
https://www.proposals.es/
[33]
 eja.tv: 
https://eja.tv/
[34]
 黑客杂志《PoC || GTFO》: 
https://evmn.github.io/post/2021-12-31-PoC-or-GTFO.html
[35]
 @evmn: 
https://github.com/ruanyf/weekly/issues/2143
[36]
 DareBee: 
https://darebee.com/workouts.html
[37]
 小飞机坠机视频: 
https://www.avweb.com/aviation-news/plane-crash-video-sparks-online-backlash/
[38]
 南非穷人怎么上网: 
https://restofworld.org/2021/south-african-students-are-selling-school-wi-fi-passwords-for-lunch-money/
[39]
 为什么关系型数据库更流行: 
https://news.ycombinator.com/item?id=28736405
[40]
 滑坡谬误: 
https://zh.wikipedia.org/wiki/%E6%BB%91%E5%9D%A1%E8%AC%AC%E8%AA%A4
[41]
 《Rust 正在变成 Linux 的第二官方语言》: 
https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/
[42]
 《好莱坞媒体的电子游戏盲点》: 
https://www.matthewball.vc/all/videogameblindspot
[43]
 《五堂永恒的课》: 
https://www.productlessons.xyz//article/timeless-lessons-amazon-unbound-book
[44]
 《旧金山的姑息治疗》: 
https://jayriverlong.github.io/2021/11/28/palliative.html
[45]
 富勒: 
https://news.ycombinator.com/item?id=29441945
继续阅读
阅读原文