# 科技爱好者周刊(第 191 期):一个程序员的财务独立之路 这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子[《谁在招人?》](https://github.com/ruanyf/weekly/issues/2139),提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。 ## 封面图 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010201.webp) 美国的 RobotReport 网站,评选波士顿动力公司的跳跃机器人为2021年度技术突破之一。根据8月份的视频,该公司的机器人已经可以跳跃了,只见它双手一甩,从左边的台子挺身跃起,稳稳落在右边的桌子上。([via](https://www.therobotreport.com/12-memorable-robotics-moments-of-2021/)) ## 本周话题:一个程序员的财务独立之路 本周,推荐一篇美国程序员的[文章](https://software.rajivprab.com/2021/12/26/my-path-to-financial-independence-as-a-software-engineer/)。 作者20岁时第一次当实习生,发现在 IT 行业,普通人有可能在30多岁就实现“财务独立”,不再为维持生计和支付日常账单而劳碌。以前,他一直以为每个人都需要工作到退休。 从此,他就将财务独立作为自己的人生目标。 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010313.webp) 2009年,他大学毕业了,没有任何积蓄,进入英特尔公司担任初级工程师。当时的年薪是10万美元,年支出3.8万美元,再扣掉税,第一年就有了3.5万美元的净资产。 以后,他每年都记账。在这篇文章里面,他公开了收入和支出(见下表)。十二年以后的2021年,他已经是亚马逊的高级工程师,年薪62.5万美元(含股票),年支出7.8万美元,净资产达到了240万美元(含股票)。 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010312.webp) 他详细说了,自己怎么经过十二年的奋斗,在35岁做到财务独立,我觉得很有借鉴意义。 (1)**首要的努力方向,就是追求工资提升。** 普通人的收入来源,主要还是本职工作,如果工资很低,根本不可能实现财务独立,所以必须想方设法提高工资。 一般来说,大厂的高级职位可以拿到稳定的高工资。所以,他要求自己一定要进大厂,并且做到高级工程师。 (2)**每过三年,就到别处面试。** 他一般三年换一家公司,这样可以获得显著的加薪和晋升。他说每次换公司,收入至少增加30%。另外,还可以让自己始终拥有一种进取的心态,不断处于学习和成长的环境之中。 不过,换公司是双刃剑,为了获得更高的薪酬,就需要在面试和工作中给别人留下深刻印象,后面的公司对你的要求也会越来越高。 (3)**建立良好的职业履历。** 要通过大厂的面试,必须有良好的职业履历。最早的时候,他的履历没有特别的亮点,他就去一个名校,读了一年制硕士(欧美硕士一般都是一年)。这会带来很多职业机会(前提是必须为 Top 5 名校),同时一年的时间成本相对较小。 不过,IT 行业跟律师和金融业不一样,就算没有名校经历,只要自身水平过硬,也能求职成功,只是开始时的机会可能会少一些。 (4)**优先加入增长最快的领域。** 一个行业增长越快,产生的机会越多,越容易涨工资。在机会面前,你不要害怕改变专业领域。 他是硬件工程师出身,进入行业时在英特尔做硬件。后来发现互联网机会更大,他就跳到互联网公司当软件工程师。现在,机器学习很热门,他又去尝试这个领域。 (5)**投资你的钱。** 有了积蓄以后,不要让钱在银行闲置,要学会投资。他的很大一部分资产是股票,虽然投资过程中经常遭遇损失,但还是比放在银行增长快得多。 (6)**节制消费。** 想要财务独立,一定要控制消费。他认为,钱要花在生活必需品,不要花在奢侈品(比如高档车)。钱也不要用于享受,但可以用来增加体验。他说自己始终认为,跟物质享受相比,财务独立才是人生最大的奢侈品。 另外,购买房屋通常是最大的财务决定,务必要想清楚。他有能力购房以后,还是选择租房,而且跟别人一起合租,因为感觉这样在财务上更灵活。不过那是在美国,跟国内的情况不太一样。 以上就是他的一些主要做法,供大家参考。 ## Go 语言高频面试题 去年,周刊推送过一份《Go 语言高频面试题》,很受欢迎。如果你错过了,可以过来看一下。 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010608.webp) 最近,Go 新版本 1.18 正式加入了泛型,这是近几年来这门语言最大的功能增强。可以预见,它的应用领域还会进一步扩展。 Go 已经是国内的第二大互联网开发语言,仅次于 Java,各大厂都在用于生产环境。这导致 Go 语言的招聘岗位一直很多,而开发者相对稀缺。 所以,Go 很值得学习。一方面,它本身具有很强的生产力;另一方面,它的行业应用很广,容易求职。 这一份 **《Go 语言高频面试题》** 资料,收集了2021年国内各大厂的面试真题,共250多道,按照学习顺序分类编排,每道题都包括简要的解题思路讲解,可以作为面试或学习指南。 ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021120102.webp) 整份资料一共134页,除了 Go 语言的部分,还带有一个附录,包括跟后端开发相关的一些其它面试真题。 它是由知名的工程师学习平台[“极客时间”](https://time.geekbang.org/)制作的,他们为了推广 Go 的学习品牌,特别向周刊读者赠送。 现在领取的读者,还能获赠一份2021版的 **《数据结构与算法面试题讲解》(113页)**。 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010606.webp) ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010605.webp) 微信扫描上方二维码,添加助教老师,就可以 **免费领取** 这些资料。因为是手动发送,添加老师后,还请大家保持耐心。 ## 2021年度最佳新产品 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010301.webp) 美国《大众科学》杂志,评选出了[2021年度最佳的100种新产品](https://www.popsci.com/technology/best-of-whats-new-2021/#Aerospace),包括 mRNA 疫苗、苹果公司的 M1 芯片、SpaceX 公司的龙飞船等著名产品。 下面是其中一些很有趣、但不那么出名的新产品。 **1、键盘贴纸** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010302.webp) 微软推出了一套可触摸的键盘贴纸,供盲人和视障人士使用。只要贴在笔记本电脑的某个位置,盲人就可以触摸识别,比如贴一个圆圈在 Win 键上。 这种贴纸对正常人加快盲打速度也很有帮助。 **2、磁铁睫毛膏** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010303.webp) 一家美国公司推出了含有氧化铁粉末的睫毛膏,并配有磁性睫毛刷。只要一刷,化妆品粉末就能均匀分布到睫毛各处,并且能让睫毛获得最大长度和弯曲。 **3、健康追踪内衣** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010304.webp) 这款运动内衣,内置了电池和传感器,可以24小时感知穿戴者的睡眠质量、运动压力和心率,从而确定健康状况和健身安排。 **4、飞机蓝牙系统** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010305.webp) 飞机座椅背后的电视屏幕,以前只能连有线耳机。松下公司开发了一套新系统,允许乘客用自己的蓝牙耳机连接。 在飞机这样狭小的金属机身里面,同时让所有乘客都能有稳定的蓝牙连接,并不是一件容易的事。但是,松下这套系统效果很好,已经有航空公司开始采用它。 **5、太阳帆** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010306.webp) 人类迄今发射的宇宙飞船都带有动力系统,美国宇航局研发成功不带有动力系统的太阳帆。它基本上就是一大张镀铝的塑料膜,依靠太阳喷射出来的粒子流(太阳风)推动前进。 它可以用来追踪高速飞行的小行星,计划在今年7月发射。由于不需要携带燃料和动力系统,它的造价只有传统飞船的十分之一。 **6、氢气炼钢** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010307.webp) 传统的炼钢方法是使用焦炭,将氧化铁矿石里面的氧元素还原出来,这个过程会产生大量的二氧化碳。 为了减少二氧化碳排放,一家瑞典钢铁公司发明了氢气炼钢,不使用焦炭,而是用氢气将氧元素还原出来。这样不会产生二氧化碳,只产生水。 **7、立体镜头** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010308.webp) 佳能公司发布了一款两眼的镜头,只要把这款镜头安装在普通相机上,就能拍摄立体视频。这个镜头的每个眼用到一半的图像传感器,使用视频制作软件 Adobe Premiere 的插件,就能将两眼拍摄到的图像叠加在一起,得到立体视频。 **8、空中加油无人机** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010309.webp) 波音公司新开发的无人机,可以为战斗机空中加油,从而使空中加油变得更简单和方便,不需要额外投入飞行员。 它对航母的意义尤其重大,海上作战时,战斗机就不必返回航母加油了。美国海军可能会订购70架这种空中加油无人机。 **9、雷达摄像头** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010310.webp) 传统的监控都使用摄像头,通过视觉侦测判断是否有入侵。美国的 Ring 公司发布的一款家庭监控器,除了摄像头,还加上了电波侦测,相当于一个微型的雷达。 这个雷达可以在10米范围内跟踪运动的物体,再加上摄像头识别物体。两者结合起来,就能更好地判断是否出现异常情况。 **10、两栖摩托艇** ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010311.webp) 一家法国军工公司开发了两栖摩托艇,在海上是高速快艇,到了岸上,它的底下会升出两排履带,变成履带车。它适合登陆作战,到了海滩以后,士兵不用下艇,接着驾驶到合适的登陆位置。 ## 文章 1、[令人困惑的 HDMI 2.1](https://www.cnbeta.com/articles/tech/1215181.htm)(中文) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121404.webp) 本文介绍了高清视频 HDMI 2.1 标准,并且讨论了一个外行人容易误解的细节:由于标准化组织的奇怪规定,HDMI 2.0 设备都可以自称符合 HDMI 2.1 标准。 这里是中文译文,另有[英文原文](https://tftcentral.co.uk/articles/when-hdmi-2-1-isnt-hdmi-2-1)。 2、[德国最受欢迎的程序员技能排行](https://pkdyn.mozello.site/blog/params/post/3910923/)(英文) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121508.webp) 有人统计了德国程序员招聘广告里面,出现频率最高的技能,跟中国的情况基本一致。大家可以看看,什么技能容易在德国就业。 3、[自制 NFC 唱片卡](https://hicks.design/journal/moo-card-player)(英文) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121108.webp) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121109.webp) 作者将 NFC 标签,贴在纸卡片的背后,然后将唱片的数据写入 NFC 标签。手机只要靠近这些纸卡片,就可以读取数据,自动播放这张唱片。 这篇文章值得借鉴,学习怎么使用 NFC 标签。 4、[node_modules 目录放入代码仓库](https://www.jackfranklin.co.uk/blog/check-in-your-node-dependencies/)(英文) 本文提出 Node.js 项目的 node_modules 目录可以放入代码仓库,尤其是在公司内网,有很多好处。 5、[where 与 having 子句的区别](https://sql-bits.com/the-difference-between-where-and-having/)(英文) SQL 查询有 where 子句和 having 子句,它们的区别是什么? 6、[如何在 Mac 安装 Rails](https://rails.new/)(英文) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121401.webp) 这个网页很别致,以可视化的形式,给出命令行怎么安装 Rails。 7、[为什么 ISO 格式应该被淘汰](https://bkhome.org/news/202112/why-iso-was-retired.html)(英文) 磁盘的镜像文件有两种格式:ISO 和 IMG。作者认为 ISO 文件格式应该被淘汰,只使用 IMG 格式。 8、[显示服务器是什么?](https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html#display-servers)(英文) 本文是一篇长文里面的一节,解释 Linux 系统里面显示服务器的作用(X11 协议和 Wayland 协议),写得很通俗。 ## 工具 1、[xxh](https://github.com/xxh/xxh) 远程服务器登录的时候,往往只有 Bash 可用。这个工具可以把你本地的 Shell 环境(zsh、fish 等等)自动带到远程服务器。 2、[Pico.css](https://github.com/picocss/pico) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121501.webp) 一个极小化的 CSS 框架,只有 8KB,优雅简单,功能也不弱。 3、[uBlacklist](https://github.com/iorate/uBlacklist) 一个浏览器插件,可以从 Google/Bing 的搜索结果里面,去除指定网站或 URL。 4、[Lapce](https://github.com/lapce/lapce) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121405.webp) 一个 Rust 语言写的轻量级代码编辑器,速度极快,功能上模仿了 VS Code,支持 Windows 和 macOS。 5、[console-helper](https://marketplace.visualstudio.com/items?itemName=AT-9420.console-helper) 一个 VS Code 插件,只要在 JavaScript 脚本里面选中一个变量,就可以自动为这个变量插入一行`console.log`打印语句。([@moore529](https://github.com/ruanyf/weekly/issues/2141) 投稿) 6、[PPTist](https://github.com/pipipi-pikachu/PPTist) ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010613.webp) ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010614.webp) 一个 PPT 网页应用,还原了大部分 PowerPoint 常用功能,支持 PPT 的在线编辑、演示和导出。这里有 [demo](https://pipipi-pikachu.github.io/PPTist/)。([@pipipi-pikachu](https://github.com/ruanyf/weekly/issues/2145) 投稿) 7、[My LightNote](https://apps.apple.com/us/app/lightnote/id1546030973) ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010612.webp) 一个 macOS 的网页收藏器,支持分类、标记、收集图像、添加标签,所有数据都保存在你的 iCloud。([@hite](https://github.com/ruanyf/weekly/issues/2144) 投稿) 8、[Internal App Store](https://github.com/SimonMarquis/InternalAppStore) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121406.webp) 一个开源的安卓 App 商店,可以用来搭建自己的应用商店。 9、[GDBFrontend](https://oguzhaneroglu.com/projects/gdb-frontend/) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021121407.webp) 调试工具 GDB 的一个前端,可以在图形界面上调试 C/C++ 程序,使用 Python 语言写的。 ## 资源 1、[彻底理解中国山水画生成器](https://zverok.github.io/blog/2021-12-28-grok-shan-shui.html) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021122903.webp) [中国山水画生成器](https://github.com/LingDong-/shan-shui-inf)是一个很有名的软件,一个老外用户很惊叹,希望把它彻底搞懂,就写了这个由24篇文章组成的系列,逐一分析代码,看看能否自己重新实现。([@ameizi](https://github.com/ruanyf/weekly/issues/2140) 投稿) 2、[ES proposals](https://www.proposals.es/) ![](https://cdn.beekka.com/blogimg/asset/202111/bg2021113002.webp) 该网站列出了 ECMAScript 标准所有各阶段的提案。 3、[eja.tv](https://eja.tv/) ![](https://cdn.beekka.com/blogimg/asset/202111/bg2021112908.jpg) 该网站收集全世界可以网上免费观看的电视频道,目前一共收集了4029个频道,提供地区和语言分类。 4、[黑客杂志《PoC || GTFO》](https://evmn.github.io/post/2021-12-31-PoC-or-GTFO.html) ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010611.webp) 这本在线刊物收集了世界众多黑客在逆向分析、渗透测试、生活感悟等方面的文章,再由编辑润色排版,图文并茂。国内网友特别制作了电子书,提供下载。([@evmn](https://github.com/ruanyf/weekly/issues/2143) 投稿) 5、[DareBee](https://darebee.com/workouts.html) ![](https://cdn.beekka.com/blogimg/asset/202112/bg2021120206.webp) 这个网站收集了1700多种身体锻炼的方法,每种方法都有插图说明。 ## 图片和视频 1、[小飞机坠机视频](https://www.avweb.com/aviation-news/plane-crash-video-sparks-online-backlash/) 一个美国飞行爱好者说,自己的小飞机在空中发生故障,螺旋桨停转力后坠毁,他不得不跳伞逃生。事后,他将视频放上网,这种第一视角的坠机视频,真是难得一见。 由于拍摄得太过完美,很多人质疑这场坠机是故意安排的,美国航空管理局 FAA 宣布进行调查。 2、[南非穷人怎么上网](https://restofworld.org/2021/south-african-students-are-selling-school-wi-fi-passwords-for-lunch-money/) ![](https://cdn.beekka.com/blogimg/asset/202111/bg2021110401.jpg) 南非穷人负担不起手机流量上网,只能在围墙栏杆外面,蹭学校的 Wifi 上网。Wifi 的密码是学生卖给他们的,用来换取一点午餐费。 ## 文摘 1、[为什么关系型数据库更流行](https://news.ycombinator.com/item?id=28736405) 现在最流行的数据库都是关系型数据库。这种数据库以表格的形式存储数据。 但是,现实世界中,事物之间的关系不像表格,更像一张互相连接的网。也就是说,图数据库才是描述事物更合适的方式,也更容易扩展和理解。 ![](https://cdn.beekka.com/blogimg/asset/202201/bg2022010610.webp) 那么,为什么关系型数据库才是主流,图数据库始终属于小众应用? 原因跟数据的存储媒介有关。磁带发明以后,没过多久,关系型数据库就诞生了,这不是偶然的。因为磁带的数据是线性存储,关系型数据库恰恰最适合线性读写数据。 磁盘是磁带的继承者,也是线性存储,这决定了关系型数据库的主导地位。 2、[滑坡谬误](https://zh.wikipedia.org/wiki/%E6%BB%91%E5%9D%A1%E8%AC%AC%E8%AA%A4) 滑坡谬误(Slippery slope)指的是使用一连串的因果推论,夸大了每个环节的因果强度,而得到不合理的结论。 ![](https://cdn.beekka.com/blogimg/asset/202108/bg2021081405.jpg) 它的典型形式是,“如果发生 A1,接着就会发生 A2,接着就会发生 A3,接着就会发生 A4,……,接着就会发生 An”,然后推论“由于 An 不应该发生,因此我们不应允许 A1 发生”。 从 A1 推论至 An 的过程就像一个滑坡。 它的问题在于,每个“坡”的因果强度不一,有些因果关系只是可能、而非必然,有些因果关系相当微弱,有些因果关系甚至是未知或缺乏证据,因而即使 A 1发生,也无法一路滑到 An,An 并非必然发生。 若有充足证据显示每个“坡”都有合理、强烈的因果连结,即不构成滑坡谬误。 > 例一:如果我今天借了10元给小明,他明天又会跟我借一百元,接下来就借一千元、一万元,我岂不破产? 小明今天借十元也不表示明天就会借一百元,就算明天借一百元也不表示以后就会借一千元,就算小明借一千元甚至一万元,也不表示说话者就会破产。 > 例二:孩子如果不上好的小学,就考不上好的中学,之后就考不进好的大学,接着会找不到好的工作,然后会穷困潦倒,一生就毁了! 孩子如果不上好的小学,也不表示之后就考不上好的中学;就算考不上好的中学,也不表示就考不进好的大学;就算考不进好的大学,也不表示就找不到好的工作;就算找不到好的工作,也不表示会穷困潦倒;就算穷困潦倒,也不表示一生就毁了。 > 例三:员工偷懒公司便会损失,公司赚不到钱就要裁员,被裁员的人会没工作,没工作的人为了生计就会铤而走险。因此,上班偷懒是非常严重的问题。 公司损失不表示公司会赚不到钱,就算公司赚不到钱也不表示公司就要裁员,就算公司裁员也不表示被裁的人会走投无路,就算被裁的人走投无路,也不表示会为了生计铤而走险。 ## 言论 1、 C 和 C++ 这两种语言不保证内存安全,后果就是所有软件安全问题的大约三分之二,都跟内存处理不当有或多或少的关系。 -- [《Rust 正在变成 Linux 的第二官方语言》](https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/) 2、 媒体业务的核心,是每天能从消费者的注意力里面,分到多少分钟。它满足消费者需求、卖给广告商的就是这个东西,也是媒体之间相互竞争的核心。 --[《好莱坞媒体的电子游戏盲点》](https://www.matthewball.vc/all/videogameblindspot) 3、 一只蝎子请求青蛙带他过河,青蛙害怕被蜇伤。蝎子说,如果他蜇青蛙,两者都会淹死在河里。青蛙就同意背他。但是,一到河中间,蝎子就蜇了青蛙。青蛙临死之前问:“为什么啊?” 蝎子回答说:“这是我的本性。” 这个故事告诉我们,不要跟本质有毒的人交易。 -- [《五堂永恒的课》](https://www.productlessons.xyz//article/timeless-lessons-amazon-unbound-book) 4、 旧金山是美国房价最贵的城市,很多穷人负担不起住房,只能流落街头。市政府每年拨款10亿美元,帮助无家可归者,平均每人超过10万美元。 讽刺的是,这笔巨款不仅没有解决流浪问题,反而让它变得更严重了。很多全职工作的人,为了住房,花光了积蓄,活得非常辛苦。那些流浪者,反而因为政府的资助,处在一种无忧无虑的稳定状态,不想再去工作。 --[《旧金山的姑息治疗》](https://jayriverlong.github.io/2021/11/28/palliative.html) 5、 你永远不会通过与现实做斗争,而改变事物。想要改变事物,需要建立一个使现有模型过时的新模型。 -- [富勒](https://news.ycombinator.com/item?id=29441945),美国建筑师 ## 历史上的本周 2020年(第 140 期):[印度人的工资是多少?](https://www.ruanyifeng.com/blog/2020/12/weekly-issue-140.html) 2019年(第 88 期):[如果你遇到一条蛇](https://www.ruanyifeng.com/blog/2019/12/weekly-issue-88.html) 2018年(第 37 期):[小说家的时代,永远地过去了](https://www.ruanyifeng.com/blog/2018/12/weekly-issue-37.html) ## 订阅 这个周刊每周五发布,同步更新在[阮一峰的网络日志](http://www.ruanyifeng.com/blog)和[微信公众号](http://weixin.sogou.com/weixin?query=%E9%98%AE%E4%B8%80%E5%B3%B0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97)。 微信搜索“阮一峰的网络日志”或者扫描二维码,即可订阅。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030402.jpg) (完)