科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码

作者: 阮一峰

日期: 2020年9月30日

这里记录每周值得分享的科技内容,周五发布。( 本周五是十一假期,周刊提前到周三发布。)

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

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

封面图

西班牙艺术家胡安•盖瑞扎博 (Juan Garaizabal)的作品《永恒之门》,正在上海静安雕塑公园展出,18级台阶通向一个空中之门。(出处

本周话题:未来人人开发软件,几乎没人编码

现在,少儿编程培训班很流行,一到周末,家长们就送孩子去学计算机。

虽然我很赞成从小学习计算机,但总感到有点疑惑: 编程正变得越来越容易,门槛越来越低,小朋友们真有必要牺牲周末的睡眠和体育时间,专门去学编程语言(比如 Python)吗?

上个世纪要当程序员,你必须懂汇编语言。到了如今,编程几乎已经没有门槛了,大多数人一天内就能学会,怎么写一个简单的网页 JavaScript 脚本。那么,你告诉我,未来会怎样?

再过15年或20年,等到现在的小孩进入就业市场,编程可能已经变得极其傻瓜化、智能化,也许只需要动动嘴,说出你想要什么程序,人工智能就自动生成了代码。

那时还会有程序员,但是人数应该很少,而且只负责编写底层代码,就像今天的汇编语言程序员非常少一样。因此我怀疑,孩子们没必要专门去学编程,因为未来可能根本不是今天这样编程。

大家知道吗,世界上用户最多的编程工具是什么软件?

答案是 Excel。无数财务人员、管理人员、销售人员都在用它,解决各种问题,尽管他们根本不懂编程。

我觉得,这就是未来编程工具的趋势,你不需要或者只需要懂一点点代码,就能做出软件,解决你的问题。最近正在兴起的"低代码"(low code)和"无代码"(no code)工具,正好呼应了这种趋势。未来人人都是软件工程师,都能够做出自己需要的软件,但是几乎没人知道如何编程。

JavaScript 学习视频

本周的课程资料是 开课吧 提供的《JavaScript 学习视频》。

在可见的时间里,JavaScript 语言都会是前端最重要、最基础的技能。不管你打算开发什么(Web、Node.js、还是小程序),JavaScript 都是绕不过去的,属于必须掌握的基本技能,就像物理研究绕不过去数学一样。只要你面试前端岗位,JavaScript 技能是必考的。

JavaScript 的难度并不低,有着各种怪异的语法点,而且语法还在快速发展中,TC39 委员会每年都发布一个语言的新版本。只有掌握了基础语法,才跟得上顶层框架的各种变化,以不变应万变。

下面的视频课程,就是讲解几个特别重要的语法点和开发技巧,帮助你更好地理解这门语言。课程内容涵盖四大模块,课程时长达到300分钟!

  1. this 关键字的指向
  2. 基于防抖(debounce)和节流(throttle)的性能优化
  3. 响应式数据双向绑定的原理剖析
  4. 基于 Web Component 的组件化开发

手机扫描下面的二维码,就可以 0元领取 这套视频了 。只有 100个 名额,先到先得。

资讯

1、眼神校正功能

苹果的视频通话服务 Facetime,将正式启用眼神校正功能。视频通话时,对话者的眼神往往不是看着摄像头,而是看着屏幕或其他地方。这项功能可以自动修改眼神,让它看上去直接注视着前置摄像头,好像正在与另一方发生眼神交流。

这项功能在 iOS 13 的 Beta 版本开始测试,当时称为"注意力校正",但没有包括在 正式版本中。iOS 14 重新将其引入,并在页面上列为正式功能。

2、根据 DNA 生成画像

美国弗吉尼亚州的一家遗传学公司,正在开展根据 DNA 画出犯罪嫌疑人画像的服务(上图)。他们根据犯罪现场得到的 DNA,进行数据库查询,找到相似的 DNA。理论上,DNA 相似的人应该具有血缘关系,长相很可能接近,就可以根据亲戚的长相画出嫌犯的长相。

该技术已经帮助警察侦破了一些久远的悬案,比如1987年一对加拿大夫妇被谋杀。但是,这已经在美国引起了巨大的争议,很多人认为这会侵犯隐私,不应该允许警方用 DNA 查找你的血缘关系。

3、推特的图像预览 Bug

一个推特用户发现,如果上传的图片中同时包括黑人和白人,推特的图像预览总是向用户呈现白人。下图是上传的原图,无论奥巴马的头像在上方或下方,最后的预览总是上图的样子。

推特官方表示,将调查使用的人脸识别模型。

4、大象死亡之谜

今年五六月间,博茨瓦纳西北部的国家公园内,约330头大象突然死亡,一直找不到原因。最近,政府宣布这些大象死于一种神经系统疾病,可能由于饮用了被有毒的蓝藻污染过的水。

官方解释由于降雨,国家公园内会有一些季节性水塘,大量繁殖的蓝藻使得水塘充满细菌。当水塘干涸以后,大象死亡就停止了,所以这可能就是死因。博茨瓦纳估计拥有13万头大象,是世界上最大的大象种群,每年吸引着大量游客。

5、人脸识别垃圾桶

北京市西城区德胜街道新风街一号院上线了人脸识别垃圾桶。居民预先提交一张个人脸部的照片,就能完成注册。以后扔垃圾时,垃圾桶将用数秒的时间自动"刷脸"。在识别出居民身份后,垃圾桶盖打开,还能根据垃圾重量为居民返还一定积分。

对于没有注册的居民,可以手动按下按钮或刷卡,打开垃圾桶盖。

6、一句话消息

  • 中国发行首枚内嵌 NFC 芯片的邮票。集邮者可通过中国邮政 App 读取邮票序列码、荧光暗码、芯片 ID 等等。

  • 小米申请了三折式折叠手机专利,完全展开后,萤幕可以变成三倍大。只是手机厚度惊人,更像充电宝。

  • 亚马逊推出了云游戏服务 Luna,跟谷歌的 Stadia 很像,就是在机房运行游戏,用户不需要买主机,只要有上网设备就能玩。这个服务有可能进中国。

  • 中国宣布,2060年实现碳中和,即二氧化碳的排放量和吸收量相等。由于中国是世界最大碳排放国,这个承诺的难度很大。此前,拜登说当选后,美国会在2050年实现碳中和,特朗普则根本不在乎这件事。

  • 美国人由于疫情在家办公,每天全国可以节省6000万小时。这些时间本来都是浪费在路上,现在可以用来干其他事。

  • 芝加哥商品交易所开设水期货合约,可以对水价下注。由于气候变暖和水资源短缺,未来的淡水价格可能出现剧烈波动。

文章

1、如何提高 Node.js 的 libuv 性能(英文)

Node.js 的底层 JS 引擎是 v8,异步库 是 libuv。本文介绍一个小技巧,通过设置UV_THREADPOOL_SIZE参数,提高 libuv 性能。

2、俄罗斯的图-160用25小时飞了2万公里,这是不是一项假纪录?(中文)

2020年9月19日,俄罗斯的两架Tu-160战略轰炸机进行了一次携弹训练飞行:历时25小时,飞行超过2万公里。俄罗斯航空航天部队远程航空兵指挥官谢尔盖·科比拉什中将说:这次飞行打破了此类飞机"最远航程"和"不间断飞行"的世界纪录。果真如此吗?

3、前端开发的 VS Code 插件推荐(英文)

作者推荐他每天使用的 VS Code 插件,专门用于前端开发。

4、别在网页上显示"注册"(英文)

很多网站在页面上有注册按钮或注册链接(上图),作者认为,"注册"这个词大大降低了用户进一步使用的欲望,因为这要求用户付出操作成本,但没有给出足够的诱因。

经过他的实验,只要将"注册"改成"开始使用"或"免费试用",就能将转化率提高三倍。

5、11 种 Node.js ORM 库的简介(英文)

作者介绍了11种常用的用于连接数据库的 Node.js ORM 库。

6、如何通过new Function创建 async 函数(英文)

JavaScript 语言允许通过Funtion()生成函数,async 函数能通过这种方式生成吗?

7、Intl.RelativeTimeFormat():相对时间格式化(中文)

有时需要显示相对时间,比如"5分钟前"、"2天前"等等。一般使用外部库来实现,其实浏览器原生的 Intl.RelativeTimeFormat API 就可以做到。(@232650413 投稿)

8、如何写一个 Node.js 命令行程序,获取 Slack 的 OAuth 授权?(英文)

本文是一个 OAuth 授权示例,演示如何用 Node.js 在命令行获得 Slack 的授权,从而可以操作 Slack 的 API。

9、交互式《蒙娜丽莎》画像(英文)

传说中,不管你从哪个角度看《蒙娜丽莎》画像,都会感到画像中的女子在看着你。TensorFlow 的官方博客,演示怎么用 TensorFlow.js,制作一个交互式的《蒙娜丽莎》画像,摄像头捕捉观看者的角度,然后自动改变画像的眼神。

工具

1、Tables

谷歌发布的新产品,主要用于项目管理。跟 Trello 有点类似。

2、photoflare

跨平台的图像编辑桌面软件,相对小巧简单。

3、visx

Airbnb 推出的一套数据可视化组件库,基于 D3 和 React。

4、Release

一个 Node.js 库,一键生成软件包的 changelog。

5、Blacklight

一个在线工具,可以检查某个网站使用了哪些追踪技术。

6、Wewatermark

一个在线工具,可以为图片加上各种各样的水印。

7、Headless recorder

一个 Chrome 浏览器插件,自动记录你的操作,转成 Puppeteer 或 Playwright 脚本,从而实现浏览器操作自动化。

8、wave-share

一个概念性项目,两台计算机通过声波通信!A 计算机把数据转成音频,通过喇叭发声;B 计算机听到后,对声波解码,从而与 A 建立 WebRTC 的点对点连接。要不是这种通信速率太慢,通过声波分享文件也未尝不可。

9、Pixelixe Photo Editor

一个 Chrome 浏览器插件,在浏览器里面打开一个图片编辑器。

10、Taskwarrior

一个命令行的待办事项(todo)管理软件,功能相当强。(@nosarthur 投稿)

资源

1、Malware Bazaar

恶意软件数据库,提供恶意软件样本下载。

2、CurrentlyDown.com

该网站可以查询,哪些服务现在正在宕机,以及宕机的历史记录。

3、Flexbox Defense

一个在线的塔防小游戏,通过 CSS Flexbox 的练习,击退一波波进攻的敌人。

4、WebRTC 教程

一本英文的免费电子书,介绍 WebRTC 的基础知识。

图片

1、一天的毫秒数

下面计算式的结果,就是一天的毫秒数。

这个式子的来历如下。

2、劳拉的变化

电子游戏《古墓丽影》主人公劳拉,从1996年第一代到2018年最新一代的变化。

文摘

1、个人护城河

我最喜欢的职业建议是发展"个人护城河"。

你的个人护城河是一组独特的且不断累积的竞争优势,别人很难学习,或者很难做到。如果你有了它,你会让自己变得无法取代。

你必须找到属于你的特殊东西,而且这些东西会随着时间的流逝而增加价值。

如何找到自己的护城河?

你可以问自己:对我来说,什么事情容易做,而对别人却很难?我所拥有的技能中,哪些是其他人模仿会非常困难的?或者,你所爱的、擅长的事物,跟社会需要的事物有什么交汇点?

护城河会随着条件的变化而变化。比如,录音技术诞生之前,稀缺的是音乐本身,你想听音乐,就需要有一个艺术家给你现场表演。现在,音乐录音到处都是,稀缺的是策划、发行和个性的展示。

同样地,在社会中,以前的稀缺资源是金钱和特殊关系。而在互联网时代,稀缺的是特定知识和某些稀有技能。

漫画家斯科特·亚当斯(Scott Adams)曾经提过一种建立个人护城河的方法,就是找到自己最擅长的2个~3个事物的交集。比如,他既不是最好的漫画家,也不是最好的作家,也不是最好的企业家,但他可以是最好的商业类漫画短文作者,这就是他的护城河。

总之,你要发现对你来说容易而对他人却很难的事物,并在这些事物上变得出色,然后利用它来积累社会和金融资本。

2、《国家地理》杂志:石峁遗址之谜

几十年来,黄土高原北部石峁村的村民,一直认为村里尘土飞扬的山丘上,那些摇摇欲坠的石墙,不过是古代长城的一部分,并没有什么特别。

但是,2012年开始的系统挖掘,证实这里曾经有过一座皇城,距今约4000年,史书没有任何记载,是目前已知的中国史前文明最大的遗址,为中华文明的起源带来了许多未解之谜。

石峁遗址出土了大量玉器,做成圆盘、剑刃和节杖的形状。当地并不产玉,这些玉器要么来自贸易,要么来自战争的掠夺。如此大的数量,证明这个城池地位非凡。

最奇妙的东西就是4000年前遗留下来的宏伟城墙,总长将近10公里,城墙内有一个高达70米金字塔形建筑,大约是埃及大金字塔一半的高度。金字塔平台上方是庞大的宫殿建筑群,宫殿建筑内有壁画、玉器、彩绘,以及人类遗骸,表明这里进行过祭祀。

城墙上还发现了70幅令人惊叹的浮雕雕塑,形状是野兽的兽头。

碳14法判定这个遗址可以追溯到4300年前,跟埃及金字塔是同一时间,比长城最古老的遗迹要早2000年,比现在已知最早的中原文明遗址(夏朝遗址)要早500年。而且,它的位置在那些夏朝遗址以北几百公里,表明中原文明来自北方。

遗址的建筑规模如此庞大,仅仅城墙就需要125,000立方米的石材。这意味着,这个城市的人口很多,大概在10,000至20,000之间。

这个遗址的繁荣期是从大约公元前2300年到公元前1800年,将近500年。然后,它突然被神秘地废弃了,原因很可能是气候。公元前3000年,石峁遗址成立时,黄土高原还是相对温暖潮湿的气候。历史记录表明,从公元前2000年到公元前1700年,气候迅速转变为更加干燥和凉爽。湖泊干枯、森林消失、沙漠侵袭,迫使人们离开石峁南迁。

如今,石峁遗址静静地躺在鄂尔多斯沙漠的边缘,被灰尘、土石和寂静所笼罩。但是,这座世界上最古老的城市之一,正在被慢慢揭开面纱,将让我们对中华文明的起源有更多的了解,颠覆现在的许多观点。

言论

1、

如果你无法将产品的价格翻倍,那么你的产品就不占有市场优势。

-- 《创业公司的功夫》

2、

苹果公司在发布新的操作系统(iOS、iPadOS、watchOS )之前,都公开了测试版,但是等到正式版上市,并没有多少改进,依然有很多 Bug。

那么,公开测试版的意义何在?真的是为了提高正式版的质量吗?......无论最初的目的是什么,公共测试版现在都是一种营销工具,一种大肆宣传新版本、并让苹果爱好者购买与新版本一起发布的新产品的方式。

-- 《苹果软件的测试版》

3、

关系数据库有两个优势,一个是节省存储空间,另一个是可以跟踪复杂的数据关系。

但是,现在的存储设备很便宜,反而是 CPU 的处理时间更贵。所以,我建议客户,如果不需要处理复杂的数据关系,那就避免使用关系型数据库,而使用 NoSQL 数据库。

-- Hacker News 读者

4、

有一种说法,年龄在35岁以上的人,建立学术影响力的唯一机会是编写一本教科书。

-- Mark Seemann

5、

理性的人使自己适应世界,不理性的人不愿意妥协,坚持要求世界适应他的方式。因此,一切进步都取决于不理性的人。

-- 萧伯纳

6、

Zoom 之类的远程会议软件已经成为标准,疫情结束后,很多商务旅行永远不会回来了。

-- Hacker News 读者

回顾

2019年的本周(第 76 期):任何爱好都能变成职业,只要你会拍视频

2018年的本周(第 24 期):新人进入软件行业的建议

订阅

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

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

(完)

留言(49条)

真的是敬业啊,今天不是周五,但是明天就放假了,竟然提前发布了,佩服

先留言再看,阮大国庆快乐~~

"《国家地理》杂志:石峁遗址之谜" 這部份令人感到驚奇!

謝謝分享。

“人脸识别垃圾桶”,感觉很恐怖啊

你不觉得 少儿学编程,是为了提高他们的逻辑思维能力么?
学以致用的转变, 开拓他们的创造力么?

人脸识别垃圾桶
---
为啥不搞个垃圾自动识别开箱的?

对于少儿编程,我觉得意义不大,不如出去玩玩球来的实在

垃圾桶还是简单点好,低成本,方便收走垃圾

哈哈,劳拉的变化 - 想起了抖音上学了三年的动画

这期周刊有两段文字让我不得不思考:
1.未来人人开发软件,几乎没人编码。到时候,像我这种技术平平的程序员要怎么生存下去。在周刊的结尾处惊喜地找到了一个答案,发展"个人护城河"。
2.个人护城河。“你要发现对你来说容易而对他人却很难的事物,并在这些事物上变得出色,然后利用它来积累社会和金融资本”。

护城河的图是我大西安吧?

前排报道,每期必看

对于少儿编程,我认为是有意义的.
1.如果说将来不能直接用于工作的就不用学,那么大部分人的初中以后的语文,高中以后的数学,都没必要学了.
2.如果说将来会被简化就不学习原始的做法,那早就有计算器了,为什么还要背乘法口诀?电子录入普及率这么高,为什么还要练书法呢?
3.儿童学习编程不应该是以成年人完全为学习工具的态度学习.而应该以锻炼思维的态度学习.
4.虽然大多数人都能用Excel,但是其中大多数人都只是当个方格纸用的,对于公式也是简单的"=A1+A2+A3+A4"而不是=SUM(A1:A4),我希望自己的孩子将来即使只用的到Excel这样的工具,也希望他能会用更合适的函数.

石峁遗址那个,其实中国考古学界有一种说法是中华文明的起源是多源的。在远古时代,中国的东北、华北(今山东)、西北、长江中下游、西南地区等都有过文化迹象,这些共同构成了中华文明的起源。很期待石峁遗址给中华文明起源带来的新观点

人脸识别垃圾桶,感觉有点过头,丢个垃圾也要这么复杂的机器。还不如发明个垃圾自动分拣机来得更有价值些。

祝阮老师和大家国庆快乐!!!

对于未来编程的设想:人们只需要对AI说出自己想要的,就由AI来生成程序。这个观点的基于一种假设:AI在自然语言交流层面高出人类好几层楼,以至于人与人之间交流都没法百分百理解对方意思的情况在AI与人交流时完全不会出现。如果这个假设成立了,那么人与人之间的交流将没有任何障碍了,那将是一个大同的世界么?

垃圾桶都要人脸识别,为了科技而科技,佛了

现在“编程”这个概念太模糊了,HTML也是编程,matlab也是编程,shell脚本也能很复杂,数控机床编程、PLC编程(现在已经图形化了),这些所谓编程,不如叫做“基于低级人类语言交互的xxx工具”,就是一工具,点点划划就能解决问题,谁愿意去敲代码?幸好没有脚本版的Photoshop(matlab:我不算吗?)。

还想学编程?好吧,代码是一种语言,用来表达逻辑,数学作为历史悠久的语言,许多科学家用其来描述这个世界的运行规律,总结了许多公式,错了,许多算法,而且免费、没版权,不需要电脑,不需要键盘,所以,学数学吧!你家孩子今年数学考多少?

引用Zander的发言:

护城河的图是我大西安吧?

可能是西安某处景点的墙,但决不是西安的城墙,太矮了,太小了,也太新了。

引用Lang的发言:

人脸识别垃圾桶
---
为啥不搞个垃圾自动识别开箱的?

我也觉得,为什么不识别垃圾是干还是湿,然后自动分类

本期话题“编程”和上期“内卷化”,仿佛有某种关联,也许如今火热的程序员大军也会内卷,最终剩下的是“汇编”程序员。

劳拉最大的变化不是脸,哈哈哈

看了很多阮老师的文章,写得很好。

丟垃圾也要刷臉,太奇葩了XD

没用的知识增加了

一天多少ms?
答:5^5*4^4*3^3*2^2*1^1
六周多少s?
答:10!

网速的突破 人类的输入输出设备到最后应该只有一部便携设备了吧

扔个垃圾要什么人脸识别,看似事小,但实在是没见识,中国人不拿自己的隐私当回事,倒是合了zf的意

flex布局的游戏非常有意思,一共12关,玩通关了。几年前是看阮老师的教程学习flex布局的,如今又玩这个游戏,竟然有些许动容。

看了很多阮老师的文章,写得太好了

祝阮老师国庆节快乐,中秋节快乐,阖家团圆幸福美满

引用hansen的发言:

你不觉得 少儿学编程,是为了提高他们的逻辑思维能力么?
学以致用的转变,开拓他们的创造力么?

年纪这么小学编程不是好事,编程更多的是逻辑能力,相反,少儿编程我反而觉得会丢失孩子的想象力和创造力,容易固化思维方式.

前几天正好去了静安雕塑公园

引用Larry的发言:

劳拉最大的变化不是脸,哈哈哈

是的,老玩家都懂

财务人员,最近在学习python。虽然只看了一点点,但我觉得学习编程能够提供一种解决问题的思路(算法)吧。

语言只是工具

内容很赞。

但是,还是想说一句,以前不时来围观观看 阮老师的 更新的博文的时代过去了。

周刊很好看,但是毕竟属于“文摘”类; 而 阮老师个人性质的博文,比以前稍多了。

可能是加入了阿里,自己自主支配的时间,变少了吧。

可以理解,但是有些感叹。

引用Logic的发言:

我也觉得,为什么不识别垃圾是干还是湿,然后自动分类

我也觉得

个人认为,数学是唯一能锻炼逻辑思维的学科。让小孩学编程还不如去学音乐!

写的很棒!

每周都很棒

其实声波通讯的原型上世纪就有了。
那时的计算机把信息储存到磁带里面,从而通过音频线传输数据。

关系型和非关系型数据库的观点没法赞同,不仅要额外占空间,冗余的部分如何保持一致性,也是个大麻烦。还是要根据你的业务特性来选择数据持久化方案。

未来可能根本不是这么编程
这句话确实太对了
从后往前看容易
从前往后看难

引用胡农人的发言:

对于未来编程的设想:人们只需要对AI说出自己想要的,就由AI来生成程序。这个观点的基于一种假设:AI在自然语言交流层面高出人类好几层楼,以至于人与人之间交流都没法百分百理解对方意思的情况在AI与人交流时完全不会出现。如果这个假设成立了,那么人与人之间的交流将没有任何障碍了,那将是一个大同的世界么?

AI编程永不可能,因为产品AI和程序员AI会动用所有算力开展博弈。

超赞,在这里看到了好多我不知道的点

引用Logic的发言:

我也觉得,为什么不识别垃圾是干还是湿,然后自动分类

大概原因是在推广开来后方便罚款

看来 我距离当人还差了好大一步呢哈哈哈(指完全没接触过javascript就能一天编写出来一个js脚本)

看如何理解“编程”一词。可能写“code”的人会变少,但“programming”的人不会少,会出现no code开发岗位也说不定。也就是“使用一定逻辑开发软件”的人不会变少,软件开发的核心也不应该在code和对code debug上,能用逻辑实现需求才是重点。

就像之前预测的工业化会减少人们工作时间实际上工作时间更长了一样,新的技术会总留出更多需要新技术的岗位。从前的财务需要的仅是账本,现在的财务还养活了excel的开发者,使用excel后能做的事情变多,需求也比从前复杂了。总体来讲人们的投入没有变得更少反而更多了,换来的是工作的效率整体提高。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接