阮一峰

科技爱好者周刊(第 160 期):中年码农的困境

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

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

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

封面图

云南红河州的蝴蝶谷,5月出现蝴蝶大爆发,数量是十年来最多,估计达到1.5亿只。(via

本周话题:中年码农的困境

上周谈到了游戏开发者的年薪,我后来想到,曾经在 B 站看过一个视频,也是讲这个事情。

我又重新看了一遍,还是感到说得很好,想分享给大家。下面就是我总结的视频主要内容,下文的“我”都是指视频的讲述者。

2008年,哈工大研究生毕业后,我和同宿舍的同学一起来了上海。他在盛大游戏工作几年后,回了广州老家,我们就很少联系了。

前一段时间,我有事找他,就聊了一下近况。他本科和硕士都是计算机专业,现在广州的一家游戏公司上班,还在写代码。我们都已经35岁了,我也想知道,这个年龄段的中年码农,现在的行情怎么样?

他跟我说了几个情况。首先,跟大家想的一样,加班非常厉害。周一到周五,每天基本是晚上十点下班,如果遇到项目上线或者重大更新,那肯定是凌晨两三点下班,通宵也是有的。周六还要正常上班。

他现在的这家公司比较坑。游戏公司给研发人员的基本工资不会太高,你的很大一部分收入来自项目奖金。去年他们公司有一个项目上线,就在上线之前,把整个项目组解散了,要么辞退,要么分配到其他的项目组。公司这是为了节省成本,少发奖金。很多公司都这么干,没有办法的,员工永远是处在弱势的地位。

然后,我很好奇,也是很多人好奇的,985高校的计算机硕士,工作到现在有12年了,收入是多少呢?他跟我说,他的月薪是每月税后三万多,具体多少他没说,奖金我也没问。

我是自由职业者,会担心下个月的收入,我觉得他在公司上班,可能相对稳定一点。他说自由职业者的所有担心,他作为上班族都有,担心会被裁员。裁员是所有中年码农,或者说所有中年职场人士,都避不开的一个话题。35岁到40岁的这些职场人士,如果职位做不到中层,你的人力成本是很贵的。把你优化掉,雇佣那些刚毕业的年轻人,对公司是更优的选择。他们更有体力,也更听话,执行力也更强。很多公司裁员时,第一考虑的就是中年的中低层职员。作为中年人,如果你平时不加班,万一绩效评得不好,那就可能被优化掉。

我刚毕业时,很多同学和同事可能心里想的是,写几年代码,代码写得好之后去转管理层。后来有一些人真的转了管理,但是更多的人是转行,不做码农了,因为年纪大了,各种体力都跟不上了。转管理层毕竟是少数,因为僧多粥少,只有那么几个位置,而且有些人就不适合做管理,喜欢写代码。就算成功晋升管理层,往上走就更难了,很多时候只能走到中层,很难走到高层。所以,对于中层管理者,前面说的那些中年危机,他同样都有。

现在已经有很多三四十岁的码农了,好消息是有一小撮人,像我同学那样,依然在写代码,坏消息是很多公司对于中年的码农比较苛刻,由于他们的综合人力成本比较高,很容易被优化掉。这就是现状。

下面对于那些年轻的码农,我给几个建议吧。

(1)要有积累。不管是文字、视频、项目、代码等等,一定要有积累,要在本职工作以外,有一个东西你可以慢慢的累积下来。最开始的几年,可能都没有什么收益,但你最好还是要坚持下去。我觉得,积累是一种很强大的力量,比学习能力更重要。因为随着年龄的增长,你的学习能力是在下降的,而且行业和技术迭代比较快,一直有新东西出现,你必须不断地保持学习,这很困难。

(2)要让自己不可或缺。公司制定了很多很完善的流程和制度,目的就是为了让每一位员工都可以被替代,一旦有人离职,都可以在短时间内找到替代他的人,这样才能保持公司的正常运转。个人的策略其实就是跟公司相反,让公司不容易找到替代你的人。如果公司需要花费较长时间或者较大的成本,才能找到合适的人来替换你,那么你就是不可或缺的。

(3)要保持开放的头脑,要善于接受。每个人的见识是有局限的,世界是多元的,每一次交流都是认知的碰撞。很多人就是不善于接受别人的观点,很固执。我并不是说,让你无脑地赞同别人,而是你愿意去尝试或者验证别人的观点。这样才会给自己带来更多的机会,蛮干是没有出路的。中国大部分码农的现状是不乐观的,如果你不多去思考的话,情况可能会更加的不乐观。

Authing 身份云

以后,周刊会不定期推广国产软件精品和新品,每周详细介绍一款软件。如果大家有意推广自己的产品,欢迎与我联系(Email:yifeng.ruan@gmail.com)。


本周的主角是北京蒸汽记忆科技有限公司的 Authing。去年他们在周刊上亮相过,经过近一年的密集开发,Authing 产品有了大幅度改进,功能稳定性显著提升,SDK 也更加完备,所以想再给大家介绍一下他们。

如果用一句话表达,Authing 做的是身份认证和授权管理的 SaaS 服务。说得通俗一点,他们通过云服务,帮外部应用解决用户登录和权限设置问题,国外称为 IDaaS(ID as a Service),中文译为“身份云”。

用户的认证和权限管理对软件来说特别重要,不仅要保证数据安全,还要满足各种协议和使用场景,对企业来说往往是开发难度大,既耗时又费人力。

Authing 就是为了解决这个痛点而生的,通过将用户数据与软件本身的功能解耦,使得开发者不必自建身份管理系统,只需要调用 Authing 的云服务,不仅提升了安全性,还节约了开发时间。

小到几行代码的登录表单,大到企业应用的身份中台,你都可以在他们的平台上进行定制,整个过程方便快速,而且价格低廉。

具体来说,Authing 提供三种不同的使用方法:

(1)最简单的,让 Authing 托管你的登录页,登录时跳转到他们的网站即可,用户登录后,再返回到你的应用。大家可以点击查看这个范例

(2)如果不想让用户跳到外部登录页,就使用他们提供的前端登录组件,嵌入自己的 Web 或移动端页面,完全不需要自己实现登录 UI 和认证逻辑。

(3)自定义登录 UI 和认证流程,这样灵活性最大,但需要自己调用 API 开发,目前 Authing 提供 10 余种主流语言或框架的 SDK

值得一提的是 Authing 提供多端支持,Web 页面、移动端、原生 App 和小程序等,都可以接入。具体使用哪一种认证(密码、手机二维码、社会化登录和多因素认证等),需要自己在后台配置。至于更复杂的权限控制,就请看文档了。

为了减轻开发负担,尤其是企业应用的开发,Authing 新上线了“应用市场”,支持常见的云服务平台(比如,阿里云、腾讯云)。如果你的应用架设在这些云平台,那么只要安装一次对应的适配层,就能实现当前平台上所有应用的单点登录。


你也许想不到,他们是一家 95 后开发者成立的创业公司,才不到两岁,业务就已经蒸蒸日上,完成了多轮融资,每⽉的用户规模达数千万,支持着几万个企业级应用,国内大型企业(比如中国石油、国家电网)、事业单位(比如高等教育出版社)、知名外企(日本丰田、德高集团)和众多的创业公司都是他们的客户。

尤其难得的是,他们还热心于技术传播和用户教育,写了很多科普文章。我推荐大家看一下他们的博客论坛,里面有很多不错的原创内容,比如《LDAP 协议入门》《单点登录教程》。这说明他们把产品真正当作一种技术理想,这在国内是不多见的。

最后,欢迎大家试用他们的服务,前 3000 次的认证是免费的,此后只对活跃用户收费,不登录就不收费。更多问题,可以去论坛提问和咨询。

科技动态

1、142年的种子实验

1879年,一位美国植物学家在密西根州采集了大量植物种子,装瓶后埋在土里,希望几十年或几百年后再挖出来,看看种子是否还能发芽。从那以后,大约每隔20年,该实验的看护者就会挖出一个瓶子,将种子重新播种。

2021年4月中旬,密歇根州立大学的几位老师挖出了其中的一个瓶子,种下了里面的种子。到了4月23日,第一株幼苗破土而出,截止到5月初,已经有11株幼苗发芽了。

这是世界上运行时间最长的实验之一,已经进行了142年,植物学家希望它至少还能持续80年,延续到22世纪。

2、Amazon Sidewalk 网络

Amazon 公司宣布,将在6月份启动一个叫做 Sidewalk 的共享网络。以后,用户只要购买了 Amazon 的硬件设备(比如 Echo 智能音箱、Ring 智能门铃),这些设备就会分享用户家中一小部分带宽,给附近的电子设备共享,让那些设备可以网络通信。

这样一来,物联网设备只要具有蓝牙模块,就可以随处上网,大大扩展了功能。举例来说,运动时可以只带一个手表,不用带手机,就将运动数据发到网上;再比如,追踪项圈可以将宠物的 GPS 坐标实时发到网上。

3、扁平意大利面

意大利面通常是螺旋状或管状,这样的面条有一个缺点,就是很占包装空间。一大包意大利面,真正的容量可能只有包装体积的40%。最近,卡内基梅隆大学的研究人员发明了一种扁平意大利面,煮熟以后会变得卷曲,图片是面条水煮前后的对比。

它的原理是在平坦的面条上刻出沟槽,这些沟槽的形状和深度,是研究人员事先使用计算机和物理实验确定的。水煮时,由于沟槽面的膨胀小于平滑面的膨胀,导致面条卷曲变形。理论上,还可以让面条水煮后呈现更复杂的形状。

4、猪皮移植

河南周口某医院为烧伤病人移植猪皮,手术利用猪皮覆盖保护患者被烧伤的皮肤,等到患者新皮肤组织再生后,移植的猪皮会自行脱落。

严重的烧伤病人需要多次移植。该医院称以前有过患者进行多次猪皮移植手术,“当时一共用了6头猪。”

5、

谷歌的 Fuchsia 操作系统正式亮相,用在自家的智能家居控制器 Nest Hub 上面。这是谷歌的第三个操作系统,前两个是安卓和 ChromeOS。

6、

Facebook 在《纽约时报》等美国大报,刊登全版广告(下图),抨击苹果公司的新版本 iOS 允许关闭用户追踪,认为这样将打击美国小企业,因为 Facebook 无法为他们提供帮助了。

四种显示屏

瑞士巴塞尔的一个基金会,委托当地的艺术家,创造了一个装置艺术品,使用四个显示屏展示当前时间,完成后会放到机场和火车站。

这四个显示屏分别代表了显示技术的四个阶段。

第一个是1960年代的机械点阵屏(Flip-Dot),通过电磁方式翻转黑白圆点,来显示内容。

第二个是1970~1980年代的单色液晶 LCD 屏,通过屏幕底下的灯管发光,只能发蓝光。

第三个是2000年左右的 LED 屏,通过红色、绿色、蓝色的发光二极管的不同组合,显示出彩色。

第四个是当代的液晶 TFT 屏,使用很小的薄膜晶体管,使得分辨率可以做得很高。

文章

1、使用 Notion API 建立自己的账本(中文)

Notion 最近开放了 API,作者详细介绍如何写一个 Python 脚本,调用 Notion API,将支付宝和微信导出的交易记录,输入 Notion 形成一个账本。

2、如何画出螺旋曲线?(英文)

作者使用通俗语言,介绍螺旋曲线的数学含义,并给出多个 JavaScript 示例。

3、树莓派架设公网网站(英文)

作家介绍如何在家庭网络之中,使用树莓派架设一个网站,然后通过端口映射,供外网访问。

4、Linux 系统的磁盘分析工具 gdu 用法(英文)

gdu 是 du 命令的 Go 语言版,用来分析 Linux 和 MacOS 系统的磁盘占用情况,提升了执行速度,并且有命令行图形界面。

5、为什么我们从 Webpack 切换到 Vite?(英文)

Replit 解释为什么将前端打包工具,从 Webpack 转为 Vite。

6、JavaScript Web Cryptography API 的用法(英文)

浏览器原生支持 Web Cryptography API,用于加密和解密,本文通过举例,介绍这个 API 的用法。

7、x86 计算机的栈顶位置(英文)

C 语言变量储存在内存的栈(stack)里面,从栈底开始存放,直到栈顶。这个概念很容易混淆,因为栈底是内存的高位地址,栈顶是内存的低位地址,本文就来分析这个概念。

8、山羊吃草问题(英文)

如果把山羊拴在谷仓大门上,山羊的活动面积就是上图粉色的部分,具体大小容易算出来。

数学家对这个问题进行了很多发挥,其中有一个版本就是,如果把山羊拴在一个圆形谷仓里面(下图),请问绳子的长度是多少,可以让山羊的活动面积达到谷仓的一半。

工具

1、Slidev

这个工具使用 Markdown 格式编写 PPT 幻灯片,功能较多。

2、Vulture

一个 Python 的静态代码检查工具,可以发现没有用到的代码。

3、Send

Mozilla 基金会曾经推出了一个文件分享服务,后来停止开发了。社区就接过来,做成完全的开源版,现在可以自己搭建,并且有 Web、命令行和安卓等各种客户端。

4、Sequencer 64

一个架子鼓的网页模拟器。

5、Id128

一个 JavaScript 库,生成 UUID(通用唯一识别码),支持多种算法。

6、Pyodide

这个库是浏览器的 Python 运行时,通过 WebAssembly 脚本让网页运行 Python 代码,可以通过它加载一些人工智能或者科学计算的库。

7、Zulip

一个团队协作工具,将聊天和电子邮件的线程模型结合在一起,类似 Slack,但是更像一个内部论坛。

8、Play.js

一个 iOS 应用,提供 JavaScript IDE,允许在 iPhone 和 iPad 上开发 Web 和 Node.js 应用。

9、Magician

一个国内开发者写的 Java 的网络协议解析包,可以用作 HTTP 和 WebSocket 服务器,支持 TCP 和 UDP 通信,使用简单。(@yuyenews 投稿)

10、NewTabEditor

Chrome 浏览器的插件,可以让新标签页变成一个文本编辑器。(@5A59 投稿)

资源

1、CSS 学习教程

谷歌出品的 CSS 教程,内容很丰富全面,一共有24课。(@wxyudl 投稿)

2、Iconic

一个开放式的图标仓库,可以分类查找图标,免费下载。

3、WebGL 指纹

一些大型网站使用 WebGL 生成用户指纹,用来追踪用户。这个网页列出了不同公司使用的追踪代码。

4、MANUZOID

这个网站可以搜索100多万种产品的英文产品说明书。

5、凤凰架构

一本中文的开源书籍,介绍如何构建一套可靠的分布式大型软件系统,可以免费阅读。(@1228857713 投稿)

图片

1、世界最长的公寓楼

俄罗斯圣彼得堡有一座25层公寓楼,长达990米,弯弯曲曲,像一条长蛇。

照片看上去有很多栋楼,其实都是连在一起的。整座建筑有35个入口,3000多套公寓,如果每家有一辆车,就要解决几千辆车的停车问题。

2、印度山城

艾索尔(Aizawl)是印度米佐拉姆邦(Mizoram)的首府,整座城市完全建在山上。

整个山头密密麻麻都是房子,绵延几公里,还有四通八达的马路和公交系统,非常壮观。

文摘

1、 乔布斯反对第三方硬件

摘自《硅谷革命:成就苹果公司的疯狂往事》一书。

苹果公司最早的产品 Apple II 计算机,是联合创始人沃兹设计的。他是一个具有共享精神的工程师,很看重硬件的扩展性,所以他赋予 Apple II 极大的扩展性,内建了七个外置卡插槽,并经过精心设计,每张外置卡都能以自身的 ROM 芯片来运行内置软件。如此灵活的设计让 Apple II 能够运行大量的应用程序,同时也使得很多第三方公司为 Apple II 开发硬件。

不过,后来 Macintosh 电脑的设计负责人 Jef Raskin 有不同的想法。他认为,扩展插槽带来的复杂性(必须允许用户拆开电脑),是阻碍个人电脑普及的原因之一。而且,很多第三方硬件质量参差不齐,不一定能够按照预想的方式工作。不同的第三方硬件也缺乏一致性。

他认为,苹果公司应该推出标准化的、易用的、价格实惠的电脑,这样才能让产品大卖,允许硬件的扩展性只会徒增成本和复杂性,所以应该尽量避免。

乔布斯在很多事情上都和 Jef Raskin 有不同意见,但是唯独对硬件的扩展性看法相同。他也认为,扩展性是设计上的缺陷,而非特性。据说乔布斯以前就很反对 Apple II 有太多的扩展插槽,所以他宣布 Macintosh 永远都不提供扩展插槽,外壳要密封起来,只留下两个串行端口。

后来,他的一生中推出的所有苹果产品,扩展性都非常差,都不允许有第三方硬件扩展。

这样做虽然能保证对产品的控制,但有一个严重的缺点。由于计算机技术发展很快,硬件很容易过时,第三方扩展可以增加设备的适用性,帮助产品满足不同的需求,延长销售寿命。一旦禁止,就必然要求公司要源源不断地推出受欢迎的产品。

言论

1、

电视机的分辨率越高,屏幕尺寸就会越大,所以 8K 电视机不太可能进入家庭。正常情况下,在 3 米的距离观看电视,8K 屏幕需要达到300英寸,否则意义不大,4K 分辨率也有类似问题。

较高的动态范围和较宽的色域,对于电视机可能更有意义。

-- 佳能公司资深研究员

2、

中国的大城市喜欢建造超高层建筑,我将这种现象称为“贫困时代的遗产”。过去的贫困时代仍然给整个社会留有一种落后的价值观,建筑物拼命比高度,展览馆、音乐厅、机场拼命比面积。

建筑物适当的高一点,适当展示形象可以,但不应将建筑物的高度视为现代化的象征。

-- 《专家谈深圳赛格大厦晃动》

3、

如果你的身家达到440亿美元,你也不会想忍受管理手下的小兵。

-- 国外网站评论张一鸣辞去字节跳动的 CEO

4、

1979年,袁隆平的杂交水稻技术被引入美国,这是中华人民共和国历史上的第一个知识产权转让案例。

-- 维基百科的“袁隆平”条目

历史上的本周

2020年(第 109 期):播客的价值

2019年(第 57 期):分享知识是否违反人性?

2018年(第 6 期):未来还需要苦学外语吗?

订阅

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

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

© Licensed under CC BY-NC-SA 4.0

没有人足够完美,以至可以未经别人同意就支配别人。 ——林肯

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!