weekly/docs/issue-191.md

408 lines
24 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 科技爱好者周刊(第 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/)
一个美国飞行爱好者说,自己的小飞机在空中发生故障,螺旋桨停转力后坠毁,他不得不跳伞逃生。事后,他将视频放上网,这种第一视角的坠机视频,真是难得一见。
<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=t33160qjg4y" allowFullScreen="true" width="600" height="400"></iframe>
由于拍摄得太过完美,很多人质疑这场坠机是故意安排的,美国航空管理局 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发生也无法一路滑到 AnAn 并非必然发生。
若有充足证据显示每个“坡”都有合理、强烈的因果连结,即不构成滑坡谬误。
> 例一如果我今天借了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)
(完)