科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员
这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。
封面图
浙江普陀山客运中心最近获得2021年度凡尔赛建筑奖。(via)
本周话题:全能程序员 vs 特长程序员
我读过一些篮球报道,里面说 NBA 球队不喜欢“全能型球员”,更喜欢“特长型球员”。
所谓“特长型球员”,指的是其他方面可能都不行,但是某一方面特别突出,比如防守特别好、三分特别准,或者篮板很强等等。球队愿意签这样的球员,关键时刻派上场,没准就能立下奇功。
反过来,“全能型球员”各项技术都很均衡,防守、进攻、投篮都还可以,能达到平均水平,但是每个方面都不突出,没有明显的过人之处。球队看不上这样的球员,觉得让你上场,赢不了球。
我马上联想到, 软件行业其实也是如此,“全能程序员”的出路,明显不如“特长程序员”。
如果你什么都会干,前端、后端、数据库、服务器管理都能上手,那么哪里缺人手,就会让你顶上去。但是,一旦遇到疑难问题,又指望不了你,因为你不是那个方面的专家,解决不了。
反过来,你精通某一项技术,其他都不懂,公司反而会觉得你更有价值。因为你可以把这个技术做得很深,克服技术难点,超过竞争对手,所以你的晋升会快得多。
我甚至读到过这样一段话:
“绝大多数成熟的程序员都专攻某一个技术栈,因为这样更容易找到工作。 一些专家甚至认为,在不同的技术栈中工作是简历的污点。”
所以,大家写简历的时候,千万不要把自己懂的所有技术都写进去,那是简历的扣分项。而只写你掌握最深的那项技术,以及与之相关的工作经历。
同样的,新人如果想在软件行业长远发展,建议选择一两个技术方向进行专研,成为专家,而不要什么技术都懂一点,但是哪一项都不精通。
但是,这样也有风险,万一你选择的技术栈走下坡路(比如 PHP),甚至消失了(比如 Flash),你可能被迫要换技术栈,那就惨了。
最保险的做法,就是选择那些有大公司支持的技术。这就是为什么市场上有那么多 Java 专家和 .Net 专家的原因。
总之,“全能程序员”在这个行业是不受待见的,被视为“万金油”。如果你不幸属于这一类,那么除了抓紧时间开发特长以外,也不必过分灰心。我觉得,全能程序员也有自己的价值和优势,这个就放在下一次谈吧。
养老金咨询与规划
本周有一个理财活动的消息,关于养老金的规划和咨询。
程序员是年轻人群体,对于养老金,大家关心的不多。有些人还有错误的观念,觉得如果工作的年限足够长,公司就会承担你的养老金。
这种想法不对,养老金跟公司无关,是由社保承担的。我国现行的规定是,只要缴纳养老保险满15年,达到法定退休年龄后(目前是60岁,以后会上调到65岁),就可以从政府领取。所以,大家要关心公司有没有缴纳养老保险,这关系到你以后能不能领到养老金。
程序员这个职业,流动性非常大,换公司是家常便饭,而且这是一个年龄敏感的职业,很少有人能写代码一直到退休。所以,养老金对于程序员,相对来说有更大的保障意义。
下面是几个大家普遍比较关心的问题。
- 如果提早退休,或者离职后没有再找工作,社会保险怎么处理?
- 养老金的金额怎么计算?如何拿到更多的养老金?
- 自由职业的程序员,可以领取养老金吗?
- 除了国家的养老金,商业的养老保险是否值得考虑?
这些问题都可以在本次的养老金活动里面咨询。
这个活动来自一直跟我合作的孙明展老师。他从世界500强保险公司离职后,自己创业,开办了创必承公司,从事理财教育和财务咨询工作。大家搜一下“孙明展”这个公号,上面有多年来很多原创的理财科普文章。
这一次他们为了推广业务,考虑到周刊读者大多数是程序员,就办了这个《养老金的规划和咨询》活动,一共有200个免费名额。各种财务问题都可以咨询,专业的理财师会为大家提供养老金规划,以及家庭财务保障定制服务,保证不推销任何产品。
活动的主要内容如下:
- 养老金目标梳理;
- 家庭成员保障责任综合评估;
- 现有保险产品的性价比分析比较;
- 家庭风险属性评估;
- 基于家庭状况和需求的养老金规划和家庭保障规划构建。
微信扫码上面二维码,就可以报名。感兴趣的朋友,欢迎参加。
科技动态
从今年9月1日开始,.com 域名的注册费从 $7.85 上调到 $8.39,每年增加54美分。
全世界的域名由 ICANN (互联网名称与数字地址分配组织)管理,它把 .com 域名的管理权委托给 VeriSign 公司,再由 VeriSign 向域名零售商收取注册费,并将一部分收入转交给 ICANN。
由于 VeriSign 垄断了 .com 域名的注册权,并且还是一家上市公司,历史上域名注册费一直在上涨。可以预期,未来几年中 .com 域名的注册费还会上涨。
2、电子咖啡
很多人工作疲惫时,会喝一杯咖啡振奋精神。一家美国创业公司发明了一种电动剃须刀大小的设备,可以替代咖啡。
这种设备只要按在脖子上,打开开关,就会向人体释放低压电流,每次持续一毫秒,相当于一次电击。
它可以刺激迷走神经,促进体内肾上腺素的分泌,起到跟咖啡类似的作用。目前,价格是每个 1250美元。
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 投稿)
在 M1 架构的 Macbook 上运行 iOS app 时,这个开源工具可以让鼠标和键盘支持 iOS app。
3、Judo
一个 Mac 应用,用来设计 iOS app 的页面,不用编写代码,用可视化的方式制作页面原型,可以在手机上预览页面效果。
使用 Svelte 框架在网页上模拟 Mac OS Monterey 的 UI。
5、OneDev
一个开源的 Git 仓库托管软件,类似于 GitHub / GitLab,可以自己架设,特点是资源消耗小。
一个开源软件,用来移除图像和视频的背景。
7、js-ziju
一个自制的编译器,可以将 JS 代码输出为 LLVM IR 格式和 X86 Assembly 语言。(@wizardpisces 投稿)
8、zx
一个 JS 库,用来在 JS 脚本里面方便地调用 Bash 命令,很适合使用 JS 语法来写 Bash 脚本。
Excel 公式的 JS 版,目前有300多个公式。同时,这个库也提供数据操作功能,可以用作电子表格的后端。
资源
1、Go 语言入门课:零基础到实战
极客时间福利课程,零基础讲解 Go 的语法和用法,最后带读者手写一个计算器小程序。《Kubernetes 生产化之路》作者、Go 资深工程师李建强主讲。
下周一(9月6日)开始,三个晚上直播课,微信添加助理老师报名。
作者参照 Windows XP 著名的草地壁纸,为 MacOS 和 iOS 也创建了多张类似风格的壁纸,可以免费下载,挺好看的。
3、如何在 Linux 上玩任天堂 Switch 模拟器(英文)
这篇文章是详细的操作指南,介绍在 Linux 桌面电脑上面,怎样通过模拟器玩 Switch 游戏。
Minecraft 游戏出现过各种各样的石头和矿物(上图),这个网站列出游戏里的石头在真实世界的对应物(下图)。
AWS(亚马逊网络服务)现在包含50多种产品,官方的介绍有时很难懂,搞不清楚每种产品到底干什么。这个网页使用简单的英语,介绍每一种服务。
图片
1、键盘裤子
使用键盘,总是需要抬起手腕。一个荷兰学生 Eric De Nijs 就想,能否不抬起手腕就能使用键盘。他发现,最方便的方法就是把键盘放在大腿上面,只要坐下来就能使用。
于是,他发明了一种键盘裤子,键盘做在裤子上面,随时随地可以用。
2、河狸咬树干
河狸是中国一级保护动物,有着强壮的门牙,可以咬断树干,再将树干拖回家做巢。下面就是一段河狸咬树干的视频,看着非常纾压。
文摘
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、
我从互联网上得到的最好的经验之一,就是永远不要复制和粘贴不是自己编写的代码。如果你一定要复制,那就照着它逐字输入,逼着自己思考,这些代码实际上是什么意思。
2、
推行 996 工作制的心态,可以追溯到制造业时代。一家服装厂提高产量的最简单方法是什么?就是让你的工人加班。
不幸的是,这不适用于科技公司,程序员在一段代码上花费更多时间,并不意味着写出更好的代码。事实上,处理错误的最佳方法通常是休息一下,然后回来重新阅读代码,你会更容易发现错误。
-- Hacker News 读者,评论中国最高法院判定 996 工作制违法
3、
日本和韩国都有法律规定,手机拍照必须有快门声,无法关闭这个声音,目的是防止偷拍。
-- 知乎
4、
写一本技术书籍,报酬寥寥无几,很可能除了荣誉,你得不到任何东西。
-- 《自出版技术书籍》
5、
无所畏惧(fearless)不是没有恐惧;而是你依然心怀恐惧,但无论如何都决定要跳进去。
-- Taylor Swift
历史上的本周
2020年(第 123 期):互联网公司与湘军的军制
2019年(第 71 期):名校毕业,不容易创业
2018年(第 20 期):不读大学的替代方案
订阅
这个周刊每周五发布,同步更新在阮一峰的网络日志和微信公众号。
微信搜索“阮一峰的网络日志”或者扫描二维码,即可订阅。
(完)
科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员的更多相关文章
- 科技爱好者周刊(第 175 期):知识广度 vs 知识深度
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 科技爱好者周刊(第 176 期):中国法院承认 GPL 吗?
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期
原文:https://blog.gitee.com/2018/08/19/weekly-81/ 想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期 码云周刊 | 201 ...
- FCC 成都社区·技术周刊 第 14 期
[前端] 1. React Fiber 架构 React16 启用了全新的架构,叫做 Fiber,其最大的使命是解决大型 React 项目的性能问题,再顺手解决之前的一些痛点. 详情:https:// ...
- 支付平台程序,支付程序,网络pos程序,api接口程序,锋锐支付平台程序开发领导者!
支付平台程序,支付程序,网络pos程序,api接口程序,锋锐支付平台程序开发领导者! 锋锐支付平台程序(www.100freenet.com)隶属于盐城市沐良商贸有限公司(沈阳杰速网络科技有限公司旗下 ...
- 使用未付费的账号真机调试 iOS 程序,过几天后程序一打开就会闪退
使用未付费的苹果开发者账号真机调试 iOS 程序,过几天后程序一打开就会闪退. 解决办法: 删除 Provisioning Profile,重新配置一次. 终极解决办法:花钱购买苹果开发者账号. ...
- 解决Pyqt打包后运行报错:应用程序无法启动 因为程序的并行配置不正确
做了一个生成二维码的小程序:http://www.cnblogs.com/dcb3688/p/4241048.html 直接运行脚本没问题,用pyinstaller打包后再运行就直接报错了: 应用程序 ...
- C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
控制台程序(命令行程序)设置窗口宽度高度,如下代码: Console.WriteLine(Console.WindowHeight); Console.WriteLine(Console.Buffer ...
- C++ 一个程序获取另一个程序Edit控件的内容
//一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...
随机推荐
- HttpServletResponse工具类和HttpServletRequest工具类,前台参数接收方式和后台返回(JSON)数据格式
RequestUtils.java 操作类 package cn.utils; import org.apache.commons.lang3.StringUtils; import org.slf4 ...
- fmt的API介绍(版本: 7.0.1)
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist 本文翻译: https://fmt.dev/latest/api.html 水平有限,仅供参 ...
- 【LeetCode】112. 路径总和 Path Sum 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS 回溯 BFS 栈 日期 题目地址:https ...
- 【LeetCode】518. Coin Change 2 解题报告(Python)
[LeetCode]518. Coin Change 2 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目 ...
- 广告投放效果难判断?集成华为DTM为您轻松实现!
在进行广告投放时,你是否遇到这样的困扰: 花了一大笔预算去投放推广,不知道实际效果如何? 用户看到投放的广告,产生了哪些有价值的行为? 当前广告投放的渠道和类型等投放策略,是否需要调整? 此时我们就需 ...
- [opencv]findcoutours函数使用
轮廓是定义或限定形状或对象的边或线,是机器视觉中的常用的概念,多用于目标检测.识别等任务. 关于OpenCV轮廓操作,尤其是级别及如何使用轮廓级别进行筛选等问题,相关文章比较少,正好最近用到,因此将其 ...
- Android物联网应用程序开发(智慧城市)—— 用户注册界面开发
效果: 布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...
- C# .net 使用rabbitmq消息队列——EasyNetQ插件介绍
EasyNetQ 是一个简洁而适用的RabbitMQ .NET类库,本质上是一个在RabbitMQ.Client之上提供服务的组件集合.
- 基于GO语言实现的支持高并发订单号生成函数
1.固定24位长度订单号,毫秒+进程id+序号. 2.同一毫秒内只要不超过一万次并发,则订单号不会重复. github地址:https://github.com/w3liu/go-common/blo ...
- Linux密码文件介绍
1. 查看shadow文件内容```cat /etc/shadow```可以看到shadow文件内容,例如:```root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:148 ...