「学不完的技术,跟不动的技术潮流」,过去一年,随着数字化、智能化趋势的来临,无论是传统的工具、开发者的习惯,还是进入”快速路“的自动驾驶、国产操作系统、芯片、数据库的技术领域,都发生了巨大的变化,这也导致无数从业者发出上述的感叹。
从工具层来看,「C 生万物,编程之本」之说在编程语言界根深蒂固,这也引来 Vely、Hare 等新鲜血液的不断涌入;在技术维度,全行业纷纷拥抱数字化、智能化,开源软件在数字化基础设施中愈发重要,也将智能、云原生等技术再次推向风口;基础软硬件层面,继 BAT、华为之后,字节跳动确认造芯,「只为己用,以备不时之需」;百花齐放百家争鸣,数据库云上战争已打响;「根社区」一词席卷操作系统领域,不依赖上游发行版,基于 Linux 内核和其他开源组件构建属于自己的根社区。
为全面和深入地了解中国开发者群体整体现状、应用开发技术以及开发工具、平台的状况和发展趋势,CSDN 重磅发布《2021-2022中国开发者调查报告》(https://csdn.gitcode.host/Survey-Report-on-Developers-in-China/survey/),调研万名开发者,围绕开源开发者画像、开源、云原生、数据库、芯片、操作系统六大维度,也希望为各相关行业了解中国开发者群体以及软硬件开发服务领域市场提供重要参考资料。
由于篇幅,也建议大家先下载保存收藏。
重要发现
根据调查报告,我们有以下主要发现:
- 30 岁以下开发者人数下降,全国 40% 的开发者分布在一线城市
- 后端开发比例最高,开发者薪资超过 8000 元占比 86%,月薪 8 千至 1.7 万区间的男女开发者比例基本持平
- 54.6% 的开发者三年内至少跳过一次槽,33.8% 的开发者希望一直在技术岗上工作到退休
- Java 的使用者逐年减少,现已不足一半,Python 上升至第三名
- 云原生概念涉猎甚广,70% 的开发者完全不懂或仅了解部分概念
- 云数据库与开源已成为趋势
- 操作系统的边界向多层次扩展,开发者更关注兼容性和体验
- 中国“芯”正在强势崛起,人才紧缺的问题成为“老大难”
- 超过九成的开发者在使用开源软件,四成的开发者参与过开源
程序员真实画像:多数依然奋战在一线城市,月薪 8K-17K 占比最高
在众多行业中,IT 行业似乎尤为独特,年轻化、发展快、技术含量高等形成鲜明特点。
据调查报告显示,30 岁以下的开发者人数占比 78%,男性居多。不过这一数值相较 2019 年的 82% 和 2020 年的 81%,今年有所下降,反观 30-40 岁从业者整体数量有所上升。
随着年龄的增长,不少开发者选择了晋升。2020 年,40 岁以上的开发者担任技术经理的占比为 11%,2021 年该数据达到了 21%。
因此,当问及程序员在开发岗上工作几年之后是否想要成为一名管理者时,有超过五成的开发者表示想要成为一名管理者。还有 33.8% 的受访者表示,想要在技术岗上做到退休。
程序员薪资越来越高, 8001-17000 元之间比例最高
一直以来,程序员在众人眼中都是一个高薪职位。据调查显示,近三年间,开发者的薪资呈现出逐年增长的趋势。在过去一年,有超过六成的开发者表示工资有所上涨,涨幅在 11% 以上的占到了 21%。但同时,也有 34% 的开发者表示,工资没有发生变化。
当前近五成开发者的薪资在 8001-17000 元之间。其次,月收入 17001-30000 元的开发者比例达到 20.5%。
影响薪资的要素
薪资虽说与自身能力有着极大的关系,但也与所处的城市、学历背景、行业密不可分。
地理位置
在地域分布上,全国超过 40% 的开发者工作在一线城市。其中,北京、广东的开发者人数占全国总数 28.1%。今年,北京以 14.2% 的占比拿下第一,略超广东。紧随北京、广东之后的是上海和江苏,占全国总数的 16.1%。
毋庸置疑,一线城市的薪资水平远远超过其他新一线或二三线城市。根据数据显示,北京月薪高于 1.7 万元的开发者占比近三成,广东和上海占比趋同,分别为 18% 和 17%。
月薪高于 1.7 万开发者数量 Top 10 的各地区中,北京和上海近半数的人薪资在 1.7 万以上。而其它地区仅占两成左右。
学历背景
在不同的教育背景下,薪资也有所出入。从数据来看,学历越高,高收入群体占比相对比较高,其中硕士研究生薪资达到 1.7 万元以上的占比最高,为 55%。
经验积累
开发者的工资随着工龄增加而增长,工作 11-15 年的开发者中,薪资在 1.7 万元以上的占比超过 60%, 而工作 1 年以内的开发者中,薪资超过1.7万的占比仅 9%。
所处行业
众人都说程序员薪资高,但更高的是在金融界的程序员。据调查显示,金融行业,91% 的人群月薪超过了 8000 元。
程序员工作现状:平均每天写 200 行代码,与「内卷」作斗争
对于程序员的日常,很多外行人持以好奇之心,是否真的有那么忙,每天都要熬夜写那么多的代码,导致没时间洗头与收拾自己?
据调查显示,仅不足 10% 的开发者,每天有超过 70% 以上的时间在写代码,大部分开发者每天仅有 30%-40% 的时间写代码,平均每天写代码行数在 200 行左右。那要问时间都去哪了?也许可以从会议、对流程和产品经理的“灵感碰撞”中找寻到程序员的身影。
此外,随着新生代的崛起以及各个企业文化的不断发展,「反内卷」成为一股潮流,合适的工作环境也让程序员的黏性更高。
据调查数据显示,28% 的开发者并没有跳槽经历,三年及以上跳槽一次的开发者占比 35%。
有超过三成的开发者每周只需要工作 40 小时。工作时间越长,开发者的不满意度越高。每周工作 40 小时(标准工时)的不满意度最低。
针对不少人深恶痛绝的「大小周」问题,有 41% 的开发者宁愿要轻松,也不要这种模式。
在这种趋势下,字节跳动、腾讯、快手、小鹏汽车等多家互联网企业纷纷宣布取消“大小周”工作制,还给员工一个“难得的休闲时光”。
Java 占比持续走低,Vue 使用率占比第一
在开发者赖以生存的工具层面,使用 Java 的人数正在逐年降低,与去年 50% 的用户量相比,今年 Java 开发者人数下降至 40%。同比 TIOBE 编程语言排行中,Java 的流行度也在逐年下降。随着人工智能的发展,Python 的优势逐渐凸显,其使用量也在迅速提升,工作中常用 Python 的开发者占比 30.7%。
相较之下,古老的汇编语言是开发者最讨厌的语言,占比 37%,其次是 C++、C。
对于后两种语言的上榜,以及其在常用语言榜单中占比的减少,字节跳动大前端技术中台部门 ToB 项目技术负责人石延龙分析道,「或与不在 Top10 列表里的 Rust 有关系。2021 年 4 月,Linux 内核支持 Rust 的邮件,让我们再次关注这个高性能、高可靠性的语言,它没有运行时和垃圾处理器,速度惊人且内存处理效率极高,它有丰富的类型系统和所有权模型,保证了内存安全和线程安全。在国外,Rust 在语言排行榜占比 6.4%,之后便是占比 5.97% 的 Dart。根据 Statista 网站统计,2021 年 Flutter 超越 React Native 成为最受欢迎的跨平台解决方案,也因此推动了 Dart 语言的广泛使用。这些都不是新语言,却不断在应用领域创新,值得我们时刻关注、保持学习。」
在框架层面,随着 Vue 3.0 的普及,使用 Vue.js 进行 Web 开发的方式越来越受欢迎,从去年不到 30% 的占比,到今年的 38.6%,有较大幅度地提升。
开源工具正在吞噬开发者,有 37.9% 的开发者使用 Node.js。相较去年 8.3% 和 7.7% 的数据,机器学习框架 TensorFlow 与 PyTorch 的使用占比均在缓慢上升。
Visual Studio Code 作为轻量级、跨平台的编辑器,有 39% 的开发者在日常的工作中使用,排名第一。
云原生覆盖领域众多,开发者想用却困难重重
过去一年间,数字化转型成为各行各业的必经之路,而想要实现数字化,作为底层技术之一,云原生是强有力的驱动引擎。
不过,对于新兴的“云原生”技术,仅有 7% 的开发者能深度理解且深入应用云原生的技术。70% 的开发者表示完全不懂或仅了解一些概念。
「国内的云原生技术普及工作仍任重道远,熟悉云原生的专业人才仍然短缺。因此,对于企业来讲,加速招聘或培养云原生人才,是能否实现其业务云原生化和敏捷化的关键点。对于技术人员而言,加速学习和掌握云原生相关技术会让自己在行业中的价值更加凸显。同时,这样的技术稀缺性也给相关的云原生技术和产品供应商提供更大的需求空间」,火山引擎副总经理张鑫建议道。
之所以选用云原生技术,43% 的开发者表示,云原生能够提高开发效率。除此之外,提升业务的敏捷度也是吸引开发者的重要原因。
基于工具维度,Kubernetes 是最热门的容器集群管理工具,有 48% 的开发者正在使用。
在国内主流容器云平台的使用上,阿里云占领先地位,有 52% 的受访者在使用阿里云。也有 12% 的开发者表示,他们自建容器云平台。
不过,云原生涉及领域众多,其中以微服务架构为最多,40%的开发者专注于微服务架构领域。在开发时,不少开发者也遇到了高延时增加、故障增加等多重挑战。
张鑫表示,当前“非功能性”的挑战占据了主流,如性能问题、故障问题、并发和吞吐量问题等。云原生理论上是提升系统性能和并发性的,而实际落地中出现的这些非功能问题意味着任何技术都不是银弹,它们的成功落地需要严谨的调优、正确的最佳实践以及契合不同场景的使用姿势。当然,功能性不足也持续存在,如本地存储扩容和GPU监控等。
借此,我们也看到云原生从业者和技术同行们在持续努力,通过更多的功能开发和最佳实践,让云原生技术的潜能更容易地展现在企业的业务端。
云数据库正在蚕食传统数据库的市场
作为基础软件的三驾马车之一,国产数据库近年来的发展有目共睹。31% 的开发者表示国产数据库发展迅速。也有 76% 的开发者表示,非常看好数据库创业。
不过,在数据库研发过程中,17% 的开发者认为数据结构最难,其次为生态构建。
当前国内开发者最常用的数据库还是开源的 MySQL,占比超 7 成。国产数据库占比 5%。
不过,在云时代和开源趋势下,云数据库迅速崛起,而这也成为国产数据库弯道超车的一个重要方向。如今有 47% 的公司已经部署使用云数据库,18% 的公司正在计划使用。
然而虽然很多数据库厂商投身于云数据库的构建之中,但是有 86% 开发者对数据库上云过程中的数据安全存在极大担忧。
腾讯数据库首席架构师李海翔点评道,作为基础软件,数据库各个层面都要坚如磐石,且易于低成本使用,才能让用户放心地把数据这一核心要素交付给数据库处理。对于用户的需求,目前技术解决方案比较稳定也比较陈旧,随着云时代的到来,数据库层面也许会衍生出更好的解决方式。作为数据库内核的研发人员,我们能够看到,数据库技术正面临变革,前期稳定固化的技术,正在新挑战下发生新变化。用户需求正是技术变革的推动力。
操作系统边界不断被拓宽
随着物联网、自动驾驶、工业互联网的崛起,操作系统不再局限于我们最为常用的桌面、移动端。随着更多领域在操作系统层面的布局,开发者对操作系统的关注也有所上升。43% 的开发者表示国产操作系统正在迅速崛起。
不过,针对在开源浪潮下,不少国产操作系统基于 Linux 等二次定制开发的做法,在开发者之间有较大的歧义,59% 的开发者认为,只需要掌握核心源代码、安全可控的操作系统就是国产操作系统,而另一部分开发者却表示要从内核研发开始。
在开发者对国产操作系统的熟知度中,主要维度还是聚焦在移动和桌面端,HarmonyOS 遥遥领先,近 92% 的受访者表示对其熟悉。
从开发维度上来看,65% 的开发者认为内核是操作系统研发的最难点。其次,要想让国产操作系统在市场中突围,开发者普遍认为需要在稳定性和操作系统内核中加大投入,占比分别为 66% 和 64%。
清华大学计算机系长聘副教授陈渝在《操作系统 20 年一周期,国产 OS 迎来黄金时代!》一文中,分享道,相较过往停留在“口头上”或“面子上”,如今国产操作系统现实情况发生了巨大变化:
- 首先,华为在这两年迅速成为了国内操作系统的领军企业之一,推出了其主导的服务器领域操作系统 openEuler 和移动终端/物联网操作系统 OpenHarmony。
- 其次,当国内 IT 领先企业发展到一定阶段,采用外来的操作系统会受到功能、性能和安全可靠等特定需求的限制,这些具备一定实力的企业开始加大对操作系统研发方面的投入。比如阿里巴巴、腾讯、字节跳动等都是这样的代表,它们通过改进或定制 Linux 等操作系统来提升自身业务的发展。
- 最后,AI、机器学习、物联网、AR/VR、无人系统、工业机器人等新兴领域吸引了大量的资金涌入,当现有的操作系统不能充分满足这些领域的深入发展需求时,就推动了新玩家也会加入到面向这些领域的新型操作系统的研究中来。
大厂纷纷下场造芯,但人才的短缺成老大难问题
过去一年,全球范围内的“缺芯”潮此起彼伏,引发各行各业担忧。在此趋势下,不少公司纷纷下场造“芯”,旨在解决当前的燃眉之急,也为将来减少第三方依赖、降低成本做铺垫。
行业中,阿里作为最早入场芯片领域的互联网公司,在 2018 年便成立了平头哥;腾讯在 2020 年成立了深圳宝安湾腾讯云计算有限公司,其业务范围涵盖集成电路设计和研发;同年,百度自研的首款通用 AI 处理器百度昆仑 1 实现 2 万片的规模部署;不久前,字节跳动、快手也纷纷开启造芯之路。
除了大厂造芯之外,也有不少小团队加入造芯行列。据调查报告显示,小于 10 人的芯片创业团队占比超过 50%。
30.22% 的芯片公司选择物联网方向。主要原因是物联网时代有着海量设备,需要大量的芯片支持。
和芯片打交道的开发者都是偏底层的开发者,因此C/C++成为芯片开发者中最常用的开发语言,占比 33.32%。
32.58% 的开发者认为,国产芯片开发过程中,首要解决的问题应该是降低设计成本。其次是专利规避和可制造性设计问题。
对于芯片配套的软件栈,操作系统的支持情况是开发者最关心的问题,其次是版本和兼容性问题。
行业内造芯计划如火如荼,但是不得不面对一个老大难问题——人才。根据本次数据显示,仅 7% 的开发者表示深度理解芯片相关技术并能较深入地应用。在芯片公司,芯片架构工程师是最稀缺人才,62.69% 的开发者认可这一点。
针对这一问题,上海交通大学计算机科学与工程系教授、副系主任梁晓峣表示,尽管多年来国际芯片大厂都在国内建立了规模庞大的研发团队,但他们主要从事基础的工程事务。导致本土高级架构师匮乏。解决之道是立足于本土培养的同时加快引进海外高端人才。
开源已是必然趋势
从广泛角度来看,要说技术圈现在绕不开的一个趋势,那么必属开源。它已经成为开发工具与框架、互联网产品、应用软件等维度的重要协作方式。根据调查显示,94% 的开发者正在使用开源软件。
中国开源也在近一年间迈上新的高度,国内开发者不止通过代码方式参与其中,也在测试、文档、活动组织等多维度都有涉及。不过,68% 的开发者表示,未曾在开源中获得收入。相较去年的 77%,今年数据有所下降。
在工具层面,数据显示,Java 是开发者在开源项目中最为常用的开发语言,占比 41%,其次是 Python,占比 27%。81% 的开发者使用 Git 进行版本管理,31% 的开发者依然在使用 SVN 进行版本管理。随着近几年操作系统的热度提升,开发者最希望看到操作系统相关的开源项目。
在开源变得越发流行与重要的趋势下,大力培养开源人才属于当务之急,对此,华东师范大学数据科学与工程学院研究员王伟提出如下几点建议:
- 将我国主要参与或主导的开源技术与项目,充分融合到已有的计算机类课程教学内容中,吸引广大师生了解、使用、反馈、贡献这些技术与项目;
- 结合国家特色化示范性软件学院、现代产业学院等计划,大力发展新一代软件产业的专业化人才,培养具备开源素养与技能的各类工程师人才;
- 高校设置跨学科、多学科人才培养项目,积极将管理学、经济学、法学、社会学等学科与软件人才培养相结合,重点培养开源战略、开源治理、开源运营等方面的高端急需人才;
- 将开源教育和全民数字素养与技能提升等计划进行结合,将开源与通识教育进行结合,培养具备数字化协作交流、开放创新、国际化视野的新一代数字人才。
快速获取完整的报告内容:https://csdn.gitcode.host/Survey-Report-on-Developers-in-China/survey/