为什么北欧的顶级程序员数量远超中国?
说起北欧,很多人会想到寒冷的冬天,漫长的极夜,童话王国和圣诞老人,但是如果我罗列下诞生于北欧的计算机技术,恐怕你会惊掉下巴。

Linux:世界上最流行的开源操作系统,最早的内核由Linus Torvalds开发,芬兰人

MySQL:世界上最流行的开源数据库,主要的开发者是Monty,芬兰人

Chrome V8 :世界上最流行的JavaScript引擎,主要作者Lars Bak ,丹麦人

MineCrfat:世界上最流行的沙盒游戏,主要作者Markus Persson,瑞典人

cURL :世界上最流行的,支持各种网络协议的数据传输工具和库,被全球有100亿台设备使用,作者Daniel Stenberg,瑞典人。

SSH:世界上最流行的加密的网络传输协议,最早由Tatu Ylönen开发,瑞典人

QT : 流行的跨平台GUI框架,最早由Haavard Nord 由 Eirik Chambe-Eng开发,芬兰人

Unity: 世界流行的游戏引擎,由3个丹麦人发明
面向对象技术:Dahl 和 Nygaard 于上世纪60年代发明, 挪威人
这些技术哪怕在中国出现一个,绝对会吹上天。
更不用说北欧还诞生了Turbo Pascal(丹麦),即时通信软件Skype(瑞典+丹麦),在线流媒体平台Spotify(瑞典),浏览器Opera(挪威)......
要知道,北欧包括丹麦(587万人)、芬兰(554万人)、冰岛(37万人)、挪威(540万人)和瑞典(1042万),合计2760万人,还没有中国一个省人多。
北欧为什么能诞生这么多改变世界的计算机技术?
难不成是因为身处高纬度地区,长夜漫漫,总想着搞点儿发明创造?
这个问题我很好奇,搜索了一番,发现了这些可能的原因:
1. 教育优势
北欧的教育非常发达,拥有高质量的教育体系,许多人接受了高质量的教育,包括计算机科学和软件工程领域。
2018年,各国公共财政教育支出占GDP比例,按从高到低排名,前五名是挪威,丹麦,芬兰,冰岛,瑞典,北欧5国霸榜,遥遥领先。

尤其是挪威和丹麦,超过了7%, 其他三国也在5.5%以上。
不仅投入高,北欧的教育特别注重学生的自主学习和实践能力培养,同时也致力于为学生提供多元的学科背景和跨学科研究的机会。
例如瑞典,从小就注重提高公民科学素质,小学课程设置以培养兴趣为主,除语文、数学和自然等必修课外,还有家政课和手工课等培养动手能力的课程。
高中毕业后的学生一般先工作1-4年后再读大学,由于学生具有了一定的工作经验和社会经验,知道自己需要学习什么,对什么感兴趣,所以学习起来思路和灵感就会很多。
2. 重视IT技术
像Linux之父,MySQL之父,还有很多其他北欧大佬,都是十几岁就有了自己的电脑,开始玩游戏,玩不过瘾自己写游戏,从此走上编程之路。要知道这是在七十年代末,八十年代初,电脑还属于贵重物品,北欧发达的经济为孩子们提供了接触最前沿IT技术的机会。
对于一些不富裕家庭,政府会承担起责任,例如瑞典在1998年推出了“每个家庭至少一台电脑”的政策,对推动IT技术发展影响极为深远。
政府鼓励企业付费给员工买家用电脑,就能减免税费,员工不论职位高低,连清洁工都包含在内。
这个计划实施了3年,到2001年已经有85万个家庭购买了电脑,涵盖了瑞典将近25%的家庭。
Klarna(网络支付公司)的创始人西米亚特科夫斯基对此非常感慨,他说:像我们这样的低收入家庭,根本负担不起买电脑的开支,但是当政府一推出改革措施,我母亲第二天便买了一台电脑。
西米亚特科夫斯基在16岁起就可以在家中学习编程,20多年后,他的Klarna网络支付公司估值达到460亿美元。
瑞典还积极投资建设网络基础设施,1995 – 2005短短十年间,网络渗透率由5%暴涨到85%,手机渗透率由22%到超过100%(意思是平均每个人拥有超过一只以上的手机)。相比发明网络与手机的美国,在2005年的网络及手机渗透率却分别只有68%和69%。
网络的普及,成为信息科技创新企业的温床,这一点中国也应该深有体会,4G普及以后,中国移动互联网产业大爆发,一下子涌现出了大量的互联网公司,深入生活的方方面面。
3. 社会福利兜底
北欧五国是全世界著名的高税收高福利国家,丹麦72%的税收用于各种福利,挪威和瑞典社会福利支出占GDP的34%和38%,高支出建立了让人羡慕的福利体系,我这里不想再列举枯燥的数字了,总结来说就是:
不用担心生孩子,国家每月发钱,产假极长,亲子假机多。
不用担心上学,教育免费,还有补贴。
不用害怕生病,医疗完全免费或者费用极少。
不用害怕失业,失业补助非常可观。
在这样的环境中,人们不会那么焦虑,可以把更多的精力和时间投入到自己真正喜欢的领域,而没有后顾之忧。
新创业的太阳能公司 Trine 的创办人 Sam Manaberi 说:“良好的社会福利制度就像安全网,让我更能无后顾之忧地投入创业之中。(创业失败)最坏的情况就是我没有薪水,但是我的小孩还是能享有医疗及教育。”
Klarna的创始人西米亚特科夫斯基表示,自己的巨大成功可以归功于国家的福利制度。如果生意失败或者失业,也不用担心破产。
我时常会想,如果中国也能提供这样的福利,以中国的人口数量,会不会有大量的天才追随自己的兴趣,实现发明创造呢?
4. 鼓励创新的文化氛围
“创新者需要有独立的人格,而不是对权威惟命是从;他要有独立的思考能力和判断能力,而不是人云亦云;他要有平常心,而不是患得患失;他是一个安宁的、踏实的人,而不是心情浮躁,急于求成。”---易纲
北欧尤其是瑞典的教育从小学开始就是讲究和谐、平等,一切都任由天性和本能,从小就树立和培养出放松心态,让有创新能力的人基于个人兴趣,而不是带有功利思想,从容地进行发明创造。
瑞典上大学免费,基本想上就能上,但是瑞典青年上大学的比例在欧美国家并不算高,很多人更喜欢去职业学校学习自己喜欢的东西,
当然,这种心态也需要高水平的社会经济做支撑,需要和民族的文化积淀联系在一起,别的国家不一定有这样的土壤,更不能全盘照搬。
结语:我写公众号这几年,遇到过不少小天才,有的在六年级就开始读《计算机程序设计艺术》,谈起C++编译优化头头是道;有的在初三写虚拟机,手搓操作系统...... 考虑到中国庞大的人口基数,这样的孩子应该还有很多,如果在成长的过程中如果有良好的环境,未来的生活没有后顾之忧,一定会迸发出强大的创造力,可以像北欧的程序员那样开发出众多世界流行的软件。
如果他们长大后还像如今程序员那样,被繁重的工作、高昂的房价、被医疗、教育等问题压得喘不过气来,恐怕我们只能继续去羡慕别人了。
参考资料: http://www.malaysiaeconomy.net/id_232321/d32vaa4z1a11/2016-02-11/37059.html
可以点击下方图片,进一步了解北欧各位大佬的故事




相关文章:
为什么北欧的顶级程序员数量远超中国?
说起北欧,很多人会想到寒冷的冬天,漫长的极夜,童话王国和圣诞老人,但是如果我罗列下诞生于北欧的计算机技术,恐怕你会惊掉下巴。Linux:世界上最流行的开源操作系统,最早的内核由Linus Torvalds开…...
vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters
getters作用:派生状态数据mapGetters作用:映射getters中的数据使用:方法名自定义,系统自动注入参数:state,每一个方法中必须有return,其return的结果被该方法名所接收。在state中声明数据listst…...
20230311给Ubuntu18.04下的GTX1080M安装驱动
20230311给Ubuntu18.04下的GTX1080M安装驱动 2023/3/11 12:50 2. 安装GTX1080驱动 安装 Nvidia 驱动 367.27 sudo add-apt-repository ppa:graphics-drivers/ppa 第一次运行出现如下的警告: Fresh drivers from upstream, currently shipping Nvidia. ## Curren…...
2023腾讯面试真题:
【腾讯】面试真题: 1、Kafka 是什么?主要应用场景有哪些? Kafka 是一个分布式流式处理平台。这到底是什么意思呢? 流平台具有三个关键功能: 消息队列:发布和订阅消息流,这个功能类似于消息…...
23种设计模式-建造者模式(Android应用场景介绍)
什么是建造者模式 建造者模式是一种创建型设计模式,它允许您使用相同的创建过程来生成不同类型和表示的对象。在本文中,我们将深入探讨建造者模式的Java实现,并通过一个例子来解释其工作原理。我们还将探讨如何在Android应用程序中使用建造者…...
English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四
English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四💌发音小贴士:💌当日目标音发音规则/技巧:🍭 Part 1【热身练习】🍭 Part2【练习内容】🍭【练习感受】🍓元音 [ʊə…...
【动态规划】多重背包问题,分组背包问题
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
JAVA面向对象特征之——封装
4.封装 private关键字 是一个权限修饰符 可以修饰成员(成员变量和成员方法) 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问 针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作 提供 “get变量名()…...
【数据结构】二叉树相关OJ题
文章目录一、单值二叉树二、检查两颗树是否相同三、判断一棵树是否为另一颗树的子树四、对称二叉树五、二叉树的前序遍历六、二叉树中序遍历七、二叉树的后序遍历八、二叉树的构建及遍历一、单值二叉树 单值二叉树 题目描述 如果二叉树每个节点都具有相同的值,那…...
Windows安装Hadoop
当初搭建Hadoop、Hive、HBase、Flink等这些没有截图写文,今为分享特重装。下载Hadoop下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/以管理员身份运行cmd切换到所在目录执行start winrar x -y hadoop-3.3.4.tar.gz,解压。配置…...
ICG-Hydrazide,吲哚菁绿-酰肼,ICG-HZ结构式,溶于二氯甲烷等部分有机溶剂,
ICG-Hydrazide,吲哚菁绿-酰肼 中文名称:吲哚菁绿-酰肼 英文名称:ICG-Hydrazide 英文别名:ICG-HZ 性状:粉末或固体 溶剂:溶于二氯甲烷等部分有机溶剂 稳定性:-20℃密封保存、置阴凉干燥处、防潮 分子…...
【论文阅读】浏览器扩展危害-Helping or Hindering? How Browser Extensions Undermine Security
本文来源于ACM CCS 2022; https://dl.acm.org/doi/10.1145/3548606.3560685 摘要 “浏览器扩展”是轻量级的浏览器附加组件,使用各个浏览器特定的功能丰富的JavaScript api,为用户提供了额外的Web客户端功能,如改进网站外观和与…...
线性和非线性最小二乘问题的常见解法总结
线性和非线性最小二乘问题的各种解法 先看这篇博客,非常好:线性和非线性最小二乘问题的各种解法 1. 线性最小二乘问题有最优解 但是面对大型稀疏矩阵的时候使用迭代法效率更好。 迭代法 有Jacobi迭代法、 Seidel迭代法及Sor法 【数值分析】Jacobi、Se…...
数据库知识点
数据库是指按照一定规则存储、组织和管理数据的系统。在现代化的信息化社会中,数据库已经成为了各种应用系统中不可或缺的一部分。因此,对于数据库的知识掌握不仅是计算机专业人员必备的技能,也是各个行业从业者必须具备的基本素质之一。 数…...
Maven打包构建Docker镜像并推送到仓库
Maven打包构建Docker镜像并推送到仓库 文章目录Maven打包构建Docker镜像并推送到仓库一,服务器Docker配置二,本地项目maven配置2.1 pom.xml2.2 dockerfile2.3 验证2.4 统一dockerfile对于开发完成的服务要发布至服务器Docker时,我刚学习了解D…...
TypeScript 基础学习之泛型和 extends 关键字
越来越多的团队开始使用 TS 写工程项目, TS 的优缺点也不在此赘述,相信大家都听的很多了。平时对 TS 说了解,仔细思考了解的也不深,借机重新看了 TS 文档,边学习边分享,提升对 TS 的认知的同时,…...
《数据分析-JiMuReport04》JiMuReport报表设计入门介绍-页面优化
报表设计 2 页面优化 如上图所示的报表,仅仅是展示数据,不过这样看起来似乎太草率了,所以再优化一下吧 保存报表后,在积木报表中就可以看到对应的报表文件 此时我们如果还需要编辑报表,就点击这个报表即可 2.1 居中…...
带头双向循环链表及链表总结
1、链表种类大全 1、链表严格来说可能用2*2*28种结构,从是否带头,是否循环,是否双向三个角度区分。 2、无头单向循环链表一般不会在实际运用中直接存储数据,而会作为某些更复杂结构的一个子结构,毕竟它只在头插、头删…...
(八十)MySQL是如何基于各种规则去优化执行计划的?(中)
今天我们来讲一下子查询是如何执行的,以及他的执行计划是如何优化的。比如说类似于下面的SQL语句: select * from t1 where x1 (select x1 from t2 where idxxx) 这就是一个典型的子查询 也就是说上面的SQL语句在执行的时候,其实会被拆分为…...
第一章:命题与命题公式
1.命题与命题联结词 1.命题与命题的表示 1. 命题 由一个或几个已知的前提,推导出来一个未知的结论的思维过程称为推理,推理的基本要素就是表达这些前提的一些陈述句,可以将这些陈述句理解为命题。 (1)地球是行星 (2)8不是素数 (3)1 + 2 = 22. 命题真值 一个陈述句不…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
