这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。
封面图
8月12日是今年最后一次"超级月亮",摄影师在德国法兰克福拍到了一个超级大的月亮,在公寓楼之间出现。"超级月亮"指的是,满月正好发生在月球轨道的近地点。(via)
本周话题:四十年编程感想
上周,国外程序员论坛 Hacker News 有一篇热门文章《四十年编程感想》。
作者说,他8岁学编程,今年46岁,再过两年,就是学习编程四十周年了。他写了一大堆自己的感想,都是肺腑之言。
我觉得说得挺好,发人深思。他的文章很长,我摘录一些重点内容,与大家分享。
(1)编程是长期职业
你开始步入这个行业时,应该意识到,程序员是一个长期职业,你可能会从事20年甚至更长。你应该从长期角度看待编程。
在长期中,技术来来去去,语言也来来去去,精通一种技术或语言,并不能保证你的长期职业发展。
你的目标不必局限在学习什么语言或框架,只要吃透基础知识,你可以学会任何你想要的东西。
(2)多尝试不同的事情
你的编程生涯很漫长,刚刚开始时,不要急于求成。你只需要动手写代码就可以了,任何代码都没有关系,写完一个软件,再写下一个。
写不同的软件,尝试不同的事情。你会发现,自己需要学习很多不同的东西。你按什么顺序学习它们并不是大问题。
不要变得僵化,抱住某个领域不放。几乎任何学科都可以教给你一些东西。如果你太僵化,抗拒学习其他领域的知识,那你就输了。
多学习一些困难的东西,容易发现自己的问题。
你可以给自己定一个目标,比如"每周二做一件以前从没有做过的事情"。
当然,你最终需要深入某个领域。李小龙说过:"我不怕练过一万种拳法的人。但是一种拳练了一万遍的人,我怕他。"
(3)目标是变得更好
不管使用什么技术,你的目标都应该是动手做出成果,让自己变得更好。
20年后,你跟别人说:"我是一个拥有20年经验的程序员。"别人就会问你:"这20年你做了什么?"
你的职业生涯最终就是回答这个问题:你问自己,这20年我做了什么。
理想的情况是,20年来,你真正擅长了某件事,而且这件事是社会需要的或者有利可图的,你以某种方式"让它变大"。这样你就会拥有一个成功的职业生涯。
(4)继续工作
尽管已经46岁,我仍然喜欢编写软件。虽然成为伟大程序员的概率已经为零了,但是在这个年龄,我依然可以完成一些工作。
编程既不是短跑,也不是马拉松,而是日记。在日复一日的累积当中,完成你的事业。
作为一名程序员的关键,就是"继续工作",做出有价值的产品。
最早的程序员出现在1957年。经过这么多年,软件依然是一个年轻的行业,这意味着,我们仍然在初级阶段,这个世界还会有无限的有趣工作可以让你变得更好。
科技动态
1、确保未拆封
如何保证货物没有拆封过?
一位德国程序员提出一个简单的方法:你把东西放在密封袋里面,里面再装入彩色的豌豆或大米。
这些彩色颗粒会形成随机分布,一旦拆封就很难复原。
你在密封后,拍下照片发给收件人,对方收到货物后,再用软件甚至肉眼,检查一下彩色颗粒的分布是否跟图片一致,就可以确定有没有被拆开过。
2、密码硬币
澳大利亚发行了一枚五角硬币,纪念澳大利亚信号局成立75周年。
该局主要工作是维护和破解密码,所以硬币上印了四个密码,一个比一个难。负责人说,如果有人可以破解这四个密码,就可以申请到信号局工作。
结果,硬币发售当天,四个密码就全被破解了,具体的密码和解码详见这篇文章。
3、最小的游戏机
一位英国程序员自己动手,制作了一个世界最小的俄罗斯方块游戏机。它的大小跟大拇指差不多,就是一块芯片加上四个按钮。
芯片的正面是0.91吋的液晶屏幕,背面是一个纽扣电池,所有代码都是开源的。他制作好的成品在网上出售,价格20美元。
4、无人机公路
英国政府决定大力发展无人机送货,在英格兰主要城市之间建立了一条265公里长的"无人机高速公路",这条路专门供无人机飞行。
无人机登记后,就可以上路,一路上都要跟地面传感器报告方位,并接受指挥,防止碰撞。
英国政府估计,到2030年这条路同时将有90万架无人机在飞行。这种专用道路以后可能越来越多,只供无人车和无人机使用,地面是无人车,天上是无人机。
文章
1、知乎水印事件(中文)
网友发现,知乎网页暗藏水印,用来发现是谁截图。这个事件曝光以后,知乎又把这个功能下线了。
2、太阳能无人机有什么用?(中文)
本月,中国航空工业集团研制的"启明星50"大型太阳能无人机首飞成功。本文介绍这种完全依靠太阳能供电的无人机有什么用。
3、我国两种长臂猿野外灭绝(中文)
过去几十年,中国分布的白掌长臂猿、北白颊长臂猿在野外均没有被监测到,可以认为已经野外灭绝了。
4、CSS Grid 在 Figma 的应用(英文)
Figma 操作面板使用 CSS 网格来实现,作者详细介绍它的实现,网格原来还能这样用。
5、99美元的 Chromebook 是什么体验?(英文)
作者为了测试 Flutter 应用在低端设备的表现,花99美元买了一台全新的联想 Chromebook 笔记本。他原本预期会很糟糕,结果完全出乎他的意料。
6、软件工程师如何成为全职"创作者"?(英文)
作者是一个软件工程师,从 Uber 辞职以后,全职依靠创作(写文章、卖课程、做视频等等)为生。他写了对这种商业模式的思考。
7、美国需要大量机器人(英文)
一个美国人给美国政府写的政策建议。这篇文章有价值的地方是提出了一个观点:机器人越多,创造的就业岗位越多。作者认为,传统看法是错的,机器人实际上有助于创造人类就业。
8、Python 星号*
的用途总结(英文)
一篇面向 Python 初学者的科普文章,介绍星号*
在这门语言的各种含义。
工具
1、lldap
一个轻量级的 LDAP(一种用户认证协议)开源实现,简化了使用方法。它自带前端,可以跟很多后端应用结合,为这些应用提供身份验证服务。
2、NESBox
一个开源的游戏平台,支持多人在线,一起玩 NES(俗称 FC 红白机) 游戏,有 web 版和桌面版。目前已经有很多游戏,预计有 1000+ 游戏,参考这篇介绍文章。(@mantou132 投稿)
3、JuiceFS
一个面向云原生设计的文件系统,可以挂载各种云存储,当作本地磁盘使用。(@DASWU 投稿)
4、Urara
一个静态博客生成器,基于 SvelteKit。(@kwaa 投稿)
这个网页工具可以清除照片上不要的物体。用户上传照片以后,框选不需要的物体,系统会自动清除这些物体,用背景填充照片。
6、OurBoard
一个在线白板,你创建一个房间,把网址分享给其他人,大家就可以在一块网页白板上共同涂写。
7、gh-dash
GitHub 官方命令行客户端gh
的插件,可以在命令行以面板形式,显示仓库的 PR 和 issue。
这个网页上,一个方块代表10分钟,一天24小时就是144个方块。可以一眼看到,当天还有多少个方块空着。
Nginx 经常用作反向代理,这个工具为反向代理提供一个 Web 管理界面。
扑克牌扫码器
最近,有人将条形码与扑克牌结合在一起。
他在每张牌的牌边印上了条形码,旁人根本意识不到,但是使用扫码器可以分辨是什么牌。
为了进一步增加隐蔽性,他还用特殊墨水,将条形码隐藏起来,人眼看不见,只有在红外线下才会显示。
他买了一台带有摄像头的树莓派,在摄影头上装了红外滤光片,将其改装为条码扫描器。
最后,他写了一个 iOS 客户端,将树莓派的扫描结果显示出来,每张牌是什么。下面就是实际的效果。
墨水也可以改成紫外线荧光墨水,在紫外线下会发光,这会比红外线更容易识别。
这个项目的完整代码,公布在 GitHub。
资源
1、乔布斯档案
乔布斯家人建立的网站,用来为后人保存史蒂夫·乔布斯的各种材料。目前刚刚建立,内容还比较少。
2、从零开始的神经网络(Neural Networks from Scratch)
一个英文的图文互动教程,使用简单的语言和图片,解释什么是神经网络。
3、随机的谷歌街景
这个网站随机展示谷歌街景的照片,世界各地都有。(@shenzhw 投稿)
4、中华遗嘱网
这个网站提供遗嘱的知识和服务,属于半官方组织,收费不低,但是比自己去找专业服务还是方便和便宜一点。
图片
1、猴子洗红薯
日本宫崎县的猴子,有一种奇特的行为,会在海里洗红薯,洗了以后再吃。
传说是当地人冬天生火,猴子们也喜欢待在火堆旁取暖。有人用火烤红薯,顺手就给了猴子一个。猴子们拿到递给它们的热乎乎的红薯,马上就要吃,但是觉得很烫。
有一个猴子开始在水中冷却红薯。这种习惯逐渐蔓延到整个猴群,几乎所有猴子都学会了这种行为。
但是,科学家认为,这个传说是无稽之谈。猴子在海水中红薯,只是为了增加一点盐分。
2、逃出埃及的车流
美国内华达沙漠每年举办一个艺术节,叫做"燃烧的人"(Burning Man)。
今年的活动本周结束,上万辆车从沙漠里面的举办地离开,驶向最近的一个高速公路路口。结果造成了大堵车,整整堵了10个小时。
有人从空中拍下了这个罕见的"沙漠大堵车",戏称就像传说中的"逃出埃及"。
文摘
1、 Foo 大师的故事
Foo 大师遇到了一家大公司的面试官。
面试官说:"面试时,我问很多 Unix 程序员,他们在新兴的编程语言方面有多少年经验时,他们都会皱眉或生气。这是为什么?"
Foo 大师站了起来,开始在办公室里不断踱步。
面试官不解地问道:"你在做什么?"
"我正在学走路",Foo 大师回答。
"你不是自己走进办公室的吗,"面试官惊呼道,"而且也没有摔倒,你明明已经知道如何走路了。"
"是的,但是我是第一次来这层楼。" Foo 大师回答。
听了这话,面试官恍然大悟。
言论
1、
一位护士问临终的病人,他们有什么遗憾。她后来总结出了5个最常见的回答。
不要忽视梦想。不要工作过久。说出想法。交朋友。要开心。
-- Paul Graham
2、
一位医生曾经告诉我,医学院没教的一件事情是,医学和当医生是有区别的。
医学是一门生物科学,而当医生是一种社会技能,涉及到管理期望、了解医保制度、人际关系、有效沟通等。
-- 《医学和当医生的区别》
3、
医院最喜欢的病人是慢性病患者,他们依赖医院,但是又不会很快病死而不能支付账单。
美国的医疗体系依靠患者赚钱,因此预防疾病并不积极,只有2.9%的医疗支出用于预防医学。这造成的结果就是,病人的寿命虽然长,但是健康的时间并不长。
-- David Perell
4、
经验就是每个人为自己犯的错误起的名字。(Experience is the name everyone gives to their mistakes.)
-- 奥斯卡·王尔德
5、
有一个编程原则叫做 DRY(Don't repeat yourself,不要重复自己),指的是尽量不要有重复的代码。
更好的名字应该是 SPOT(Single Point Of Truth,单点事实)。代码需要修改时,你只需要在一个地方修改,而不必改动多个地方。
历史上的本周
2021年(第 174 期):全能程序员 vs 特长程序员
2020年(第 123 期):互联网公司与湘军的军制
2019年(第 72 期):当代人不再有手稿
2018年(第 21 期):人生的水平运动和垂直运动
鸣谢
国产软件 FlowUs 提供个人专栏服务(查看周刊专栏),集成了"文档+表格+网盘",适合知识库、数据管理、文件存储多种用途。
(完)
难得自然萌 说:
说出想法。交朋友。要开心。
2022年9月 9日 08:28 | # | 引用
江湖人称向前兄 说:
阮老师中秋节快乐
2022年9月 9日 08:32 | # | 引用
联想桥南 说:
八年猿留名,说的真好,46岁还在coding,万恶的资本主义真香
2022年9月 9日 08:34 | # | 引用
xyf 说:
无人机公路终于来了,无人驾驶汽车的专用公路也快了,以后要立法禁止人驾驶汽车了。
2022年9月 9日 08:55 | # | 引用
xuhs 说:
持续学习,继续工作,争取再干20年,加油! 祝大家中秋节快乐
2022年9月 9日 09:12 | # | 引用
willingoxjin 说:
不要工作过久,今天也是摸鱼的一天
2022年9月 9日 09:17 | # | 引用
荒诞 说:
中秋快乐!
2022年9月 9日 09:38 | # | 引用
张思锐 说:
Bruce Lee said, “I do not fear the man who has practiced ten thousand kicks, once each. But the man who has practiced one kick, ten thousand times, him I fear.”
李小龙的腿法也很厉害,这里的kick没必要翻译成拳法吧
2022年9月 9日 09:44 | # | 引用
note 说:
确保未拆封那个想法真是绝了
2022年9月 9日 09:45 | # | 引用
cc 说:
Burning Man,翻译为 火人节 ,更通用一些
2022年9月 9日 09:51 | # | 引用
rossroma 说:
以后的公路禁止人驾驶汽车,想开车只能去赛车场和封闭道路,哈哈
2022年9月 9日 09:52 | # | 引用
gx 说:
我在广州见到个50多岁的程序员,之前一个外包公司的cto,仍在一线做编程,90年代写vb,后来做了20多年java,现在在写go。属实老妖怪了
2022年9月 9日 09:55 | # | 引用
weiming 说:
扑克牌扫码器这个,莫名想到“陈先生,你的科技资讯太落后了,你戴的这副液晶体显影眼睛是美国两年前的产品。我这副隐形液晶体显影眼镜,是西德上个月的产品,价值十一万美金!”
2022年9月 9日 09:58 | # | 引用
修远 说:
这期的话题感觉有点沉重
2022年9月 9日 09:58 | # | 引用
xx 说:
澳大利亚信号局那个,女王没了
2022年9月 9日 10:04 | # | 引用
boy奎托斯 说:
不要忽视梦想。不要工作过久。
2022年9月 9日 10:10 | # | 引用
boy奎托斯 说:
关注了那么久,NESBox 是所有分享工具中最让人激动人心的,没有之一
2022年9月 9日 10:13 | # | 引用
西四环赶地铁 说:
一位护士问临终的病人,他们有什么遗憾。她后来总结出了5个最常见的回答。
不要忽视梦想。不要工作过久。说出想法。交朋友。要开心。
2022年9月 9日 10:33 | # | 引用
ych 说:
中秋快乐
2022年9月 9日 11:20 | # | 引用
AzureSky_X 说:
这周的内容很精彩啊
2022年9月 9日 11:25 | # | 引用
Go123 说:
2010年从事姑息治疗的护士 Bronnie Ware ,分享了她的收集人生遗憾列表:
希望我有勇气过自己真正想要的生活。
希望我以前没有那么拼命的工作。
希望我有足够的勇气表达自己的感受。
希望我能够和自己的朋友们一直保持联系。
希望我已经让自己成为快乐的人。
还有一篇关于这个的 https://go123.live/explore-other-regrets-of-the-dying/
2022年9月 9日 11:29 | # | 引用
zheng 说:
太阳能无人机,结合苹果和华为的卫星通信布局,6G可能会卷到空中去了。百年之后,齐柏林飞艇回归?
2022年9月 9日 11:30 | # | 引用
Donne 说:
我认为工作除了维持社会发展,还有利于社会稳定,当所有人都沉溺在工作中时,就没有人胡思乱想了。但是就个体而言,生活的意义应该更多的是探索,而不是维持一成不变的工作状态(程序员相比其他职业会更好一些,因为需要不断学习)。
2022年9月 9日 11:41 | # | 引用
jax 说:
看看都有什么游戏可以回忆一下童年
2022年9月 9日 11:42 | # | 引用
无忧大侠 说:
兄弟们,程序员的工作年限非常长,我都见过四五十岁的还在一线敲代码,干的好好。没什么忧虑的。
2022年9月 9日 11:46 | # | 引用
dsafd 说:
是否拆封那个,可以用彩色的拼成一个字。拆过的让他复原去吧
2022年9月 9日 11:52 | # | 引用
whk 说:
谷歌街景,云旅游一波
2022年9月 9日 13:59 | # | 引用
Samer 说:
试试这个网站:https://www.yikm.net/
2022年9月 9日 14:20 | # | 引用
anderson 说:
只有我一个人觉得这期有点短吗?
2022年9月 9日 14:34 | # | 引用
社哥 说:
对程序员来说,最重要的一点就是自我学习。如果能keep study, 那在四五十岁时还在敲代码也不是一件不可想象的事.
相反如果不学习, 当自己所擅长的知识体系被淘汰的时候, 譬如现在你想找个用个jQuery开发前台的工作, 也是很困难了.
2022年9月 9日 15:04 | # | 引用
sygkyo 说:
公司可不这么想
2022年9月 9日 15:05 | # | 引用
向女生 说:
第一次留言 大佬中秋节快乐 记得吃月饼
2022年9月 9日 15:24 | # | 引用
东方九木 说:
标题吓我一跳,看成了四十年编程随想。
2022年9月 9日 15:42 | # | 引用
Mahoo12138 说:
冲冲冲,一起共享代码去!
2022年9月 9日 16:09 | # | 引用
一麦 说:
这个翻译的更好。
我要好好记下来,希望能做到其中一项或者几项。
~~“要是能重来 我要选李白”~~
2022年9月 9日 17:31 | # | 引用
大金 说:
请问这侵权吗?
2022年9月 9日 18:03 | # | 引用
Donald 说:
十年前人们惊呼三十五是程序员的终点,现在变成四十五了。看来不是多老不能编程,而是讲这种奇怪话的人变老了。程序员是脑力劳动,比起建筑师,医生等职业都要轻松,应该职业寿命比他们更长才对。说这些话的人没有看到其他行业要不停的考证学习,而程序员很多是为了兴趣学习。
2022年9月 9日 19:21 | # | 引用
weiyiqi 说:
但这期有很多好东西
2022年9月 9日 19:30 | # | 引用
sss 说:
中秋快乐。
2022年9月 9日 19:35 | # | 引用
a 说:
你可以觉得工作到几岁,但公司决定是否雇佣你
2022年9月 9日 20:31 | # | 引用
RedNax 说:
侵权。
2022年9月10日 01:55 | # | 引用
jiakai 说:
阮老师中秋节快乐!
2022年9月10日 08:16 | # | 引用
岁月漫步 说:
确保未拆封------多出来的重量谁来付邮费?
2022年9月10日 12:33 | # | 引用
TomDu 说:
中秋快乐!
坚持学习,争取到六十岁还能继续编程,不给人生留遗憾!
2022年9月10日 12:52 | # | 引用
Kevin 说:
阮老师,中秋节快乐!
果断收藏那个红白机游戏,中秋节最好的礼物了!
2022年9月10日 15:22 | # | 引用
ale 说:
阮老师的博客陪伴十几年了,祝大家中秋节快乐!
2022年9月10日 19:33 | # | 引用
ahuigo 说:
>>有一个编程原则叫做 DRY(Don't repeat yourself,不要重复自己),指的是尽量不要有重复的代码。
>>更好的名字应该是 SPOT(Single Point Of Truth,单点事实)。代码需要修改时,你只需要在一个地方修改,而不必改动多个地方。
一直感觉node/npm 生态违背了这个原因,与web标准不兼容,还干了太多重复繁琐的事情。
最近在用deno的fresh 开发一些东西,开发体验太棒了,真希望deno生态能发展起来。
引入一个包只需要import "http://test.com/ui@latest/button.tsx" ,多么简单、纯粹的事情呀。
2022年9月11日 00:24 | # | 引用
獨孤求敗 说:
乔布斯的那个很棒
https://stevejobsarchive.com/
聽說辣鸡苹果,乔帮主的邮箱,都不保存了....
资本家嘴脸
2022年9月11日 19:46 | # | 引用
老孙 说:
越是有规律的月容易被破解,当然就是彩色的无规律的字也很难
2022年9月11日 23:14 | # | 引用
xujhzc 说:
要发音成“易晶体”才有那味
2022年9月12日 11:57 | # | 引用
vipop 说:
阮老师 中秋快乐
2022年9月12日 22:18 | # | 引用
wxf 说:
30岁以下的程序员写的代码基本上是不可维护的。
2022年9月13日 11:46 | # | 引用
megrim 说:
《最小的游戏机》标题过分了,这个放圈里都没什么看点,开源掌机圈有大量比这个游戏更丰富还迷你的。就是人手尺寸限制,做不了最小。
2022年9月13日 12:05 | # | 引用
frank 说:
2022年9月26日 14:53 | # | 引用
jadecoder 说:
我在今年这个 burning man 的车流里,堵了大概 5 小时出来,体验其实还可以,4am 进入队伍,熄火睡了一小时,5am 向前挪了一次,熄火睡了大概两小时,7am 再向前挪一次,9am 上公路。关于离开时的堵车,讨论已经非常充分了,可以参考官方 FAQ:https://burningman.org/event/preparation/getting-there-and-back/exodus/ 关键问题在于作为一个 7-8 万人的活动,和外界的连接只有一条两车道公路。
另外,这个活动有通用译名“火人节”,非常棒,建议在美国的朋友有机会都去体验一下。
2022年9月29日 17:23 | # | 引用
古焕铭 说:
阮兄是我非常敬佩的人之一,博学,写的东西都很容易理解
2022年10月17日 14:32 | # | 引用
gta_think 说:
扑克扫描机据我所知,CVK主机牌具用的最多也更成熟,然后现在出现了普通牌的技术,使用python识别程序制作
2022年11月21日 10:56 | # | 引用