来自技术招聘公司的数据
![](https://i-blog.csdnimg.cn/blog_migrate/f67b90a2eb2434ec4ac22f3f46b9f246.png)
编程新兵训练营似乎无法提出要求。 他们说,与其花四年的大学时间,您可以学习如何成为一个为期三个月的计划的软件工程师。 从表面上看,这听起来更像是特朗普大学的广告,而不是合理的教育模式。
但这不是我们在Triplebyte中发现的。 我们会与工程师进行面试,并将他们与最适合的初创公司匹配。 公司在寻找什么样的技能方面差异很大 ,并且通过映射这些差异,我们能够帮助工程师进行更多的采访并找到他们自己找不到的工作。 在过去的一年中,我们已经与大约100个训练营的毕业生合作,而且许多人还在大公司找到工作。 我们在不知道候选人背景的情况下进行盲目面试,并且我们定期进行面试,并给候选人非常积极的分数,但当我们得知候选人仅编程了6个月时才感到惊讶。
训练营的毕业生是初级程序员。 他们有很多东西要学习,并且代表着雇用他们的公司的投资。 也就是说,最近的大学毕业生也是如此。 我们发现,训练营的毕业生在网络编程和编写干净的模块化代码方面要比大学的毕业生更好,而在算法和理解计算机的工作方式方面则更差。 总而言之,我们与这两个小组的合作取得了大致相同的成功。
在这篇文章中,我将尝试阐明如何做到这一点。 我将深入探讨两组之间的差异,并希望解释一些人如何在不到一年的时间内成为有竞争力的初级程序员。
分析
我们在Triplebyte上进行的技术访谈大约需要两个半小时,分为四个主要部分,重点是实际编程,Web架构,底层系统理解和算法理解。 并非每个工程师都能完成每个问题(我们让程序员专注于自己的长处),但是该过程可以很好地衡量每个工程师在这些领域中的相对长处。
为了更好地了解新兵训练营的毕业生和大学毕业生的比较,我绘制了这两个小组在每个领域的平均表现。 y轴是每个问题的分数(其中1 =强否,2 =弱否,3 =弱是,4 =强是)。 作为参考,我还包括了全部申请人,以及通过我们面试的所有工程师。
![](https://i-blog.csdnimg.cn/blog_migrate/7f7c217cfc54de8b916e278b4e84d8c9.png)
关于该图的第一件事要注意的是,在实际编程和Web系统设计上,新手训练班的毕业生表现与大学毕业生相同或更好,而在算法和低级系统上则更差。 我们实际的编程问题并不容易。 他们需要理解一个问题,提出抽象来解决该问题,并将其呈现在代码中。 如果有的话,我们实际的编程问题比我们的算法问题需要更多的现场思考。 但是,他们不需要学术CS或数学或任何特定知识。 这是问题的症结所在。 训练营的毕业生在实践技能上匹配或击败大学毕业生,而在深厚的知识上却会失败。
在设计问题上也存在类似的模式。 Bootcamp的毕业生在涉及Web服务器,数据库和负载平衡器的Web问题上表现更好。 大学毕业生在涉及比特/字节,线程,内存分配和理解计算机实际工作原理的低级设计问题上表现更好。
Triplebyte看到了训练营和大学毕业生的偏见样本。 我们通过在线编程测试进行背景盲筛选,并且仅采访通过此测试的工程师。 因此,我们没有办法知道在我们的流程早期阶段,有多少新手训练营毕业生和大学毕业生不及格,并且以上图表仅反映通过测试的人。 尽管如此,仍有大量的训练营毕业生通过了我们的测试,并且在面试中也达到了大学毕业生的水平。
我想特别提请注意大学毕业生在算法问题上的表现。 他们不仅比训练营的毕业生更好,而且也更好。 他们比接受我们采访的普通程序员要好得多(他们大多数都有2年以上的经验),并且几乎与我们通过的普通工程师一样好。 这是有趣的。 它支持这样的说法,即大多数程序员并未在工作中使用算法技能,并且随着时间的流逝而萎缩。
这怎么可能?
除了我们的数据,似乎仍然很难相信3个月可以与4年制大学学位竞争。 时间尺度似乎不对。 首先要注意的是,授课时间的差异并不像看起来的那么大。 训练营非常激烈。 学生每天要完成8个小时的工作,许多人会在周末休息和下班(一个受欢迎的训练营,每周运行6天)。 在整个过程中,助教都与学生一起工作。 什么训练营缺乏持续时间,它们可能会增加强度。
第二点是,训练营教授实用技能。 传统的CS程序员在NP完整性和Scheme中的编程等概念上花费大量时间。 现在,我绝不贬低这些材料。 我喜欢学术CS(以及Cook-Levin定理)。 它是美丽,令人着迷的东西,我从中学到很多东西。 但这并不直接适用于大多数程序员大部分时间所做的事情。 训练营可以通过不懈地专注于实践技能来显示出巨大的成果。 训练营助教不断批评每个学生的编码风格。 他们教测试。 他们教学生如何使用编辑器。 传统CS学位课程从未想到如何使用编辑器。
这并不会使训练营的毕业生具备与大学毕业生同等的技能。 如果您想进行硬算法或低级编程,传统的CS培训仍然可以为您提供更好的服务。 但是,对于许多入门级开发职位而言,这确实使他们中的佼佼者具有了惊人的竞争力。
结论
有两种方法可以解释此博客文章中的结果。 一种方法是说训练营是橱窗装饰。 他们向经验不足的程序员讲授如何使他们看起来像优秀的程序员一样需要知道的知识,但会跳过学科的核心。 但是,我认为这种观点太愤世嫉俗。 查看该帖子的另一种方式是,证明训练营与CS程序相比完全侧重于其他领域。 他们集中精力于成为一名高效程序员所需的实践技能。 这些是CS计划希望学生在课程学习的边缘学习的技能。 训练营如此务实,给学生带来了沉重的工作量,它们能够与CS毕业生的实际技能相匹配。
训练营的毕业生并非对所有公司都有意义。 就像最近的大学毕业生一样,他们是对雇用他们的公司的投资。 他们有很多东西要学。 而且,在算法和低级系统上,它们显然比经过学术培训的工程师还要糟糕。 数据库或自动驾驶汽车公司可能应该坚持拥有CS学位的人。 但是绝大多数公司需要程序员来解决网络上的实际问题。 在这个轴上,我们发现训练营的毕业生完全具有竞争力。
我们都将训练营的毕业生放到了顶级公司,并且看着他们成长。 我们已经看到他们学习了毕业时缺少的一些CS技能。 我们已经看到他们了解大规模生产系统。 我们已经看到他们担任领导职务。 真是太不可思议了,最好的训练营毕业生学习的速度和程度如何。 与他们合作很高兴,我们一定会继续与训练营的毕业生合作。
如果您是训练营的毕业生(或大学毕业生,或其他任何人),并且对寻找技术实力雄厚的公司感兴趣,请尝试一下我们的流程 。 我也对您对这篇文章的想法感兴趣! 给我发电子邮件: ammon@triplebyte.com 。
感谢Jared Friedman和Daniel Gackle阅读了本文的草稿,并感谢Buck Shlegeris编写了这篇文章的主要帮助。
From: https://hackernoon.com/bootcamps-vs-college-11dd76a4d127