科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员

阮一峰 2021-09-03 08:30

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub:ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

浙江普陀山客运中心最近获得2021年度凡尔赛建筑奖。(via

本周话题:全能程序员 vs 特长程序员

我读过一些篮球报道,里面说 NBA 球队不喜欢"全能型球员",更喜欢"特长型球员"。

所谓"特长型球员",指的是其他方面可能都不行,但是某一方面特别突出,比如防守特别好、三分特别准,或者篮板很强等等。球队愿意签这样的球员,关键时刻派上场,没准就能立下奇功。

反过来,"全能型球员"各项技术都很均衡,防守、进攻、投篮都还可以,能达到平均水平,但是每个方面都不突出,没有明显的过人之处。球队看不上这样的球员,觉得让你上场,赢不了球。

我马上联想到,软件行业其实也是如此,"全能程序员"的出路,明显不如"特长程序员"。

如果你什么都会干,前端、后端、数据库、服务器管理都能上手,那么哪里缺人手,就会让你顶上去。但是,一旦遇到疑难问题,又指望不了你,因为你不是那个方面的专家,解决不了。

反过来,你精通某一项技术,其他都不懂,公司反而会觉得你更有价值。因为你可以把这个技术做得很深,克服技术难点,超过竞争对手,所以你的晋升会快得多。

我甚至读到过这样一段话:

"绝大多数成熟的程序员都专攻某一个技术栈,因为这样更容易找到工作。一些专家甚至认为,在不同的技术栈中工作是简历的污点。 "

所以,大家写简历的时候,千万不要把自己懂的所有技术都写进去,那是简历的扣分项。而只写你掌握最深的那项技术,以及与之相关的工作经历。

同样的,新人如果想在软件行业长远发展,建议选择一两个技术方向进行专研,成为专家,而不要什么技术都懂一点,但是哪一项都不精通。

但是,这样也有风险,万一你选择的技术栈走下坡路(比如 PHP),甚至消失了(比如 Flash),你可能被迫要换技术栈,那就惨了。

最保险的做法,就是选择那些有大公司支持的技术。这就是为什么市场上有那么多 Java 专家和 .Net 专家的原因。

总之,"全能程序员"在这个行业是不受待见的,被视为"万金油"。如果你不幸属于这一类,那么除了抓紧时间开发特长以外,也不必过分灰心。我觉得,全能程序员也有自己的价值和优势,这个就放在下一次谈吧。

养老金咨询与规划

本周有一个理财活动的消息,关于养老金的规划和咨询

程序员是年轻人群体,对于养老金,大家关心的不多。有些人还有错误的观念,觉得如果工作的年限足够长,公司就会承担你的养老金。

这种想法不对,养老金跟公司无关,是由社保承担的。我国现行的规定是,只要缴纳养老保险满15年,达到法定退休年龄后(目前是60岁,以后会上调到65岁),就可以从政府领取。所以,大家要关心公司有没有缴纳养老保险,这关系到你以后能不能领到养老金。

程序员这个职业,流动性非常大,换公司是家常便饭,而且这是一个年龄敏感的职业,很少有人能写代码一直到退休。所以,养老金对于程序员,相对来说有更大的保障意义。

下面是几个大家普遍比较关心的问题。

  1. 如果提早退休,或者离职后没有再找工作,社会保险怎么处理?
  2. 养老金的金额怎么计算?如何拿到更多的养老金?
  3. 自由职业的程序员,可以领取养老金吗?
  4. 除了国家的养老金,商业的养老保险是否值得考虑?

这些问题都可以在本次的养老金活动里面咨询。

这个活动来自一直跟我合作的孙明展老师。他从世界500强保险公司离职后,自己创业,开办了创必承公司,从事理财教育和财务咨询工作。大家搜一下"孙明展"这个公号,上面有多年来很多原创的理财科普文章。

这一次他们为了推广业务,考虑到周刊读者大多数是程序员,就办了这个《养老金的规划和咨询》活动,一共有200个免费名额。各种财务问题都可以咨询,专业的理财师会为大家提供养老金规划,以及家庭财务保障定制服务,保证不推销任何产品。

活动的主要内容如下:

  • 养老金目标梳理;
  • 家庭成员保障责任综合评估;
  • 现有保险产品的性价比分析比较;
  • 家庭风险属性评估;
  • 基于家庭状况和需求的养老金规划和家庭保障规划构建。

微信扫码上面二维码,就可以报名。感兴趣的朋友,欢迎参加。

科技动态

1、.com 域名涨价

从今年9月1日开始,.com 域名的注册费从 $7.85 上调到 $8.39,每年增加54美分。

全世界的域名由 ICANN (互联网名称与数字地址分配组织)管理,它把 .com 域名的管理权委托给 VeriSign 公司,再由 VeriSign 向域名零售商收取注册费,并将一部分收入转交给 ICANN。

由于 VeriSign 垄断了 .com 域名的注册权,并且还是一家上市公司,历史上域名注册费一直在上涨。可以预期,未来几年中 .com 域名的注册费还会上涨。

2、电子咖啡

很多人工作疲惫时,会喝一杯咖啡振奋精神。一家美国创业公司发明了一种电动剃须刀大小的设备,可以替代咖啡。

这种设备只要按在脖子上,打开开关,就会向人体释放低压电流,每次持续一毫秒,相当于一次电击。

它可以刺激迷走神经,促进体内肾上腺素的分泌,起到跟咖啡类似的作用。目前,价格是每个 1250美元。

3、《堡垒之夜》的虚拟纪念活动

8月28日是马丁·路德·金发表著名演说《我有一个梦想》的纪念日。今年的这一天,《堡垒之夜》在游戏里面开展了虚拟的纪念活动。

玩家会在路边看到演讲的视频,还能进入虚拟纪念馆,详细了解。以后,这种虚拟形式的纪念活动,将会越来越多。

4、

米其林公司正在测试,货轮上面安装可以升降的大型风帆,充分利用风能,减少柴油燃料的使用,从而抑制温室气体的排放。

5、预制小屋

美国拉斯维加斯的一家公司,推出了预制小屋,只要 49,500 美元,你就能立刻拥有一间35平米的房子,里面有卧室、浴室、客厅和厨房,已经全部装修好了。

这种小屋在房价昂贵的加州引发了轰动,连马斯克都听说了,他就下单购买了一间,要求运到 SpaceX 公司,他想住在里面试试看。

这件事传出去以后,想要购买这种预制屋的人就更多了,目前已经有5万人登记预购了。

6、太阳能飞机

据报道,美国海军正在委托研发一种太阳能载人飞机,可以连续飞行90天不落地。

这种飞机的机翼长达72米,全部铺满了太阳能板,并且配备了大量电池,存储电能供夜间飞行。2015年,这种飞机的原型曾经环球飞行,创下了117小时52分钟(接近5天)不落地的记录。

7、算法裁员

美国的游戏服务公司 Xsolla 的收益今年下降了40%,决定裁掉三分之一的员工,大约150人。这件事的特别之处在于,公司使用软件算法判定,应该裁掉哪些人。

CEO 的内部邮件这样写道:

"你收到这封电子邮件,是因为我们的大数据团队分析了你在 Jira、Confluence、Gmail、聊天、文档、仪表板中的活动,并将你标记为不敬业和效率低下的员工。换句话说,当你远程工作时,你并不总是在工作。你们中的许多人可能会感到震惊,不认同软件的算法,但我真的相信 Xsolla 不适合你。"

文章

1、500米饱和潜水背后的故事(中文)

我国最近成功完成500米饱和潜水的陆基实验,9名潜水员进入加压舱,在51个大气压的环境下,停留了176个小时(相当于7天多),为下一步潜水员正式出舱,进入500米的深海做准备。

2、我怎么加入微软剑桥研究院(中文)

作者详细记录从亚马逊跳槽到微软剑桥研究院的过程。(@DoctorLai投稿)

3、如何在 Linux 中实时监控日志文件(中文)

Linux 系统的日志文件一般位于 /var/log,以 .log 扩展名结尾。本文教你如何在一个窗口里面,同时监控所有日志文件。(@jerrylususu投稿)

4、使用 React Hooks 分离组件逻辑(英文)

本文介绍 React Hooks 的正确用法,写得非常好,推荐阅读。它回答了一个基本的问题:Hooks 到底应该用来干什么?

简单说,Hooks 应该用来将组件的 UI 和逻辑分开。

5、iOS 的四种设计模式(英文)

本文分析了 iOS 引入的四种新的手机 UI 设计模式,比如将表单的确认按钮,放置在页面顶部的右上角(上图)。

6、CSS 中 content 属性的妙用(中文)

CSS 的 content 属性可以向网页添加文本内容,本文总结了这个属性的用途,并逐一给出示例。

7、操作系统是什么?(中文)

本文是《操作系统开发入门基础》系列译文的第一篇,讨论了操作系统的概念,哪些工作属于操作系统的范畴。(@StrokMitream投稿)

8、Firefox 浏览器引入强化版 Cookie 删除(英文)

浏览器提供的 Cookie 删除功能,只能删除页面本身的 Cookie,不能删除由该页面引入的其它网站 Cookie。

Firefox 91 提供了强化版 Cookie 删除,可以将某个网站引入的所有 Cookie 删除。

9、掌握 Python 网页抓取(英文)

本文详细介绍如何使用 Python 开发一个爬虫,抓取网页,并且考虑到了很多细节问题,比如多线程并行抓取、防止被屏蔽等等。

工具

1、FeedAdd

一个免费服务,提供微信公众号的 RSS 文件,用户可以自己创建订阅源。(@miscommunication投稿)

2、PlayCover

在 M1 架构的 Macbook 上运行 iOS app 时,这个开源工具可以让鼠标和键盘支持 iOS app。

3、Judo

一个 Mac 应用,用来设计 iOS app 的页面,不用编写代码,用可视化的方式制作页面原型,可以在手机上预览页面效果。

4、Mac OS Monterey Web

使用 Svelte 框架在网页上模拟 Mac OS Monterey 的 UI。

5、OneDev

一个开源的 Git 仓库托管软件,类似于 GitHub / GitLab,可以自己架设,特点是资源消耗小。

6、BackgroundRemover

一个开源软件,用来移除图像和视频的背景。

7、js-ziju

一个自制的编译器,可以将 JS 代码输出为 LLVM IR 格式和 X86 Assembly 语言。(@wizardpisces投稿)

8、zx

一个 JS 库,用来在 JS 脚本里面方便地调用 Bash 命令,很适合使用 JS 语法来写 Bash 脚本。

9、HyperFormula

Excel 公式的 JS 版,目前有300多个公式。同时,这个库也提供数据操作功能,可以用作电子表格的后端。

资源

1、Go 语言入门课:零基础到实战

极客时间福利课程,零基础讲解 Go 的语法和用法,最后带读者手写一个计算器小程序。《Kubernetes 生产化之路》作者、Go 资深工程师李建强主讲。

下周一(9月6日)开始,三个晚上直播课,微信添加助理老师报名。

2、MacOS Bliss

作者参照 Windows XP 著名的草地壁纸,为 MacOS 和 iOS 也创建了多张类似风格的壁纸,可以免费下载,挺好看的。

3、如何在 Linux 上玩任天堂 Switch 模拟器(英文)

这篇文章是详细的操作指南,介绍在 Linux 桌面电脑上面,怎样通过模拟器玩 Switch 游戏。

4、Minecraft 的岩石和矿物

Minecraft 游戏出现过各种各样的石头和矿物(上图),这个网站列出游戏里的石头在真实世界的对应物(下图)。

5、AWS 的简单英语介绍

AWS(亚马逊网络服务)现在包含50多种产品,官方的介绍有时很难懂,搞不清楚每种产品到底干什么。这个网页使用简单的英语,介绍每一种服务。

图片

1、键盘裤子

使用键盘,总是需要抬起手腕。一个荷兰学生 Eric De Nijs 就想,能否不抬起手腕就能使用键盘。他发现,最方便的方法就是把键盘放在大腿上面,只要坐下来就能使用。

于是,他发明了一种键盘裤子,键盘做在裤子上面,随时随地可以用。

2、河狸咬树干

河狸是中国一级保护动物,有着强壮的门牙,可以咬断树干,再将树干拖回家做巢。下面就是一段河狸咬树干的视频,看着非常纾压。

文摘

1、Linux 内核5.14版发布说明

8月25日是 Linux 操作系统诞生纪念日。

1991年8月25日,芬兰大学生 Linus 在网上宣布,他写了一个操作系统的内核,欢迎大家提意见。

30年过去了,Linus 依然在为这个项目忙碌。他按照预定计划,在8月29日发布了内核的5.14版。并且写了下面的发布说明。

"我意识到,大家一定还忙于30周年的庆祝活动,各种花里胡哨的晚会。但在某个时候,你一定会厌倦那里的浮华、烟花和香槟,穿着礼服也不舒服。这种庆祝活动还将持续数周,但你可能想停下来喘口气。

如果是这样,我正好为你准备了一个新的内核版本,欢迎来测试和享用。5.14版已经发布,就等着你来试用,别忘了所有那些庆祝活动是为了什么。

当然,可怜的不知疲倦的内核维护者,是不会有时间参加庆祝活动的。因为对他们来说,这一天只是意味着合并窗口将在明天开始。我们期待还有下一个30年。但是对于其他人,请稍事休息,构建新版本的内核,对其进行测试,然后你就可以回到那个你刚刚离开的、看上去不会结束的聚会上了。"

2、退出 C++

斯科特·迈耶斯(Scott Meyers)是著名的 C++ 语言专家,写过《Effective C++》系列著作。

  • 1992年,《Effective C++:50 种改进程序和设计的具体方法》
  • 1995年,《More Effective C++:35 种改进程序和设计的新方法》
  • 1998年,《Effective C++(第二版):改进程序和设计的 50 种特定方法》
  • 2001年,《 有效的 STL:改进标准模板库使用的 50 种具体方法》
  • 2005年,《Effective C++(第三版):55 种改进程序和设计的具体方法》
  • 2010年,《新 C++ (C++11)概述》
  • 2010年,《嵌入式环境中的 Effective C++》
  • 2014年《Effective 现代 C++:42 种改进 C++11 和 C++14 使用的具体方法》

2009年3月,他获得 Dr. Dobb's 杰出贡献奖。

2015年,他宣布不再写作 C++ 书籍了。

2018年,他又宣布不再修正自己著作里面的技术错误了。原因不是他不想修正,而是已经没有能力了。

"为了修复错误,我必须能够识别它们。但是,我不再相信自己有能力做到这件事。"

"如大家所知,我在 2015 年底退出了对 C++ 语言的积极参与。在过去的两年半中,我忘记了足够多的语言细节,以至于无法再正确评估关于 C++ 的错误报告。

C++ 是一种庞大而复杂的语言,有各种复杂和微妙的功能,我不再相信自己会记住所有这些内容。因此,我所能做的就是感谢读者提供的错误报告,但不再更新我的书籍了。我认为这是唯一负责任的行动方案。"

言论

1、

我从互联网上得到的最好的经验之一,就是永远不要复制和粘贴不是自己编写的代码。如果你一定要复制,那就照着它逐字输入,逼着自己思考,这些代码实际上是什么意思。

--Hacker News 读者

2、

推行 996 工作制的心态,可以追溯到制造业时代。一家服装厂提高产量的最简单方法是什么?就是让你的工人加班。

不幸的是,这不适用于科技公司,程序员在一段代码上花费更多时间,并不意味着写出更好的代码。事实上,处理错误的最佳方法通常是休息一下,然后回来重新阅读代码,你会更容易发现错误。

--Hacker News 读者,评论中国最高法院判定 996 工作制违法

3、

日本和韩国都有法律规定,手机拍照必须有快门声,无法关闭这个声音,目的是防止偷拍。

--知乎

4、

写一本技术书籍,报酬寥寥无几,很可能除了荣誉,你得不到任何东西。

--《自出版技术书籍》

5、

无所畏惧(fearless)不是没有恐惧;而是你依然心怀恐惧,但无论如何都决定要跳进去。

--Taylor Swift

历史上的本周

2020年(第 123 期):互联网公司与湘军的军制

2019年(第 71 期):名校毕业,不容易创业

2018年(第 20 期):不读大学的替代方案

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期:2021年9月 3日

[返回] [原文链接]