超过 18,000 人参与了 2021 年 新程序员调查。这让我们深入了解了世界各地成千上万的人如何学习编程,以及他们选择这样做的原因。
和 GitHub 上发布了参与者对我们提出的 49 个问题的回答的完整数据集(根据开放数据通用许可证) Kaggle .
在接下来的几个月里,数十名数据科学家、数据爱好者和研究人员(包括我自己)将仔细研究数据并发现有关学习编码的人的各种见解。
现在,我将向您全面介绍新程序员的现状。我将重点介绍他们是谁、他们如何学习以及他们的职业目标是什么。
作为奖励,在本文的后半部分,我将分享我正在进行的定性研究的见解,并向您介绍新程序员正在采用的一些学习策略。
谁是新编码员?
新编码员居住在世界各地。
居住在美国的新程序员不一定来自科技中心地区:
他们的平均年龄为 25 岁。大约 28% 的新编码员认为自己是女性、非二元性别者、跨性别者或性别流动者。70% 认为自己是男性,其余 2% 不愿透露。
以下是全球新编码员的自我报告种族和民族构成情况:
以下是美国新程序员的种族和民族构成情况:
开始编码时间不到 5 年的新编码员平均编码时间为 9.5 个月。编码时间的中位数为 3 个月。
他们每周花在学习上的平均时间为8小时。
只有 10% 的受访者已经从事开发人员工作。
大约 90% 的非开发人员对开发人员的工作感兴趣。
对开发人员职位感兴趣的人中,约有 33% 已经申请或计划在未来 6 个月内申请开发人员职位,而 31% 的人尚未决定。
他们中的大多数人都愿意搬迁,或考虑搬迁。
目前至少有 45% 的新编码员正在从事某种工作。
43% 的新编码员至少拥有学士学位。
只有 20.5% 的新程序员学习过计算机科学、计算机工程或软件工程。
新程序员如何学习编码
新程序员在学习编程时最常使用在线资源。以下是他们使用的一些资源:
他们认为最有用的在线资源是:
新程序员最喜欢的编码相关 YouTube 频道是:
1,831 名新程序员向我们讲述了他们最喜欢的与编程相关的播客。以下是前五名:
- 代码新手播客
- 和我一起学习代码
- 语法.fm
- 暗网日记
- 跟我聊聊 Python
人们为什么要学习编码
超过 2/3 的新编码员学习编码是为了建立新的职业、创业或从事第一份职业或自由职业。
新程序员的职业期望
我们要求新程序员选择最多 3 个他们对软件开发职业感兴趣的原因。以下是他们最常提到的原因:
约55%的人希望就职于跨国公司、中型公司或初创公司。28.5%的人则更愿意从事自由职业或自己创业。
对软件开发职业感兴趣的人中,超过 1/3 对全栈 Web 开发感兴趣。
超过 93% 的人希望每周至少有一天在家工作。
在他们的第一份开发工作中,全球新程序员期望实现以下目标:
但由于各国的工资和生活成本差异很大,因此只关注一个国家会更有帮助。
在美国,39.5%的新程序员期望他们的第一份开发工作能赚到 5 万至 7.5 万美元。
新程序员的当前职业
目前正在从事不同领域工作的新程序员。
至少 51% 的人没有足够的储蓄来维持 3 个月没有收入的生活。
以下是他们去年的收入:
这是去年美国新程序员的收入。大多数人的年收入不到 4 万美元。
更多新程序员人口统计数据
对于大约 60% 的新程序员来说,英语是他们的第二语言。
- 22%是其国家的少数民族。
- 约75%的人居住在大城市。
- 约72%是单身,从未结过婚。
- 82% 没有孩子
- 17.5%的人家中没有高速互联网。
- 5.6%的人曾在本国军队服役。
- 2.5%的人领取残疾福利。
定性研究的见解
你们中的一些人可能已经知道,我是波士顿大学社会学博士候选人。作为我博士论文研究的一部分,许多新程序员慷慨地同意与我分享他们的编程之旅。
因此,在过去的五个月里,我有机会与美国各地这些没有计算机科学学位却学习编码的优秀人士见面和聊天。
作为一名混合方法研究员,我重视将调查揭示的更大模式与定性访谈提供的深入见解相结合的社会科学。
不过,有一个警告。定性数据的收集和分析需要花费太多时间——尤其是如果你喜欢观察一段时间内的变化,就像我一样。然而,当我写这篇文章来描述新程序员的现状的高级分析时,我忍不住要添加一些关于他们的学习策略的定性见解。
新程序员如何找到时间学习?
许多程序员都有全职工作和/或照顾孩子和其他家属的责任。那么他们如何挤出时间学习编程呢?
学习编程确实需要毅力、努力和牺牲。事实证明,在新程序员中,早上 4 点起床并在一天的繁忙之前练习编程并不罕见。他们还倾向于利用任何空闲时间进行编程:
“……如果我在工作中有一丝空闲时间,我也会乘火车去上班,所以当我在火车上时……就会上一些小课,做一些小测验。”
“我起得很早。我通常在早上 4 点左右起床……有时午餐时间,你知道,我通常有 30 分钟到一个小时的午餐时间,我会吃得很快,我可以使用手机或笔记本电脑,有时我可以练习编码,有时甚至可以一次练习 10 或 15 分钟。有时只有 5 分钟。”
有些人甚至采取更有创意的方法来腾出时间学习。Barb 是两个幼儿和一个 5 岁孩子的年轻母亲,她最近也从新冠中康复,她将学习、育儿和康复整合到一项活动中:
“我每次读书时都会大声朗读。另外,为了肺,我必须进行肺康复。所以,这真的很棒,你知道,一举三得。因为它帮助我学会更自然地说话和调整自己的节奏。而且,它还有助于培养孩子的早期识字能力,对吧。
到上幼儿园时,接受阅读的孩子比没有接受阅读的孩子多掌握了 140 万个单词。这有助于我坐下来学习,因为我不只是为自己读书,我也在给他们读书。我们讨论了一些有趣的话题,我想说,他们吸收的知识比我想象的要多。”
新程序员从事什么类型的项目?
新程序员的第一个项目是他们新获得的技术技能与长期兴趣和专业知识相结合的产物。
他们正在从事的项目包括为副业创建交互式网站、开发音乐、心理健康或自然探险目的地应用程序等。
Henry 将自己对 Python 和骰子游戏的兴趣与与 7 岁女儿共度美好时光的乐趣结合起来。由于疫情,Henry 休假了几周,父亲和女儿开始制作一个简单的骰子游戏,并在几周内不断修改和开发它:
“我的意思是,它是你一生中见过的最基本的东西。我们回到过去,改变了一些编码,让它更具互动性。你知道,我们加入了一些声音和音频,然后尝试整合一些这样的视频。这很有趣……我真的想尽可能多地学习一切。”
如果您曾经听过或读过软件开发人员谈论他们的工作,那么您已经熟悉这句话“我喜欢解决问题!”
与我交谈过的新程序员也喜欢解决问题,但他们还做其他事情:凭借他们不同的背景、兴趣和专业知识,他们可以认识到以前未被认识到的现实生活中的问题。
Kevin 拥有语言学和哲学背景,对语言学习应用有新的看法。他对应用语言学的了解使他能够以不同的方式处理单词匹配算法,以改善第二/第三语言学习体验。
Barb 的热情项目是为儿子编写的一款游戏,当她发现读书可能不是他最好的学习方式时,她为儿子编写了这款游戏来帮助他更好地学习。而且这个游戏很有效!它对许多其他孩子也可能有效。
我很高兴继续关注这些新开发人员,并看到他们的观点为我们使用的技术和产品做出贡献、重塑和改进。
更多即将推出
此处的调查结果仅代表一些描述性分析。我们希望尽快与您分享调查结果,但还有很多内容要分享!
我将继续进行调查并进行更多统计分析,并将这些见解与您分享。但是,如果您是数据爱好者,请不要等我,继续进行自己的分析,并与我们分享!同样,您可以在 GitHub 或 Kaggle .
如果您对我的研究和描述性快照之外的定性结果感到好奇,请继续关注 - 我告诉您,这需要时间!
感谢所有这些慷慨地继续与我分享经验的优秀人士。我即将回答许多人想知道的一个问题: 成为一名自学成才的开发人员需要什么?
发表评论 取消回复