Skip to content

Commit fd9eb78

Browse files
committed
docs: release issue 222
1 parent ec1eb32 commit fd9eb78

File tree

2 files changed

+389
-0
lines changed

2 files changed

+389
-0
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ $ grep -nri css docs | cat --number
3030

3131
九月
3232

33+
- 第 222 期:[四十年编程感想](docs/issue-222.md)
3334
- 第 221 期:[全世界最繁荣的行业](docs/issue-221.md)
3435

3536
八月

Diff for: docs/issue-222.md

+388
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,388 @@
1+
# 科技爱好者周刊(第 222 期):四十年编程感想
2+
3+
这里记录每周值得分享的科技内容,周五发布。
4+
5+
本杂志开源(GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)),欢迎提交 issue,投稿或推荐科技内容。
6+
7+
周刊讨论区的帖子[《谁在招人?》](https://github.com/ruanyf/weekly/issues/2599),提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。
8+
9+
## 封面图
10+
11+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090809.webp)
12+
13+
8月12日是今年最后一次“超级月亮”,摄影师在德国法兰克福拍到了一个超级大的月亮,在公寓楼之间出现。“超级月亮”指的是,满月正好发生在月球轨道的近地点。([via](https://www.nature.com/immersive/d41586-022-02330-6/index.html)
14+
15+
## 本周话题:四十年编程感想
16+
17+
上周,国外程序员论坛 Hacker News 有一篇热门文章[《四十年编程感想》](https://codefol.io/posts/the-forty-year-programmer/)
18+
19+
作者说,他8岁学编程,今年46岁,再过两年,就是学习编程四十周年了。他写了一大堆自己的感想,都是肺腑之言。
20+
21+
我觉得说得挺好,发人深思。他的文章很长,我摘录一些重点内容,与大家分享。
22+
23+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090607.webp)
24+
25+
**(1)编程是长期职业**
26+
27+
你开始步入这个行业时,应该意识到,程序员是一个长期职业,你可能会从事20年甚至更长。<u>你应该从长期角度看待编程。</u>
28+
29+
在长期中,技术来来去去,语言也来来去去,精通一种技术或语言,并不能保证你的长期职业发展。
30+
31+
你的目标不必局限在学习什么语言或框架,只要吃透基础知识,你可以学会任何你想要的东西。
32+
33+
**(2)多尝试不同的事情**
34+
35+
你的编程生涯很漫长,刚刚开始时,不要急于求成。<u>你只需要动手写代码就可以了</u>,任何代码都没有关系,写完一个软件,再写下一个。
36+
37+
写不同的软件,尝试不同的事情。你会发现,自己需要学习很多不同的东西。你按什么顺序学习它们并不是大问题。
38+
39+
不要变得僵化,抱住某个领域不放。几乎任何学科都可以教给你一些东西。如果你太僵化,抗拒学习其他领域的知识,那你就输了。
40+
41+
多学习一些困难的东西,容易发现自己的问题。
42+
43+
你可以给自己定一个目标,比如“<u>每周二做一件以前从没有做过的事情</u>”。
44+
45+
当然,你最终需要深入某个领域。李小龙说过:“我不怕练过一万种拳法的人。但是一种拳练了一万遍的人,我怕他。”
46+
47+
**(3)目标是变得更好**
48+
49+
不管使用什么技术,你的目标都应该是动手做出成果,让自己变得更好。
50+
51+
20年后,你跟别人说:“我是一个拥有20年经验的程序员。”别人就会问你:“这20年你做了什么?”
52+
53+
你的职业生涯最终就是回答这个问题:你问自己,这20年我做了什么。
54+
55+
理想的情况是,20年来,你真正擅长了某件事,而且这件事是社会需要的或者有利可图的,你以某种方式“让它变大”。这样你就会拥有一个成功的职业生涯。
56+
57+
**(4)继续工作**
58+
59+
尽管已经46岁,我仍然喜欢编写软件。虽然成为伟大程序员的概率已经为零了,但是在这个年龄,我依然可以完成一些工作。
60+
61+
编程既不是短跑,也不是马拉松,而是日记。在日复一日的累积当中,完成你的事业。
62+
63+
作为一名程序员的关键,就是“继续工作”,做出有价值的产品。
64+
65+
最早的程序员出现在1957年。经过这么多年,软件依然是一个年轻的行业,这意味着,我们仍然在初级阶段,这个世界还会有无限的有趣工作可以让你变得更好。
66+
67+
## 科技动态
68+
69+
1、[确保未拆封](https://dys2p.com/en/2021-12-tamper-evident-protection.html)
70+
71+
如何保证货物没有拆封过?
72+
73+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072202.webp)
74+
75+
一位德国程序员提出一个简单的方法:你把东西放在密封袋里面,里面再装入彩色的豌豆或大米。
76+
77+
这些彩色颗粒会形成随机分布,一旦拆封就很难复原。
78+
79+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072203.webp)
80+
81+
你在密封后,拍下照片发给收件人,对方收到货物后,再用软件甚至肉眼,检查一下彩色颗粒的分布是否跟图片一致,就可以确定有没有被拆开过。
82+
83+
2、[密码硬币](https://www.abc.net.au/news/2022-09-01/act-spy-agency-releases-coin-with-secret-code/101391964)
84+
85+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090102.webp)
86+
87+
澳大利亚发行了一枚五角硬币,纪念澳大利亚信号局成立75周年。
88+
89+
该局主要工作是维护和破解密码,所以硬币上印了四个密码,一个比一个难。负责人说,如果有人可以破解这四个密码,就可以申请到信号局工作。
90+
91+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090517.webp)
92+
93+
结果,硬币发售当天,四个密码就全被破解了,具体的密码和解码详见[这篇文章](http://senwerks.com/hacktheplanet/Solving-the-Australian-Signals-Directorate-cryptography-challenge-coin.html)
94+
95+
3、[最小的游戏机](https://www.tindie.com/products/ampersand/asterisk/)
96+
97+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072306.webp)
98+
99+
一位英国程序员自己动手,制作了一个世界最小的俄罗斯方块游戏机。它的大小跟大拇指差不多,就是一块芯片加上四个按钮。
100+
101+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072307.webp)
102+
103+
芯片的正面是0.91吋的液晶屏幕,背面是一个纽扣电池,所有代码都是开源的。他制作好的成品在网上出售,价格20美元。
104+
105+
4、[无人机公路](https://www.economist.com/britain/2022/07/21/a-superhighway-for-drones-to-fly-between-british-cities)
106+
107+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072901.webp)
108+
109+
英国政府决定大力发展无人机送货,在英格兰主要城市之间建立了一条265公里长的“无人机高速公路”,这条路专门供无人机飞行。
110+
111+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072902.webp)
112+
113+
无人机登记后,就可以上路,一路上都要跟地面传感器报告方位,并接受指挥,防止碰撞。
114+
115+
英国政府估计,到2030年这条路同时将有90万架无人机在飞行。这种专用道路以后可能越来越多,只供无人车和无人机使用,地面是无人车,天上是无人机。
116+
117+
## 文章
118+
119+
1、[知乎水印事件](https://mp.weixin.qq.com/s/EykLVZA6MQ3kgKvZFKfR9g)(中文)
120+
121+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090705.webp)
122+
123+
网友发现,知乎网页暗藏水印,用来发现是谁截图。这个事件曝光以后,知乎又把这个功能下线了。
124+
125+
2、[太阳能无人机有什么用?](https://mil.huanqiu.com/article/49XMBNllT4H)(中文)
126+
127+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090706.webp)
128+
129+
本月,中国航空工业集团研制的“启明星50”大型太阳能无人机首飞成功。本文介绍这种完全依靠太阳能供电的无人机有什么用。
130+
131+
3、[我国两种长臂猿野外灭绝](https://news.sciencenet.cn/htmlnews/2022/9/485754.shtm)(中文)
132+
133+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090704.webp)
134+
135+
过去几十年,中国分布的白掌长臂猿、北白颊长臂猿在野外均没有被监测到,可以认为已经野外灭绝了。
136+
137+
4、[CSS Grid 在 Figma 的应用](https://ishadeed.com/article/figma-css/)(英文)
138+
139+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072401.webp)
140+
141+
Figma 操作面板使用 CSS 网格来实现,作者详细介绍它的实现,网格原来还能这样用。
142+
143+
5、[99美元的 Chromebook 是什么体验?](https://threadreaderapp.com/thread/1550598445248811008.html)(英文)
144+
145+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072301.webp)
146+
147+
作者为了测试 Flutter 应用在低端设备的表现,花99美元买了一台全新的联想 Chromebook 笔记本。他原本预期会很糟糕,结果完全出乎他的意料。
148+
149+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072302.webp)
150+
151+
6、[软件工程师如何成为全职“创作者”?](https://blog.pragmaticengineer.com/how-to-become-a-full-time-creator/)(英文)
152+
153+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072706.webp)
154+
155+
作者是一个软件工程师,从 Uber 辞职以后,全职依靠创作(写文章、卖课程、做视频等等)为生。他写了对这种商业模式的思考。
156+
157+
7、[美国需要大量机器人](https://noahpinion.substack.com/p/american-workers-need-lots-and-lots)(英文)
158+
159+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090514.webp)
160+
161+
一个美国人给美国政府写的政策建议。这篇文章有价值的地方是提出了一个观点:机器人越多,创造的就业岗位越多。作者认为,传统看法是错的,机器人实际上有助于创造人类就业。
162+
163+
8、[Python 星号`*`的用途总结](https://bas.codes/posts/python-asterisks)(英文)
164+
165+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022060303.webp)
166+
167+
一篇面向 Python 初学者的科普文章,介绍星号`*`在这门语言的各种含义。
168+
169+
## 工具
170+
171+
1、[lldap](https://github.com/nitnelave/lldap)
172+
173+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071108.webp)
174+
175+
一个轻量级的 LDAP(一种用户认证协议)开源实现,简化了使用方法。它自带前端,可以跟很多后端应用结合,为这些应用提供身份验证服务。
176+
177+
2、[NESBox](https://nesbox.xianqiao.wang/)
178+
179+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090801.webp)
180+
181+
一个开源的游戏平台,支持多人在线,一起玩 NES(俗称 FC 红白机) 游戏,有 web 版和桌面版。目前已经有很多游戏,预计有 1000+ 游戏,参考这篇[介绍文章](https://juejin.cn/post/7136883410819088397)。([@mantou132](https://github.com/ruanyf/weekly/issues/2600) 投稿)
182+
183+
3、[JuiceFS](https://github.com/juicedata/juicefs)
184+
185+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090803.webp)
186+
187+
一个面向云原生设计的文件系统,可以挂载各种云存储,当作本地磁盘使用。([@DASWU](https://github.com/ruanyf/weekly/issues/2601) 投稿)
188+
189+
4、[Urara](https://urara-docs.netlify.app/)
190+
191+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090804.webp)
192+
193+
一个静态博客生成器,基于 SvelteKit。([@kwaa](https://github.com/ruanyf/weekly/issues/2605) 投稿)
194+
195+
5、[Cleanup Photos](https://cleanupphotos.com/)
196+
197+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071405.webp)
198+
199+
这个网页工具可以清除照片上不要的物体。用户上传照片以后,框选不需要的物体,系统会自动清除这些物体,用背景填充照片。
200+
201+
6、[OurBoard](https://www.ourboard.io/)
202+
203+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071425.webp)
204+
205+
一个在线白板,你创建一个房间,把网址分享给其他人,大家就可以在一块网页白板上共同涂写。
206+
207+
7、[gh-dash](https://github.com/dlvhdr/gh-dash)
208+
209+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022040201.webp)
210+
211+
GitHub 官方命令行客户端`gh`的插件,可以在命令行以面板形式,显示仓库的 PR 和 issue。
212+
213+
8、[Rectangles](https://rectangles.app/)
214+
215+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022040204.webp)
216+
217+
这个网页上,一个方块代表10分钟,一天24小时就是144个方块。可以一眼看到,当天还有多少个方块空着。
218+
219+
9、[Nginx Proxy Manager](https://nginxproxymanager.com/)
220+
221+
![](https://cdn.beekka.com/blogimg/asset/202205/bg2022052106.webp)
222+
223+
Nginx 经常用作反向代理,这个工具为反向代理提供一个 Web 管理界面。
224+
225+
## 扑克牌扫码器
226+
227+
最近,有人将条形码与扑克牌结合在一起。
228+
229+
他在每张牌的牌边印上了条形码,旁人根本意识不到,但是使用扫码器可以分辨是什么牌。
230+
231+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063018.webp)
232+
233+
为了进一步增加隐蔽性,他还用特殊墨水,将条形码隐藏起来,人眼看不见,只有在红外线下才会显示。
234+
235+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063019.webp)
236+
237+
他买了一台带有摄像头的树莓派,在摄影头上装了红外滤光片,将其改装为条码扫描器。
238+
239+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063020.webp)
240+
241+
最后,他写了一个 iOS 客户端,将树莓派的扫描结果显示出来,每张牌是什么。下面就是实际的效果。
242+
243+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063021.webp)
244+
245+
墨水也可以改成紫外线荧光墨水,在紫外线下会发光,这会比红外线更容易识别。
246+
247+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063022.webp)
248+
249+
这个项目的完整代码,公布在 [GitHub](https://github.com/nettlep/magic)
250+
251+
## 资源
252+
253+
1、[乔布斯档案](https://stevejobsarchive.com/)
254+
255+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090807.webp)
256+
257+
乔布斯家人建立的网站,用来为后人保存史蒂夫·乔布斯的各种材料。目前刚刚建立,内容还比较少。
258+
259+
2、[从零开始的神经网络](https://aegeorge42.github.io/)(Neural Networks from Scratch)
260+
261+
![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063025.webp)
262+
263+
一个英文的图文互动教程,使用简单的语言和图片,解释什么是神经网络。
264+
265+
3、[随机的谷歌街景](https://randomstreetview.com/)
266+
267+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090113.webp)
268+
269+
这个网站随机展示谷歌街景的照片,世界各地都有。([@shenzhw](https://github.com/ruanyf/weekly/issues/2604) 投稿)
270+
271+
4、[中华遗嘱网](https://www.will.org.cn/)
272+
273+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090515.webp)
274+
275+
这个网站提供遗嘱的知识和服务,属于半官方组织,收费不低,但是比自己去找专业服务还是方便和便宜一点。
276+
277+
## 图片
278+
279+
1、[猴子洗红薯](https://link.springer.com/article/10.1007/s10329-015-0492-0)
280+
281+
日本宫崎县的猴子,有一种奇特的行为,会在海里洗红薯,洗了以后再吃。
282+
283+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022042702.webp)
284+
285+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022042703.webp)
286+
287+
传说是当地人冬天生火,猴子们也喜欢待在火堆旁取暖。有人用火烤红薯,顺手就给了猴子一个。猴子们拿到递给它们的热乎乎的红薯,马上就要吃,但是觉得很烫。
288+
289+
有一个猴子开始在水中冷却红薯。这种习惯逐渐蔓延到整个猴群,几乎所有猴子都学会了这种行为。
290+
291+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022042704.webp)
292+
293+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022042705.webp)
294+
295+
但是,科学家认为,这个传说是无稽之谈。猴子在海水中红薯,只是为了增加一点盐分。
296+
297+
![](https://cdn.beekka.com/blogimg/asset/220204/bg2022042701.webp)
298+
299+
2、[逃出埃及的车流](https://www.thestar.com/entertainment/2022/09/07/burning-man-festival-goers-stuck-in-traffic-jam-for-over-9-hours-leaving-nevada-desert.html)
300+
301+
美国内华达沙漠每年举办一个艺术节,叫做“燃烧的人”(Burning Man)。
302+
303+
今年的活动本周结束,上万辆车从沙漠里面的举办地离开,驶向最近的一个高速公路路口。结果造成了大堵车,整整堵了10个小时。
304+
305+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090808.webp)
306+
307+
有人从空中拍下了这个罕见的“沙漠大堵车”,戏称就像传说中的“逃出埃及”。
308+
309+
## 文摘
310+
311+
1、 [Foo 大师的故事](http://www.catb.org/~esr/writings/unix-koans/recruiter.html)
312+
313+
Foo 大师遇到了一家大公司的面试官。
314+
315+
面试官说:“面试时,我问很多 Unix 程序员,他们在新兴的编程语言方面有多少年经验时,他们都会皱眉或生气。这是为什么?”
316+
317+
Foo 大师站了起来,开始在办公室里不断踱步。
318+
319+
面试官不解地问道:“你在做什么?”
320+
321+
“我正在学走路”,Foo 大师回答。
322+
323+
“你不是自己走进办公室的吗,”面试官惊呼道,“而且也没有摔倒,你明明已经知道如何走路了。”
324+
325+
“是的,但是我是第一次来这层楼。” Foo 大师回答。
326+
327+
听了这话,面试官恍然大悟。
328+
329+
## 言论
330+
331+
1、
332+
333+
一位护士问临终的病人,他们有什么遗憾。她后来总结出了5个最常见的回答。
334+
335+
不要忽视梦想。不要工作过久。说出想法。交朋友。要开心。
336+
337+
-- [Paul Graham](http://www.paulgraham.com/todo.html)
338+
339+
![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090805.webp)
340+
341+
2、
342+
343+
一位医生曾经告诉我,医学院没教的一件事情是,医学和当医生是有区别的。
344+
345+
医学是一门生物科学,而当医生是一种社会技能,涉及到管理期望、了解医保制度、人际关系、有效沟通等。
346+
347+
-- [《医学和当医生的区别》](http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2022-07.html#e2022-07-03T09_00_55.htm)
348+
349+
3、
350+
351+
医院最喜欢的病人是慢性病患者,他们依赖医院,但是又不会很快病死而不能支付账单。
352+
353+
美国的医疗体系依靠患者赚钱,因此预防疾病并不积极,只有2.9%的医疗支出用于预防医学。这造成的结果就是,病人的寿命虽然长,但是健康的时间并不长。
354+
355+
-- [David Perell](https://ckarchive.com/b/wvu2hgh557kqd)
356+
357+
4、
358+
359+
经验就是每个人为自己犯的错误起的名字。(Experience is the name everyone gives to their mistakes.)
360+
361+
-- 奥斯卡·王尔德
362+
363+
5、
364+
365+
有一个编程原则叫做 DRY(Don't repeat yourself,不要重复自己),指的是尽量不要有重复的代码。
366+
367+
更好的名字应该是 SPOT(Single Point Of Truth,单点事实)。代码需要修改时,你只需要在一个地方修改,而不必改动多个地方。
368+
369+
-- [Hacker News 网友](https://news.ycombinator.com/item?id=32012566)
370+
371+
## 历史上的本周
372+
373+
2021年(第 174 期):[全能程序员 vs 特长程序员](https://www.ruanyifeng.com/blog/2021/09/weekly-issue-174.html)
374+
375+
2020年(第 123 期):[互联网公司与湘军的军制](https://www.ruanyifeng.com/blog/2020/09/weekly-issue-123.html)
376+
377+
2019年(第 72 期):[当代人不再有手稿](https://www.ruanyifeng.com/blog/2019/09/weekly-issue-72.html)
378+
379+
2018年(第 21 期):[人生的水平运动和垂直运动](https://www.ruanyifeng.com/blog/2018/09/weekly-issue-21.html)
380+
381+
## 鸣谢
382+
383+
国产软件 [FlowUs](https://flowus.cn?promotionChannel=GW_RYF_01) 提供个人专栏服务(查看[周刊专栏](https://ruanyf-weekly.flowus.cn/?code=FLOWUS&promotionChannel=WX_RYF_00)),集成了“文档+表格+网盘”,适合知识库、数据管理、文件存储多种用途。
384+
385+
![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072108.webp)
386+
387+
(完)
388+

0 commit comments

Comments
 (0)