你已经完成了训练营。你可以就业了吗?
于是,我汗流浃背、衣衫褴褛、目光呆滞,却又无比自豪;经过15周的密集Web开发培训,我成功了。我向自己,甚至向他人证明了,我掌握了编程的基础知识,并且掌握了两种语言的中级水平。我已经在两个主流框架中部署了应用程序,并掌握了它们的DSL(特定语言)。我在Github上有超过一千次提交。我具备了就业能力,而且很快就会找到工作!
在经历了无数次的拒绝之后,我可以告诉你,在竞争激烈的市场中,情况并非如此。然而,在过去的几周里,我收到的求职意向越来越稳定。我已经进入了多家公司的第二轮和第三轮面试,今天我终于接受了我第一志愿的录用通知。据我所知,这其中有几个原因,我想为你,这位应届毕业生,逐一分析一下。(另外,如果没有参加训练营,我永远也走不到今天,所以这篇文章并非要取代训练营。你可以把这些看作是一些策略,让你从那些不愿付出努力的毕业生中脱颖而出。)
专门化...
如果你目前接触过任何语言、框架、工具或其他东西,觉得它们更有趣,那就深入研究一下吧。我选择了前端,特别是 React/React Native,因为我从中获得的乐趣最多。人们喜欢看到你学得很好——你可以传授技能,但不一定有真正深入学习的动力。简历和技能清单上应该包含所有内容,但要以你选择的专长为重点。我被聘用为前端职位,但对后端职位也感兴趣,其中一家公司说,这是因为我在 React 方面表现出了天赋。
……但也要尝试不同的堆栈
我在学校学习了 Rails 和 React。之后我尝试了 MEAN 和 MERN,以确保我能将所学知识应用到新技术上。虽然我现在对 Angular 有点反感,但用这些新技术来学习并不太难,而且在我的简历上看起来也很棒。这也强化了学习新事物很快的理念,不需要 9 个月的入门时间。
测试你的代码(并编写可测试的代码)
我曾两次被要求评论我的 Github 代码库缺乏测试的问题,但两次面试我都没能晋级。这也是我第一次“带回家写代码”挑战失败的主要原因。巧合?我想并非如此。
在学校,我们所有的实验室都是围绕着用 Rspec 或 Jest 进行自动化测试而构建的。接触过测试驱动开发吗?当然!他们没教我们自己写测试。我们很多人离开时都觉得这是一个盲点,独自面对起来很可怕。你知道吗?对于入门项目来说,编写一些单元测试简直易如反掌。
测试在现实世界中无处不在,即使公司没有测试 50% 的代码库,他们也希望你觉得他们应该这样做。幸运的是,当某项工作需要大量开发人员参与时,少数人会承担起重任,这样其他人就可以轻松完成。现代测试工具的设计初衷就是让学习变得轻松。
学习编写易于测试的代码有点难。回到你的训练营项目,为每个功能编写详尽的单元测试。有些事情可能很容易——你的链接导航到正确的URL了吗?但你很快就会发现,有些代码根本无法单独测试。亲爱的读者,这很糟糕。从这篇优秀的博客了解更多信息。
数据结构和算法(DSA)
在求职过程中,你很可能会遇到算法题——一种类似谜题的题目。各级开发人员都在抱怨面试流程的这一环节出了问题。说真的,你不会每天都去解决这些小难题。我去 Flatiron School 的时候,我们只是略知皮毛;然而,DSA 是标准计算机科学学位的一部分,而了解 DSA 也经常被认为是计算机科学学生比训练营学员更受青睐的原因。
在我看来,学习 DSA 非常宝贵——能够在压力下选择合适的 DSA 确实证明了这一点。每个开发人员的工作不仅仅是提供解决方案,还要提供高效的解决方案,并且高效地提供高效的解决方案。如果你能快速地将任何问题分解成最有效的 DSA,你就能专注于更大的设计模式,或者解决其他低级开发人员代码中的低效问题。你将成为一名更高效的程序员。
话虽如此,对于初级职位来说,我遇到的问题还不算太糟糕。我练习了LeetCode 上的“Easy”面试题,直到我完全理解了每一个题目,这涵盖了我见过的 90% 的题目。其他题目可能来自初级以上的职位。
看看我那位聪明得有点眼花缭乱的朋友 Rylan Bauermeister 的文章:二叉树、链表。另外,学习如何从零开始实现一个哈希类。这个问题我多次提到过。
擅长香草
我将以 CSS 为例。在学校的时候,我主要使用 Bootstrap 和 Semantic 等框架来设计我的项目,因为它们部署速度快,而且看起来不错。但在早期的一次面试中,我把可堆叠列作为 Semantic 等重量级框架的一个优点,结果被我反驳了。这暴露了我从未深入研究过 Flexbox,对现代 CSS 的功能一无所知。
所以,我从一个电商网站上随机选取了一个基于卡片的页面,并用 React 和原生 CSS 重新创建了它。这花了我大约三天时间。你知道可以在原生 CSS 中使用变量吗?drop-shadow
用一个属性在卡片的四边显示均匀的边框怎么样?用它calc
来让尺寸大小动态化(或者说,任何动态的东西)?嗯,我现在知道了。而且,知道我可以在不需要框架帮助或负担的情况下做到这一点,让我作为一名前端开发者更加自信。
饮水源头
选择一个你已经熟悉的框架,想想哪个功能在你上手时比较棘手。(具体哪个框架并不重要。)现在打开它的 Github 仓库,看看它的实际功能。通过传递不同的输入来确认。试试看!一个广泛使用的开源框架的源代码很可能已经格式化,以提高可读性。也许这个功能没有完善的文档——那就贡献一下 README 吧!我保证这会让你更有信心。我之前在某个 Google Cloud 文档上提交的 PR 申请已经获批,这极大地提升了我的自尊心。(顺便说一句,大家人都特别好!)
同样,了解你所用语言的编译器也能让你变得更好。例如:在 JS 中创建相同的对象模型可以使搜索这些对象的速度提高 7 倍。
在我们的层面上,你不需要完全了解框架源代码或编译器。你应该表现出你知道它们的存在,并且能够轻松地用它们来思考。
可怕的行为问题
这些问题没法回避。你几乎每次都得回答类似“那么,请讲讲你在工作中和别人意见不合的经历”这样的问题。查阅一下STAR或CARL技巧来回答这些问题,写出提纲,然后练习。反复练习,直到你能简洁地回答,并且能够表明你 (a) 是人,(b) 能够有效地沟通情绪化的情况,(c) 不会是一个令人讨厌的混蛋,(d) 关心如何做好事,造福周围的人。这就是他们想知道的全部。这很合理,对吧?我的意思是,我就是想和这样的人共事。
你的求职信和简历
提交冷门求职申请时,写一封大约三句话长的求职信。提及职位空缺中的一些内容,以及你为什么会被它吸引。正如《洋葱报》的一位天才曾经宣称的那样:“学生感谢教授教会他假装不在乎。” 不要对每位员工进行网络跟踪,也不要记住每一份补丁说明。他们只需要知道你愿意让他们成为你身份的一部分。
在简历中用一小段话来赞美自己——不仅要介绍你的编程能力(这很重要!),还要介绍你从其他生活经历中积累的所有技能。当然,要用专业术语。任何可以理解为项目管理、团队沟通、创造性和技术性解决问题的能力——这些都对你的新职业至关重要。在过去的工作经历中也强调一下这些方面。
找到你生活中的那些节点,让你觉得这一直是你的终极目标,并且你一定会成功。它们就在那里,我保证。从训练营毕业证明你能快速吸收大量信息!如果你缺乏工作相关技术栈的经验,这可以帮助招聘人员克服困难。我认识一位开发人员,他整个训练营都是用 Python 完成的,之后就因为强调了这一点而获得了 Ruby 的工作机会。
现在 。 。 。
这看起来好像有很多事情要做。确实如此。我花了大约三个月的时间。我有点手忙脚乱,但如果你比我更专注,你大概可以在两周或更短的时间内完成所有事情。以一般的求职过程来看,这还算不错。而且我认为完成部分或全部这些事情对你来说只会有好处。
文章来源:https://dev.to/256hz/so-you-ve-finished-bootcamp-are-you-employable-1n9l