知名开发者社区Stack Overflow发布《2023 年开发者调查报告》
Stack Overflow成立于2008年,最知名的是它的公共问答平台,每月有超过 1 亿人访问该平台来提问、学习和分享技术知识。是世界上最受欢迎的开发者社区之一。每年都会发布一份关于开发者的调查报告,来了解不断变化的开发人员现状、正在兴起或衰落的技术,以及未来的发展方向。
2023年是报告发布的第13年,今年有哪些变化与亮点呢?
全球概况
自 2022 年调查以来,通过在线资源学习编码的比例从 70% 增加到 80%。
18 岁及以下的受访者是最常选择在线资源(例如视频、博客、论坛)进行学习的人群。25 - 34 岁的受访者是从在线课程或认证中学习的最多的年龄段 (52%),但仍然从传统学校学到更多 (55%)。
今年的受访者年龄分布略有上升,37% 的受访者年龄在 35 岁或以上,而去年这一比例为 31%。
排名前五的关键地区与往年相同,但回复数量最多的国家/地区略有变化:美国一直是回复数量第一的国家,但今年我们看到印度从第二高的回复率下降排名第三,落后于德国。两年多来,我们发现印度的回复下降了 50%,而德国的回复则增长了 30%。
技术趋势
在今年的十大编程语言中,我们看到三种流行语言的地位有所上升:Python、Bash/Shell和 C。
Python 在过去三年中越来越受欢迎,今年它上升了一位,排名第三。随着 Python 受欢迎程度的上升,我们一直看到 Python 库在我们受欢迎的“其他技术和框架”部分中排名很高——NumPy 和 Pandas 在过去三年中一直位居前十。
C 是一种有趣的语言,其受欢迎程度正在上升:尽管它自 1970 年代以来就已存在,但在此之前,它在开发人员调查中从未进入过编程语言的前十名。截至 2023 年 6 月, TIOBE指数将 C 列为第二流行编程语言,其参与度接近第一语言 Python。鉴于 C 是最流行的低级语言之一,它是物联网设备中嵌入式编程的首选语言,并且根据Codecademy的说法,它“为我们拥有的几乎所有技术经验提供支持” ,因此开发人员更多地使用 C 是有道理的今年比以往任何时候都多。
编程语言越流行,我们今年看到的开发人员报告的平均经验就越少(我们排名前三的语言大约有 10 年的经验,而那些报告使用率低于 1% 的语言则接近 14 年)。经验不足的开发人员报告称某些编程语言的使用率更高,这可能强化了这样的论点:进入工作队伍的门槛较低会增加他们在程序员中的受欢迎程度。
今年,Docker 是所有受访者中使用最多的其他工具 (53%),从去年的第二位上升。
学习编码的人更有可能使用 npm 或 Pip,而不是 Docker(分别为 50% 和 37% vs. 26%)。两者都与学生流行的语言(分别是 JavaScript 和 Python)一起使用。
与去年类似,Jira 和 Confluence 是所有开发人员中排名前两位的异步工具,但今年该列表中的新成员打破了前三名:27% 的受访者使用 Markdown 文件作为异步工具。
学习编码的人更多地使用 GitHub Discussions,而不是 Markdown 文件(31% vs. 29%),并且比专业开发人员更多地转向 Notion (26%) 和 Trello (23%)。
Rust 是最受推崇的语言,超过 80% 使用过它的开发人员希望明年再次使用它。将此与最不受推崇的语言进行比较:MATLAB。使用这种语言的开发人员中,只有不到 20% 希望明年再次使用它。
Phoenix是最受推崇的Web框架和技术;与使用过三种最常见的 React、Node.js 和 Next.js 的开发人员相比,更多的开发人员会选择再次使用 Phoenix。
希望明年继续使用 Cargo 的受访者数量多于顶级竞争对手(受访者明年希望使用的前 6 种工具),然而,与所有其他选项相比,Docker 明年希望使用它的受访者比例几乎是其两倍。
AI工具是今年新增的一个板块,受访者对人工智能搜索工具的首选是ChatGPT:83%的受访者在过去一年中使用过它。这超出了 Bing AI 的第二选择(20% 的人使用过它)。
随着 ChatGPT 竞争对手扩大用户群,围绕新兴人工智能搜索技术的炒作还有增长空间;对于那些想在明年尝试的人来说,只有四种工具有 10% 或更高的选择率。
除了AI搜索工具之外,我们还询问了AI开发工具。GitHub Copilot 是最常用的人工智能开发工具,去年有 55% 的受访者使用它,是第二名 Tabnine(13%)的四倍。
Zig 是今年收入最高的语言(新增),而 Clojure 则从榜首位置被挤下来,与 2022 年相比下降了 10%。
Dart 和 SAS 的 2023 年薪酬中位数增幅最高,同比增长超过 20%。总体而言,2023年薪资增长基准比去年增长10%。
工作方式
与去年相比,“独立开发者、自由职业者或自营职业者”的人数略有增加,而全日制学生的人数则有同等规模的下降(1 个百分点),而其他就业状况的变化则小于去年。
2023 年,随着通货膨胀,自我投资的成本有所上升,但仍让有许多人选择成为开发人员。
办公方式方面,混合办公模式适用于大型企业;5,000 多个企业中超过一半的员工是混合型员工。较小的组织最有可能进行面对面的会议,在少于 20 人的企业中,五分之一的员工表示会进行面对面的会议。
今年亲自工作的开发人员比去年多 (+2%)。除了重返办公室措施之外,编码很容易进行完全远程工作,并且所有规模的企业中有三分之一或更多仍然完全远程工作。
以上是我们认为2023调查中的一些变化与亮点,想了解更多报告内容,请点击这里:https://survey.stackoverflow.co
相关文章:

知名开发者社区Stack Overflow发布《2023 年开发者调查报告》
Stack Overflow成立于2008年,最知名的是它的公共问答平台,每月有超过 1 亿人访问该平台来提问、学习和分享技术知识。是世界上最受欢迎的开发者社区之一。每年都会发布一份关于开发者的调查报告,来了解不断变化的开发人员现状、正在兴起或衰落…...
vue element plus Form 表单
表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。 TIP Form 组件已经从 2. x 的 Float 布局升级为 Flex 布局。 典型表单# 最基础的表单包括各种输入表单项,比如input、select、radio、checkbo…...
zmq_connect和zmq_poll
文章内容: 介绍函数zmq_connect和zmq_poll的使用 zmq_connect zmq_connect函数是ZeroMQ库中的一个函数,用于在C语言中创建一个与指定地址的ZeroMQ套接字的连接。该函数的原型如下: int zmq_connect(void *socket, const char *endpoint);其…...

TinyLog iOS v3.0接入文档
1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下: 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机: 每15分钟定时触发…...

react-native 配置@符号绝对路径配置和绝对路径没有提示的问题
这里需要用到vscode的包 yarn add babel-plugin-module-resolver 找到根目录里的babel.config.js 在页面添加plugins配置 直接替换 module.exports {presets: [module:metro-react-native-babel-preset],plugins: [[module-resolver,{root: [./src],alias: {/utils: ./src/…...

element的Table表格组件树形数据与懒加载简单使用
目录 1. 代码实现2. 效果图3. 解决新增、删除、修改之后树节点不刷新问题。([参考文章](https://blog.csdn.net/weixin_41549971/article/details/135504471)) 1. 代码实现 <template><div><!-- lazy 是否懒加载子节点数据 --><!-…...

游戏、设计选什么内存条?光威龙武系列DDR5量大管饱
如果你是一位PC玩家或者创作者,日常工作娱乐中,确实少不了大容量高频内存的支持,这样可以获得更高的工作效率,光威龙武系列DDR5内存条无疑是理想之选。它可以为计算机提供强劲的性能表现和稳定的运行体验,让我们畅玩游…...

linux磁盘清理_docker/overlay2爆满
问题:无意间发现linux服务器登陆有问题,使用df命令发现目录满了。 1. 确定哪里占用了大量内存。 cd / du -sh * | sort -rh经过一段时间后,显示如下: // 474G home // 230G var // 40G usr // 10G snap // --- 根据实际情…...
Redis过期清理策略和内存淘汰机制
目录 Redis过期清理策略Redis内存淘汰机制 Redis过期清理策略 Redis 通过设置键的过期时间来实现自动删除过期键。当键的过期时间到达时,Redis 会自动将该键删除。Redis 过期清理策略主要有以下两种: 惰性删除:Redis 在获取键时会检查键是否…...

2_并发编程同步锁(synchronized)
并发编程带来的安全性同步锁(synchronized) 1.他的背景 当多个线程同时访问,公共共享资源的时候,这时候就会出现线程安全,代码如: public class AtomicDemo {int i0;//排他锁、互斥锁public void incr(){ //synchronizedi; …...
Python 常用模块pickle
Python 常用模块pickle pickle序列化模块 【一】定义 序列化:将数据结构或对象转换为可存储或传输的格式反序列化:将序列化后的数据恢复为开始的数据结构或者对象 【二】目的 数据持久化存储远程通信缓存进程间通信 【三】序列化 将对象转换为字节…...

CentOS 6 制作openssh 9.6 p1 rpm包(含ssh-copy-id、openssl) —— 筑梦之路
openssh 9.6 需要openssl 1.1.1 以上版本,因此需要先安装openssl 1.1.1,可阅读这篇升级更新openssl版本到1.1.1w CentOS 6 制作openssl 1.1.1w rpm包 —— 筑梦之路-CSDN博客 CentOS 6很久都停止更新和支持,关于此版本的写的不多ÿ…...

Tomcat Notes: Deployment File
This is a personal study notes of Apache Tomcat. Below are main reference material. - YouTube Apache Tomcat Full Tutorial,owed by Alpha Brains Courses. https://www.youtube.com/watch?vrElJIPRw5iM&t801s 1、Tomcat deployment1.1、Two modes of …...
某邦通信股份有限公司IP网络对讲广播系统挖矿检测脚本
目录 1.漏洞概述 2.影响版本 3.危害等级 4.挖矿程序检测 5.Nuclei自动化检测...

uniapp点击跳转传对象
目录 传对象传对象传送组件接受组件 最后 传对象 传对象 传送组件 点击传给组件 <view class"dki-tit-edit" click"gotificatedit(item)">编辑 </view>gotificatedit(item){console.log(item,item);let options JSON.stringify(item);uni.…...
简单用PHP实现微信小程序的游戏功能
微信小程序的兴起,越来越多的开发者开始关注如何在小程序中实现游戏功能。PHP作为一种流行的后端语言,可以很好地与小程序进行搭配,实现游戏功能。下面将介绍如何使用PHP来实现微信小程序的游戏功能,并提供具体的代码示例。 建立…...

某查查请求头参数加密分析(含JS加密算法与Python爬虫源码)
文章目录 1. 写在前面2. 请求分析3. 断点分析4. 扣加密JS5. Python爬虫代码实现 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】ÿ…...
免费用chatGPT
免费用chatGPT,地址: DocGPT - 第二大脑...

还不会python 实现常用的数据编码和对称加密?看这篇文章就够啦~
相信很多使用 python 的小伙伴在工作中都遇到过,对数据进行相关编码或加密的需求,今天这篇文章主要给大家介绍对于一些常用的数据编码和数据加密的方式,如何使用 python 去实现。话不多说,接下来直接进入主题: 前言 1…...

简易实现 MyBatis 底层机制
MyBatis 大家好呀!我是小笙,我中间有1年没有更新文章了,主要忙于毕业和就业相关事情,接下来,我会恢复更新!我们一起努力吧! 概述 MyBatis 是一个持久层的框架(前身是 ibatis&#x…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
【题解-洛谷】P10480 可达性统计
题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...

【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战
🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...