超过 18,000 人填写了 2021 年 freeCodeCamp 新开发者调查问卷(2021 freeCodeCamp New Coder Survey)。这使我们能够深入了解世界各地的人们是如何学习编程的,以及他们为什么要学习编程。

问卷包含 49 个问题。我们已经在 Open Data Common 许可证下将整个反馈的数据集发布在 GitHubKaggle

在接下来的几个月里,众多数据科学家、数据爱好者和研究人员(包括我自己)将深度挖掘这些数据,分享更多和编程学习者相关的洞察。

在这篇文章里,我将分享新开发者们目前的状态。我将关注他们是谁、他们如何学习编程、他们的职业目标是什么。

本文的后半部分会介绍我正在进行的定性研究的一些洞察,分享新开发者正在采用的一些学习策略。

新开发者们是谁

新开发者们生活在世界各地。

image-4


居住在美国的新开发者并不都是来自技术中心区域:

Chart

Description automatically generated

他们的年龄中位数为 25 岁,大约 70% 的新开发者是男性。

以下是全球新开发者的种族和民族分布:

image-6

这是居住在美国的新开发者的种族和民族分布:

Chart

Description automatically generated

编程经验少于 5 年的人们平均的编程时间是 9.5 个月,中位数为 3 个月。他们每周花在学习上的平均时间是 8 小时。

只有 10% 的人已经在从事开发工作。还未从事开发工作的人中大约 90% 的人感兴趣获得开发工作。

在对开发者职位感兴趣的人中,约有 33% 的人已经在应聘或计划在未来 6 个月内应聘开发者职位,而 31% 的人尚未决定。

image-7

他们中的大多数人都愿意搬迁,或者会考虑搬迁。

Chart, pie chart

Description automatically generated

至少 45% 的新开发者目前正在工作。

image-8

43% 的新开发者至少拥有学士学位。

image-9

只有 20.5% 的新开发者就读了计算机科学、计算机工程或软件工程专业。

image-10

新开发者们如何学习编程

新开发者们在学习编程时使用最多的是在线资源。以下是他们使用的一些资源:

image-11

他们发现最有用的在线资源是:

Chart

Description automatically generated

新开发者们最喜欢的与编码相关的 YouTube 频道是:

Chart, bar chart

Description automatically generated

1,831 名新开发者跟我们分享了自己最喜欢的编程类播客,前五个播客是:

  • Code Newbie Podcast
  • Learn Code With Me
  • Syntax.fm
  • Darknet Diaries
  • Talk Python to Me

人们为什么要学习编程

超过 2/3 的新开发者学习编程是为了转行、创业或找到第一份工作,或者成为自由职业者。

image-12

新开发者对职业的期望

我们要求大家选择他们对软件开发职业感兴趣的最多 3 个原因。以下是主要原因:

image-13

大约 55% 的人希望在跨国、中型或初创公司工作,而 28.5% 的人希望成为自由职业者或自己创业。

image-14

在对软件开发职业感兴趣的人中,超过 1/3 的人对全栈开发感兴趣。

image-15

超过 93% 的人希望每周至少有一天在家工作。

image-16

对于自己的第一份开发工作,新开发者们的期望年薪是多少?

Chart

Description automatically generated

在美国,39.5% 的新开发者希望在他们的第一份开发工作中赚取 5 万美元到 7.5 万美元的年薪。

Chart

Description automatically generated

新开发者们目前的职业

目前在职的新开发者们都在哪些行业?

image-17

至少 51% 的人没有足够的储蓄来维持 3 个月没有收入的生活。

这是他们去年的收入:

A picture containing chart

Description automatically generated

这是居住在美国的新开发者们去年的收入:

Chart, bar chart

Description automatically generated

关于新开发者的更多统计数据

对于大约 60% 的新开发者来说,英语是他们的第二语言。

22% 的人在自己的国家是少数民族。

约 75% 的人生活在大城市。

image-128

72% 的人是单身,没有结过婚。

82% 的人没有孩子。

17.5% 的人家里的网络情况不好。

5.6% 的人曾在自己国家的军队服役。

2.5% 领取伤残津贴。

定性研究的洞察

有些读者可能已经知道我在波士顿大学攻读社会学博士学位。许多新开发者慷慨地同意与我分享他们的编程之旅,这个内容将作为我的博士论文的一部分。

因此,在过去的五个月里,我有机会与美国各地的人们见面聊天。他们在没有计算机科学相关学位的情况下学习编程。

作为一名混合方法研究人员,我重视将调查统计数据与定性访谈的深入洞察相结合的社会科学。

不过,需要注意的是,定性数据需要太多时间来收集和分析——特别是如果你喜欢观察随着时间的推移而发生的变化,就像我一样。然而,我写这篇文章是为了描述关于新开发者当前状态的高层次分析,我忍不住添加了一些关于他们学习策略的定性研究洞察。

新开发者如何找到时间学习

许多新开发者都有全职工作和/或照顾孩子和其他家属的责任,那么他们如何腾出时间学习编程呢?

学习编程确实需要适应力、努力和牺牲。事实证明,凌晨 4 点起床并在忙碌的一天之前练习编程的情况在新开发者中并不少见。他们还倾向于将任何暂停的时间用于编程:

“……我会利用通勤时间,我也会乘火车上班,所以当我在火车上时......只学一些小的课程或者做小的测验。”
“我起得很早,我通常在凌晨 4 点左右醒来......有时在午餐时,我通常有 30 分钟到一个小时的午餐时间。我会吃得很快,我可以使用手机或笔记本电脑,有时甚至可以一次练习 10 或 15 分钟的编程,有时只有 5 分钟。”

有些人甚至采用更有创意的方法来腾出时间学习。Barb 是两个蹒跚学步的孩子和一个 5 岁孩子的年轻母亲,她最近也从新冠中康复,她将学习、儿童保育和康复整合到一项活动中:

“每当我阅读时,我都会大声朗读。我需要做肺康复。所以,这真的很棒,你知道,一石三鸟。因为它可以帮助我学会更自然地说话和调整自己的节奏。而且,这也有助于培养孩子的早期识字能力。当他们上幼儿园时,已经比其他孩子多听了 140 万个单词。这个方法可以帮助我真正坐下来学习,因为我不仅在为我读书,我还在为他们读书。我们开始讨论一些有趣的话题,他们吸收的东西比我想象的要多。”

新开发者在构建什么项目

新开发者的第一个项目是他们新获得的技能和长期兴趣和专业知识相结合的产物。

他们构建的项目范围从为副业创建交互式网站到构建音乐、心理健康或自然冒险应用程序。

Henry 将他对 Python 和骰子游戏的兴趣与跟 7 岁女儿共度美好时光的乐趣结合在一起。由于新冠疫情而休假几周,父女俩开始创建一个简单的骰子游戏,并在几周内不断修改和开发:

“我的意思是,这是你一生中见过的最基本的事情。然后我们将一些代码更改为更具交互性。你知道,我们加入了一些声音和音频,然后尝试整合一些这样的视频,很有趣,而且我真的很想尽可能多地学习一切。”

如果你曾听或读过软​​件开发人员谈论他们的工作,那么你已经熟悉“我喜欢解决问题”这句话了。

我与之交谈过的新开发者们也喜欢解决问题,但他们也喜欢做其他事情:基于不同的背景、兴趣和专业知识,他们认识到以前没有认识到的现实问题。

拥有语言学和哲学背景的 Kevin 对语言学习应用程序有了新的认识。他的应用语言学知识使他能够以不同的方式处理单词匹配算法,以改善第二/第三语言的学习体验。

Barb 热衷于构建的项目是她为儿子编写的一个游戏,当她发现读书可能不是他学习的最佳方式时,她可以帮助他更好地学习。这个方法奏效了!它也适用于许多其他孩子。

我很高兴继续关注这些新开发者,并看到他们的观点对我们使用的技术和产品做出贡献、重塑和改进。

即将推出更多内容

这里调查结果仅代表一些描述性分析。我们想尽快与你分享调查问卷,而且还有很多事情要说!

我将继续进行调查,进行更多的统计分析,并将与你分享我的洞察。但是,如果你是数据爱好者,请不要等我,你可以自己作分析,并与我们分享!你可以访问 GitHubKaggle 上的数据集。

如果你对我的研究以及描述性分析之外的定性结果感到好奇,请继续关注,我需要时间来完善。

感谢所有参与此次调查的人们,他们非常慷慨地与我分享他们的经历。我越来越接近回答一个很多人想知道的问题:成为一名自学成才的开发者需要什么?

原文:The 2021 New Coder Survey – More than 18,000 People Share How and Why They are Learning to Code,作者:Dilan Eren