这里记录过去一周,我看到的值得分享的东西,每周五发布。
(题图:浦东滨江,上海,2018。)
Hacker News 上面,有人问:"新人进入软件行业,应该学什么?"
很多热心人提供建议。有人说:
"你应该好好学习一门语言。精通一门计算机语言,可以让年轻工程师脱颖而出。这不仅对日常工作很有帮助,也有利于以后学习其他语言。学习的东西包括:设计模式、调试、性能、生态系统、标准库等等。"
立刻有人提出相反的建议。
"我建议学习几种彼此非常不同的语言。例如 Java,Go 和 JavaScript。你要学到精通其中每一种语言,能够独立地从头搭建一个新项目,在该语言的生态系统中完成所有开发工作。"
有人举出几种必须掌握的工具。
学习 SQL,你将能够使用任何与数据库相关的软件。
学习 HTML,你将能够创建一个通用的用户界面。
学习 GIT,你将能够与他人分享您的工作。
学习 Unix shell,你将能够部署所有的东西。
不少人赞同这种说法。
"大多数职业(从医生到电工),多年的经验等同于多年的专业知识。但是在软件开发中,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变得毫无价值,因为它们大部分都是实施的细节。最终,所有这些年,你确实积累了一些一般性的经验,但与具体实施相关的知识,你都不再掌握了。
唯一留下的是那些基本的东西,你应该专注于软件开发的核心知识和数学知识,您的这些技能会不断增长,而不是随着技术潮流的变化而消失。"
我最喜欢的是下面这个建议。
"不要让自己太忙碌。不过,说起来容易做起来难。
我们雇用新毕业的工程师时,会派给他们很多琐碎的工作,使他们饱和。他们会逐渐忘记大学里学到的课程,全部注意力都集中在手头的工作。很多人倾向于通过忙碌程度来评价自己,我相信这是一个死亡陷阱。"
新闻
1、3D 金属打印
以前的 3D 打印,一般都使用塑料。今年,3D 金属打印机问世了,可以用金属打印零件,生成更轻、更坚固、更复杂的形状,而且成本更低、速度更快。这为复杂的金属模具和金属部件的生产带来了前所未有的便利。以后再不担心老机器的零件停产了,只要把老零件扫描一下,原样打印可以了。
目前,3D 金属打印机的价格不到10万美元。
2、人工胚胎
英国剑桥大学的胚胎学家,只使用干细胞就培育出了一个小鼠胚胎。这里的神奇之处在于,这个胚胎没有使用卵子,也没有使用精子,只是一个普通细胞培育出来的。这意味着,只要一个普通的细胞就能创造出生命。
3、传感器城市
多伦多正在开展一个智能城市项目,在城市中安装各种类型的传感器,收集空气质量、噪声、人们活动的所有数据。所有数据将开放出来,允许第三方公司在上面开发服务。
以后的城市不仅将布满摄像探头,而且布满传感器。
4、植物人评估
植物人能不能醒来?中国科学院和中国人民解放军总医院开发了一个人工智能系统,评估病人醒来的机会,据说准确率达到90%。
一名19岁的植物人,昏迷六个月,七个神经科医生评估以后,给出了23分中的7分,这意味着他的家人可以合法拔管。但是这个系统评估脑部扫描结果后,给出了23分中的20分。结果,该青年在12个月内醒来。
5、电动滑板车
越来越多的人使用电动滑板或电动滑板车,受伤的案例不断增加。鼻子、手腕和肩膀骨折、面部裂伤是常见情况,最糟糕时,摔到头部,会导致大脑永久性受损。加州的一家医院在7月的最后两周,治疗了18名在电动滑板车事故中受重伤的病人。旧金山的一家大医院的急诊室医生说,他每周看到多达10起重伤。
加州正准备立法,要求使用电动滑板车之前,用户必须接受安全培训,而且在使用时,必须戴头盔。
6、动物的对称性
动物几乎都是对称的,左边的四肢与右边一样,这是怎么产生的?
澳大利亚莫纳什大学的生物学家,开展了一项试验。他们在小鼠胚胎的左后腿,注射了一种限制腿部生长的细胞,使得一条腿生长得比另一条腿慢。结果发现,那条长得慢的腿会发出信号,通知其余组织( 包括另一条后腿),以减缓它们的生长。直到受阻的肢体赶上正常生长的腿,才会重新恢复均匀的生长。
美国的气象频道采用 3D 模拟视频,播放天气预报。
主持人在绿幕前录制天气预报,后面的背景用游戏引擎 Unreal Engine 4 生成。电视台将风速、方向、降雨量和无数气象数据输入系统,生成 3D渲染图,以提供准确的可视化效果。看完视频,我觉得以后电视剧也可以这样拍。
美国一个45岁的女自行车手 Denise Mueller-Korenek,骑出了每小时295公里(183.932英里/小时)的世界记录,成为世界上骑得最快的人。
她必须躲在拖车牵引的整流罩里面,防止这种速度产生的巨大风阻。而且,前1.5公里是拖车拉动前进的,以便产生150公里/小时左右的初速度。
9、一句话新闻
- 加州宣布,2045年淘汰所有化石能源,电力来源都不含碳。
- 特斯拉宣布,今年年底,电池的成本有望降到100美元/千瓦时。目前,顶配的特斯拉汽车是100千万时的电池,这意味着,电动汽车的成本有望显著降低。
- 中国在物理、工程、数学方面发表的论文数量,已经成为了世界第一。有研究称,中国学者参与的论文占到全球论文的三分之一。不过在质量上(引用次数)还是不行,落后美国较多。
数据分析师课程
本期《每周分享》很高兴得到了优达学城(Udacity)的支持。优达学城是国际著名的在线教育平台,中国区对课程进行汉化,并提供中文服务。
今天给大家推荐的,就是他们的《数据分析师》系列课程。数据科学家是现在最热门的领域,人才缺口极大,就业行情非常好。这个系列课程分成《数据分析(入门)》和《数据分析(进阶)》两个级别。
你可能不确定它们是否适合自己,优达学城为此提供了299元的"七天试学班"。你可以在七天里面,体验所有服务,并且在助教指导下,自己动手完成第一个项目。到期后,如果想继续学,再缴纳其余的学费。下面是前几期课程的学员评价摘录。
扫码下面海报里面的二维码,就可获取详细的课程大纲,或者咨询课程,进行选课自测。
教程
1、 <input>
元素的三个属性(英文)
HTML 网页的 <input>
元素有几十个属性,本文介绍其中三个开发者比较不熟悉的属性。
2、Cloudflare worker 的一个使用实例(英文)
这篇文章很容易懂,解释怎么使用 serverless 服务,修改 HTTP 回应。这个服务看起来很好用,缺点好像是只有使用 Cloudflare CDN 的网站才能用。
3、为什么技术有利于暴政?(英文)
《人类简史》的作者尤瓦尔·赫拉利的最新文章。他提出,人工智能有利于政府,可以将权力集中在少数精英手里。唯一可能的解决方法,是寻找分布式的技术方案,防止资源的集中。
4、命令行脚本的运行原理(英文)
脚本的第一行为什么以 #!
开头?Shell 内部又是如何处理脚本的?
5、Presentation API(英文)
Chrome 66 支持 Presentation API,这个 API 允许浏览器定制投射到第二块屏幕的内容,使用脚本进行控制。
5、跨站点请求的七种情况(英文)
网页可以向第三方站点发出请求,这是 CSRF 攻击的主要原因。这篇文章总结了可能发出第三方请求的七种情况。
6、网络协议入门(英文)
本文从协议设计的顶层角度,总体上解释互联网协议的设计思想。
7、为什么 GraphQL 可以取代 Redux?(英文)
本文解释了 Redux 想要解决的问题,而 GraphQL 可以解决同样的问题。但是,该文没有给出细节。
8、DNS over TLS 的 Node 客户端(英文)
为了提高安全性,防止监听,DNS 查询已经可以在 HTTPS 协议上完成。这篇文章教你怎么写一个 Node 客户端,获取 DNS 信息。
9、戴维·霍夫曼的人生(英文)
本文介绍著名的压缩算法霍夫曼编码的发明人戴维·霍夫曼的故事。
10、V8 引擎十周年回顾(英文)
本文是 V8 官方团队写的历史回顾,介绍 V8 每一年在技术上的突破。
资源
1、SQL 开源教程(英文)
这是一本互动书籍,免费,帮助读者了解如何使用 SQL 对数据集运行查询。
2、谷歌数据集搜索
大数据研究需要数据集,谷歌推出数据集搜索,根据关键词找出相关的数据集。
3、谷歌放弃的产品
谷歌推出了很多产品,许多后来都放弃了。这个网页列出所有被谷歌放弃的产品,目前有70个。
4、东京防灾手册
遇到灾难(地震、洪水、大雪等等)怎么办?东京市政府编写的免费电子书,这里是简体中文版的下载。
5、代码行数的可视化
本文给出一个可视化展示,比较不同软件的代码行数。
工具
1、nodebook
一般情况下,Node REPL 环境只能在命令行使用。这个工具起了一个服务,让你在浏览器里就能使用 REPL 环境。
2、Kitty
一个使用 GPU 进行渲染的终端模拟器。理论上,视觉效果将非常顺滑,尤其是长文本滚动和窗口切换。
3、mdwiki
一个前端脚本,将 Markdown 文件自动转成静态网站。
4、PixelPin
谁说密码一定是字符?这个网站的密码是图片。图片密码有两种用法,一种用法是上传某张图片作为密码,另一种是给定一张图片,你在上面点击几个只有自己知道的位置。
React 应用的原型设计工具。
一个架设在本地的网络书签管理系统,会自动抓取书签内容,并生成标签和摘要,使用 django 框架开发。
7、xsv
一个快速、强大的 CSV 文件的命令行处理工具,使用 Rust 语言开发。
8、Hacklily
一个在线编写五线谱的工具,可以实时听到编写的旋律。
Mac 的屏保程序,会显示一段文学作品的段落,里面包含了当前时间。
文摘
有些城市位于山地,平面地图无法显示道路的坡度。
设计师希望,地图能够显示道路的倾斜方向和倾斜程度,最初的想法是加上方向箭头。
箭头太不直观,于是改成三角形。
三角形的含义还是不清晰,考虑改成3D。不同的颜色表示不同的坡度。
下面是最后的成品。
2、蟑螂工厂
山东省济南市章丘区,一家食品垃圾回收厂接收了当地餐馆和食堂送来的大量剩饭剩菜,然后使用蟑螂进行无害化处理。剩饭剩菜通过管道注入玻璃容器中,被数百万只蟑螂吞噬。
对于大多数人来说,蟑螂是传播病毒和污染食物的害虫。但是,济南的技术人员李延荣花了数年时间研究蟑螂后,成功地将它们变成了食品回收工具。
在回收工厂,蟑螂每天食用15吨食物垃圾,占章丘餐厅和食堂产生的食物垃圾的三分之一以上。以前,大部分食物垃圾都会填埋,导致出现环境问题。现在,蟑螂可以分解废物,留下很少的残留物。蟑螂死后,它们的身体具有高蛋白质和氮化合物,将被制成蟑螂粉,用作动物饲料的蛋白质来源。
回收工厂同时也是蟑螂养殖基地。养殖人员表示,由于蟑螂的恢复能力和快速繁殖能力,蟑螂的数量呈指数级增长。2014年,工厂只有400公斤的蟑螂。 2015年,这一数字飙升至4吨,而今年预计将在这里生产超过3,000吨的蟑螂。
2008年,李延荣开始研究蟑螂。他读到,昆虫(包括蟑螂)是高蛋白质的营养食品的来源。曾经在济南一家回收公司工作的李延荣很快就有了养蟑螂的想法。他发现山东已有几家蟑螂养殖场为医药公司提供原料,但是成本高昂,因为他们使用谷物喂食蟑螂,每吨蟑螂的繁殖成本可达1万元人民币(1,527美元)。然而,零售价有时只有几十元一公斤。
章丘环境卫生中心主任安峰告诉李延荣,处理食物垃圾非常困难。垃圾填埋后,食物垃圾会污染地下水,给居民带来健康问题。李延荣很自然想到,那么为什么不用食物垃圾喂蟑螂呢?
为了测试蟑螂的饮食习惯,李延荣开始给蟑螂喂食各种食物 -- 辛辣的,酸的,甚至腐烂的。事实证明,蟑螂根本没有味觉或气味。它们还具有强大的免疫系统,可以消化几乎任何东西。他还对蟑螂粉进行了测试,发现用蟑螂粉喂养的鸡不仅更健康,而且比正常鸡更强壮,更快。鸡蛋也有较厚的壳。
在他研究蟑螂的三年中,李申请了30多项专利,其中两项获得批准。 2014年,他找到了安峰,并询问环境卫生中心是否可以免费为他提供食品垃圾。政府很高兴这样做,因为它是垃圾填埋场的更好替代品。2015年底,李延荣辞去了工作,开办了自己的公司,全身心地投入到蟑螂和回收工厂。
本周图片
1985年个人 PC 刚刚诞生,那时报纸上的饼图都是手绘的。
2、编程小知识
如果变量是一个布尔值,变量名最好加上 is、has 或 can 作为前缀(见下图)。
丹麦第二大城市奥胡斯,在海港里建设了一个浮动的海水浴场。
游泳池长50米,还设有儿童游泳池和跳水池,以及日光浴甲板,供人们享受阳光。整个设施一共可以容纳650人。
本周金句
1、
作为一个决策者,你的职责不是做出很多决定,而是只需做出几个高质量的决定。
如果我每天做出三个不错的决定,就很满意了。巴菲特说,他的一年就是做对三个投资决定。
-- 贝佐斯,亚马逊公司创始人
2、
各大网站对用户的监控无所不在,为了提供服务,它们必须这么做。事实上,如果不提供那些基于用户数据分析的功能,你还会觉得它们的功能不够好。
这注定了隐私已经不复存在。唯一的应对方法就是双向透明,网站可以监控用户行为,那么用户也必须能够监督网站,知道网站怎么使用用户数据。
-- Tim O'Reilly 《未来地图》
欢迎订阅
这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。
微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。
(完)