“那些将把我们从地球上抹去的年轻朋克在哪里?”

在一个社区中进行了另一轮讨论后,我问自己 Grebenshchikov 提出的标题中提出的存在主义问题,即初级 Web 后端开发人员是否需要 SQL 知识,或者 ORM 是否会做所有事情。 我决定寻找比 ORM 和 SQL 更广泛的答案,并且基本上尝试系统化现在正在面试初级和中级开发职位的人是谁,他们的历史是什么以及他们的世界住在。 总的来说,我有一个意见,但它是根据个人招聘经验形成的,并且明显适应了当地市场。 总的来说,这变得很有趣。 这是我们发现的。

全球开发者人数

为了以某种方式解决这个问题,我决定首先搜索有关当今世界上有多少开发人员以及这个群体如何随时间变化的数据。
根据各种来源的估计,这一数字在 12 至 30 万人之间。 决定停在 来自 SlashData 的数据,因为他们的方法似乎相当平衡并且适合我的需求。 在评估中,他们考虑了 Github 上的帐户和存储库数量、StackOverflow 上的帐户数量、npm 帐户以及来自美国和欧洲就业官方来源的数据。 他们还利用自己的 16 项研究调整了结果数字,其中每项调查均涉及约 20 人。

据 SlashData 统计,2018 年第四季度全球约有 18.9 万开发者,其中 12.9 万是专业开发者,即以编程为生。 目前不是专业开发人员的人都是以编程为爱好的人,加上目前正在学习某一专业的人(各种学生和自学成才的人)。 嗯,也就是说,这里暗示了我感兴趣的群体的规模——6 万人。 说实话,这超出了我的预期。

第二个让我惊讶的是程序员数量的增长速度:从2017年第二季度到2018年第四季度,从14.7增长到了提到的18.9万,即21年增长了2018%! 如果让我估计程序员数量的增长率,我会说每年大约 5%,并且每年略有增长。 而这里的数字高达 20%。

此外,SlashData 预计到 2030 年人口将达到 45 万。 很容易看出,这意味着每年增长略高于 8%,而不是 20%,但它们指的是考虑到互联网普及率(目前全球约为 57%)而进行的调整。 根据 Statista)以及其他几个因素,例如人均开发人员数量。 从地域上看,印度和中国的开发商数量增长最为强劲;预计到 2023 年,印度的开发商数量将超过美国(这已经是 C# 角点数据).

一般来说,无论你怎么看,都会有很多程序员,因为需求在增长。 顺便说一下需求。

需求是什么?

为了估计需求,我使用了 HackerRank 数据 2018 и 2019 年。

就编程语言而言,除了计算机硬件之外,几乎所有行业对 JavaScript、Python 和 Java 的需求最大。 后者需求最大的是C/C++,这可以理解;硬件项目对相应软件的资源强度和性能还是有要求的。

“那些将把我们从地球上抹去的年轻朋克在哪里?”

就框架而言,AngularJS、Node.js 和 React 的需求最大,而且它们的供需差距最大,这似乎可以用 JavaScript 生态系统变化的速度来解释,因为例如对于 ExpressJS ,供给已经超过需求。

“那些将把我们从地球上抹去的年轻朋克在哪里?”

在能力方面,雇主主要期望候选人具备解决问题​​的能力。 大约 95% 的雇主认为这些技能很重要。 编程语言熟练程度排名第二,为 56%。 顺便说一下,与算法、数据结构等计算机科学的基础知识完全没有关系,要么没有出现在问卷中,要么不再大规模需要学术知识。

23.2人以下的公司中有100%需要数据库设计,18.8人以上的公司有1000%需要数据库设计。 是的,看起来是关于 ORM 和 SQL 的! 恕我直言,逻辑上的解释是,在大公司中,有一个专门的 DBA 角色,负责这方面的工作,因此可以软化对开发人员的要求并更快地招聘。 但对于系统设计来说,情况恰恰相反:小型系统为 37.0%,大型系统为 44.1%。 看起来大型系统应该有专门的架构师,但也许他们根本无法覆盖正在生成的系统数量。 或者将相同的基本算法和数据结构放入系统设计中,那么它就会变得更清晰一些。

小公司对框架熟练程度的需要更多而不是前面提到的系统设计,从中我们可以得出船长的结论,即对于初创公司来说,尽快推出一款可以工作的产品非常重要,明天就是明天。

“那些将把我们从地球上抹去的年轻朋克在哪里?”

学生学什么?

这里我参考了别人的数据 黑客排名研究.
重要的是要考虑到,尽管大学(我指的是计算机科学专业)教授某种形式的编程,但超过一半的受访者表示他们也从事自学。

现代学生更喜欢从 YouTube 学习,而年长的开发人员则倾向于教程和书籍。 他们都积极使用 StackOverflow。 我将此归因于视频是 Z 世代熟悉的媒体渠道,而 Y 世代的代表仍处于没有博主的时代。

他们教授雇主所需的内容:JavaScript、Java、Python。 他们表示自己懂C/C++,但这很可能是因为这些语言用于大学教学。 他们教授 JS 框架,但需求明显高于供给,所以显然他们在找到第一份工作后正在积极学习。

“那些将把我们从地球上抹去的年轻朋克在哪里?”

总的来说,正如预期的那样,他们教授的是需要的内容。

学生期望从第一份工作中获得职业发展,工作与生活的平衡排在第二位(在某些国家是第一位),有趣的任务排在第三位。

按编程语言和软件类型划分的开发人员群体动态

“那些将把我们从地球上抹去的年轻朋克在哪里?”

Web 应用程序位居首位,估计有 16.9 万开发人员。 这又是 SlashData。 其次是后端服务(13.6 万)、移动应用程序(13.1 万)和桌面(12.3 万)。 AR/VR和物联网领域逐渐受到欢迎,AI/ML/数据科学在过去两年显着增长。

Javascript 增长最快;其社区已经是最大的,仅 2018 年就增长了 2.5 万。 他们甚至试图将其写入物联网和机器学习领域。
Python 在 2018 年增长了 2.2 万,这得益于传统上强势的 ML 的日益普及,以及该语言的易学性和便利性。

Java、C/C++ 和 C# 的增长速度低于开发人员总数的增长速度。 它们现在很少成为人们选择开始使用的编程语言。 这里对开发商的需求与供应或多或少是平衡的。 我认为如果没有 Android,Java 的增长速度会更慢。

PHP 是第二大流行的 Web 应用程序编程语言,并且还在显着增长(32 年增长了 2018%)。 其社区估计有 5.9 万开发者。 尽管 PHP 的声誉两极分化,但它非常容易学习并且广泛使用。

与前几代人相比,今天的年轻考生的学习情况如何?

再次HackerRank数据。 现在年龄在 38 岁到 53 岁之间的人将游戏列为他们的第一个项目。

顺便说一句,我确认我的第一个或多或少的工作项目是“井字游戏”,最多连续五个,场地无限,第二个是 15 人的游戏。我把所有这些都写在 公元前 010-01, 有 维尔纽斯基本,又名 BASIC-86 和焦点。 呃。

现代新手程序员(21 岁以下)将编写计算器和网站作为他们的第一个项目。

在X一代的代表中,几乎一半的人在16岁之前开始编写代码,许多人是在5岁到10岁之间开始编写代码的(主要是现在35岁到45岁之间的人)。 原因或多或少是清楚的:信息来源很少,要成为一名程序员,你必须非常想要它,而那些真正想要它的人很早就开始编程。 那些不太想要它的人现在很可能已经有了不同的职业,所以社会学的情况正是如此。

“那些将把我们从地球上抹去的年轻朋克在哪里?”

如今,只有 20% 的年轻候选人在 16 岁之前开始编程,大多数人在 16 岁到 20 岁之间。 但对他们来说,学习也变得更加容易;现在更容易获得。

发现

对于今天刚开始的 Web 后端开发人员是否需要 SQL 的问题,我仍然没有找到具体答案,但我已经纠正了我对现代程序员群体的看法。

下一代开发商都是普通人,在某些方面他们与前辈很相似;住房问题只是把他们宠坏了。 他们满足雇主创造的需求。 由于更方便的工具和框架可以让您快速取得成果,进入该行业的门槛变得更低。 现在越来越多的人成为程序员;数字一代(Z世代)从出生起就生活在科技之中;对他们来说这是一个普通的职业,并不比其他人差。

那些知道 L1 缓存延迟约为 4 个周期,并且最好不要不必要地使缓存线崩溃的人,在总人口规模中所占的百分比正在变得越来越小。 然而,他们不应该担心找到工作;毕竟,有人必须在仍然需要的地方编写低级的东西。 同样,那些在系统设计方面拥有深厚基础知识并通过血腥实战获得的人,并且不只是追随货物崇拜者,也不应该担心。 因为团队中会有更多的人可以“只写代码”和“只”使用框架,并且为了“避免多年来漫无目的地生活的痛苦”(c)他们需要由这样的人来平衡。

软技能正逐渐从可取的范畴转向强制性的(我没有客观数据证实这一点,只是实际观察)。 程序员的数量在不断增长,他们都需要通过直接或间接的控制来获得结果,而这正是软技能所需要的。

在我看来,“进入 IT”似乎是一个当地的地区性故事,对于那些程序员的收入与类似的“非 IT”专家的收入存在显着差异的地区来说是典型的。 在我居住的明斯克,这通常是一场群众运动,每天我都会看到有关如何进入令人垂涎的 IT 领域的新课程的广告,清洁公司向程序员发出这样的信息:“你理解这张图片中的代码吗? 这意味着您可以承担不打扫公寓的费用,我们将为您做一切事情。” 同样的事情显然也发生在印度的一些地方。 我也没有数据证明这一点。

总的来说,在我看来,没有什么能威胁到程序员群体。 喋喋不休地说白天找不到真正的程序员,而且候选人往往“一无所知”,这是没有意义的。 他们和“真正的程序员”一样聪明和有能力,甚至可能比“真正的程序员”更聪明和更有能力;他们只是获得了快速增长的市场所需的知识,然后推迟了他们还不需要的东西,并且不会带来正确的利益现在。 他们会在需要的时候学习,因为他们仍然想学习。 可能不是每个人都有能力做到这一点,但也不是每个人都需要它;在可预见的未来,市场将很容易接受那些能够使用某种框架快速组合另一个应用程序概念的人。

只有注册用户才能参与调查。 登录拜托

Web 后端面试需要 SQL 知识吗?

  • 是的,我需要它,因为我需要它来工作

  • 是的,我愿意,尽管工作中很少需要它。

  • 不,我不需要,我们有 NoSQL

  • 不,我不需要它,ORM 会做一切

320 位用户投票。 230 名用户弃权。

来源: habr.com

添加评论