我是如何成为一名没有大学学位却能赚到六位数薪水的软件工程师的
在我成为一名没有大学学位的软件工程师的过程中,我遇到了慷慨的人,他们不遗余力地帮助我。
我不是一个白手起家的人。
为了达到今天的成就,我必须站在巨人的肩膀上。我写这篇文章的目的是为了回馈他们。
软件工程彻底改变了我的生活。我不仅能为家人提供稳定的生活,还能从事充满挑战、让我找到目标的工作。
我尝试将我的个人故事与一些提示(通常以粗体显示)交织在一起,以准确展示我所经历的一切,并为您提供一种浏览所有这些脑力倾泻的方法。
我还从我整个软件生涯中进行的所有采访中汲取了灵感。
我的目标不是激励你,而是向你表明我在任何方面都不是独一无二的,如果你选择走这条路,所有这一切都是可能的。
希望你喜欢。🙂
早期生活
我长大后想做的事情随着每个季节的流逝而改变。
我最初想成为一名足球运动员,然后是厨师、飞行员、理论物理学家、天文学家、中情局特工、投资银行家、宇宙学家、风险投资家等等。还有很多很多。
令人兴奋的选择实在太多了,根本无法只选择一个!
摄影:Yoyo Hins
在高中时,我找到了我的真爱:创造事物。
我建立了一个健身网站、一个股票交易社区、一个由用户撰写、整理和评论新闻的新闻网站,以及一个每月发布新书的在线图书社区。
我喜欢创建新企业的每一步,无论是建立网站、处理法律事务、客户服务,甚至是会计!
但是,当你十几岁的时候,不知道自己想做什么或去哪里,而你的家人希望你遵循标准道路时,会发生什么呢?
你做的和大多数人做的一样。
你申请大学,希望能找到一份好工作。
我选择攻读金融学位,主要是因为那是我父亲的专业,我只想让他感到骄傲。而且我天生就对金融感兴趣。
大学期间,我不断做一些业余项目。这对我来说始终如一。
长话短说,我很快会写到,我得到了一个绝佳的机会,但我决定最好还是暂时放下学业。在这段时间里,我学到的东西远比学校所能提供的多得多。
我理解它在成年人生活中的目的和束缚,但我很难看到它的价值。
于是,我进行了多项努力,不断充实我的人生履历,最终让我认真审视软件工程。
新发现的爱好——编程
摄影:Clement Helardot
从十几岁起,我就对计算机和互联网着迷。
我喜欢摆弄 WordPress,摆弄那些我完全不懂的 PHP 代码。我喜欢写一些不带语义的 HTML 代码,还喜欢用一些糟糕的 CSS hack。
我从未从职业角度考虑过这个问题,也没把开发应用程序和职业联系起来。我对此一无所知。但我一直想学习编程。
就像很多读者一样,我突然被各种编程训练营的广告轰炸了。我的意思是,我以前从未见过这样的广告。
我也很难相信所有的炒作。
你是说我参加个两三个月的训练营就能找到一份7万多美元的工作?有些甚至声称年薪六位数!
我身处什么样的世界,竟然只需要这些?
到了那时,在互联网时代,我已经是个老手了。我知道,对于大多数人来说,在几周内学会像编程这样难以掌握的东西并达到令人满意的熟练程度是不现实的。
我决定尝试自学编程;Udemy 是我们购买的所有未完成的课程的存储地。
我花了很多时间漫无目的地寻找信息,希望我学到的是正确的东西,跳过“困难”的东西,并从一个教程跳到另一个教程。
自学的问题在于你不知道如何优化你的时间。
您不知道自己所学的内容是否有必要,或者您是否拥有合适的心理模型来理解所学内容。
通过 GIPHY
掌握基础知识
在这一切混乱之中,我找到了Launch School。
这个地方从来没说过掌握编程基础知识很容易。他们只会告诉你这很难。
他们几乎试图阻止你注册,因为这会很困难,而且需要很长时间。这是一个以不玩弄最新框架/语言为荣的地方,而是追求真正重要的东西——基础。
这对我来说就像天籁之音。
因此,我为这个项目倾尽了所有力量。我尽我所能,超越了一切可能。
我投入了数千个小时,并借助移动应用程序追踪每一分钟。
有衡量才有完成。
所有这些并不是说你不能自学编程,或者不能使用一些开源资源,比如 Free Code Camp 或 The Odin Project。
事实上,很多人都这么做!很多人没有办法,所以他们没有其他选择。
我唯一的建议是尽量不要陷入“快速学习致富”的计划,专注于基础知识而不是最新的框架,不要放弃。
我也会公开支持遵循上述资源之一,因为它们已经过实战检验,而且因为你不知道你不知道什么。
摄影:Nihal Demirci
与其他人相比,您在此步骤上可能需要更少或更多的时间。
学习编程通常与你以往做过的任何其他事情都截然不同,所以需要一些时间。只要保持昂扬的斗志,需要时就休息,勇于失败,问世界上所有的问题,再失败一次,不断积累耐心,永远不要放弃。
我向你保证你能做到。
我见过各种各样的人学习如何编程。
你也可以!
打造令人印象深刻的项目
掌握编程的基础知识使我有信心学习摆在我面前的任何技术。
它让我相信自己能够解决超出我年龄的工程难题。自信加上学习编程所需的纪律,这本身就是一个危险的组合。
因此,我和通过编程认识的两个最好的朋友在 Launch School 的指导下,决定构建一个解决方案来解决分布式系统故障。
这是我们的白皮书,我们在其中深入解释了问题和解决方案。
建立一个展示您的技术知识的项目至关重要。
这是您闪耀光芒的地方。
这是你在面试时要讨论的内容。所以一定要花时间在这里。
大多数人开发的应用都是一些简单的基础应用,比如一些待办事项应用,或者一些类似应用的克隆。我建议你花些时间研究一些激动人心且具有挑战性的问题,如果你相信自己能够做到,就去解决其中一个。
这里没必要写几千行代码。我见过的一些最有趣的项目其实都很简单。
他们让问题自己说话。
也没必要选择一个极其困难的问题。只要它易于处理就行。
您还希望其他人了解您正在解决的问题,如果您解决的问题非常小众,那么没有人能够理解。
最后,我建议您花一些时间撰写一份深入的技术案例研究,向读者介绍您所面临的问题以及您的解决方案如何融入总体方案。
大多数人永远不会花时间去查看你的代码,但他们会花时间浏览你的文章。因此,请将所有这些信息打包成一个整洁有序的格式。
让它变得漂亮,因为正如您可能知道的,或者在您的软件工程之旅中了解到的,您可以拥有解决重大问题的最佳代码,但如果您的 UI 和 UX 低于标准,人们可能会离开或寻找替代方案。
在这个领域,您的时间投资将获得丰厚的回报。
摄影:Yannick Pulver
准备和工件
实践
我断断续续地花了几周时间练习 Leetcode 上的算法问题,因为有些公司喜欢这种折磨,让你当场回忆起如何反转二叉搜索树。
然而,我并没有纠结于这部分,因为我知道,无论我在这里花多少时间,我都不可能变得像我希望的那样优秀,而且这并不是我所擅长的。
此外,我面试过的很多公司要么没有 Leetcode gotcha 风格的问题,要么有带回家的项目,要么要求我深入讨论我过去创建的项目。
整个过程的一部分是学习如何最有效地安排你的时间。某些活动比仅仅解决数百道 LeetCode 题目能带来更大的回报。
不过,最好还是花点时间在这里。
另外,每次解决问题时,尽量和面试官聊聊你的思路,如果可能的话,试着和面试官的朋友一起解决这些问题。
这里的目标是模拟与面试相同的条件。
我非常相信希腊诗人阿尔基洛科斯曾经说过的一句话:
我们没有达到我们所期望的水平;我们落到了我们所接受的训练的水平。
您不想参加面试却忘记如何映射数组……
有些公司还会问系统设计类型的问题。我发现最适合这类面试的资源是:
我去过的大多数公司都没有让我参加系统设计面试,但了解如何从理论上设计当今世界上一些更复杂的系统将使你成为一名更优秀的工程师。
这也将给你很大的信心去参加面试。
您还想练习回答行为类型的问题,例如,告诉我您必须克服逆境的经历,或者您在下一个角色中寻找什么?
我研究了这类问题,并一一作答。我甚至把很多问题的答案都写下来,以便牢牢记住它们。
我们又一次跌落到了训练水平。
你肯定不想毫无准备地当场编造谎言来应对这些问题。所以,花点时间思考一下各种情况,并准备一些可以随时参考的例子。
这些问题在面试中总会重复出现,或者是你之前看到的问题的变体,所以我发现列出一份我经历过的真实场景列表很有帮助,可以把事情与这些例子联系起来。
摄影:Caleb McLean
用你的简历来支持它
在花了一年半的时间学习编程之后,我准备全力投入就业市场。
我花了很多时间精心制作简历来展示我的所有技能并突出我的成就。
我喜欢将简历视为一篇科学论文。
这里不宜空谈。要直截了当,陈述事实,并尽可能提供佐证。即使有人看你的简历,他们也只会花很少的时间,所以切中要点至关重要。
众所周知,我们大多数人都没有多年的专业工程经验,而且有些职位要求你拥有 56 年的 Javascript 经验。
这完全没问题。我们仍然有很多方法可以脱颖而出。
首先,一定要吸引大家对你项目的关注,因为这是展示你技术实力的地方。大多数路都应该通向你的项目。
提及你之前的工作或经历,但不要写得太长,要简洁。
现在你可能会问:“加布,你是如何绕过简历中令人厌烦的教育部分的?”这是一个很好的问题。
我选择说明我上的大学和在那里的时间。我没有说我拥有学位,只是说我的学习重点是什么。
我的策略是展示我确实接受过一些大学教育,如果有人问起,我会解释为什么我没有完成学业。
然而,你们中的一些人没有受过大学教育,这也完全没问题!
我见过很多高中生成为软件工程师,甚至听说过一些从未高中毕业的人坐在沙发上编程就能获得报酬!
如果是这种情况,我可能会列出一些证书、你在高中时参加的可能帮助你脱颖而出的课程,以及你为学习如何编程而完成的任何课程。
如果您发现简历中的某些内容不太好,请更改、删除或用其他内容替换。
我们告诉自己,所有这些限制性信念都是没人会雇用我们的原因,这完全是无稽之谈。
不要再试图想象你面前的伟大而繁荣的未来。
写下你所能写的,用事实支持,然后继续前进!
摄影:Wolfgang Rottmann
尽量把简历控制在一页纸以内。这样可以省去很多不必要的内容,方便其他人轻松浏览。
综上所述,我最终想出了一个这样的简历版本。它不像市面上那些简历那样浮夸。没有颜色、图片、进度条,只有关于我所取得成就的事实。它很有效。
记住这句话,伟大的艺术家窃取……
创建网站
花点时间创建你的个人网站。它不必是自切片面包发明以来最伟大的发明。
包括我自己在内的许多其他人遵循的格式是在您的网站顶部包含一个个人资料图片,在其下方有一个简短的个人简介,一个展示您的主要技术项目的部分,一些简介和图片展示您使用一些流行框架构建的一些小项目,以及一些号召人们关注您的主要项目和简历的行动。
切勿在你的网站上放所有内容的链接。你的目标是获得工作,所以要引导浏览者关注那些对你有帮助的内容,例如你的主要项目和简历。
这是我的个人网站(我知道它需要一些工作)。
申请
在深入探讨申请流程以及是什么帮助我取得今天的成就之前,我只想向 Launch School 的 Capstone 项目的人们致以诚挚的谢意。
通过 Launch School 的核心课程,我掌握了基础知识,而参加他们的 Capstone 课程则帮助我获得了所需的信心和知识,不仅让我获得了面试机会,而且在面试中表现出色,并在日常工作中取得成功。
我永远感激他们,我今天所取得的成就很大程度上是因为他们为我所做的一切。
值得关注的公司
花点时间思考一下你的目标是什么至关重要。例如,你是想找前端、后端、全栈还是特定领域的职位?不过,我认为你不应该一开始就对领域设限。
决定您是否对初创公司或大公司有任何偏好。
也许你曾经在初创公司工作过,喜欢身兼数职,快速行动。另一方面,你或许更喜欢稳定的环境。
您希望您的工作条件是什么样的?
例如,您是否有兴趣在办公室工作,或者您只寻找远程或混合角色?
这些问题的答案将决定你的搜索范围。但是,再次强调,你不应该把范围太窄,因为你的最终目标是找到机会。
照片由 Slidebean 拍摄
从根本上来说,你应该努力进入一家以工程为中心的公司。
我指的是工程技术是利润中心、赚钱机器的公司。因为这类公司非常重视工程师。
请记住,如果您从法国餐厅的洗碗工做起,那么成为米其林星级厨师要比从麦当劳的汉堡翻转工做起更容易(无意批评在麦当劳工作或曾经工作过的任何人)。
因此,进入正确的位置会对你的职业发展轨迹产生巨大的影响。
进一步说明一下,在一家为金融机构开发软件的公司工作比在一家造纸公司担任工程师更容易开始你的职业生涯。
招聘人员
除非他们是公司招聘人员,否则我会尽量避免联系他们。我相信肯定有优秀的招聘人员,而且他们乐于助人。只是我运气不太好。
查找公司
您可以在很多地方找到可以申请的公司。
我使用了 Twitter、LinkedIn、AngelList、Hacker News、Glassdoor、RemoteOk 等。
缺的不是公司,而是优秀的工程师。所以你找工作不会有问题。
但所有职位都要求五年工作经验
无论如何都要申请。
求职信
人们总是在求职信上反复斟酌。我认为你应该尽你所能。
我给每家申请的公司都写了一封求职信。
我把求职信写得非常个人化,没有那种“致相关人员”或“亲爱的史密斯”之类的废话。
我通常会在求职信的开头谈一谈与这家公司的联系或感激之情。然后我会描述一下我对他们所做工作的印象如何。最后,我会在另一段中谈谈我最近的工作,以表明我并非平凡之人。
以下是我发送给某公司的一封实际求职信:
嘿 Linear 团队!
我叫加布里埃尔,是佛罗里达州西棕榈滩的一名软件工程师。自从去年年初在 Hacker News 上看到 Linear 以来,我就一直在关注它的进展。这款产品给我留下了深刻的印象,我觉得彻底改变问题跟踪方式的想法真是太棒了!产品的卓越品质也让我着迷。从实用性到前端的设计和呈现,一切都堪称世界一流,这让我不禁想到:“我真的很想参与开发一款像 Linear 一样,在所有用户的日常生活中产生巨大影响、令人振奋的产品。”
我最近与他人合作创建了 Campion,这是一款基于边缘的无服务器中间件,用于为同步调用的分布式服务实现熔断功能。我拥有多年的工程经验,并且作为创始人,我的整个职业生涯都致力于科技行业,并拥有一位成功的退出和增长总监。如果可能的话,我很想有机会面试高级全栈工程师的职位。非常感谢大家!
https://gabrieldealmeida.com
https://gabrieldealmeida.com/images/Gabriel_De_Almeida_Resume.pdf
https://github.com/gabedealmeida
https://www.youtube.com/watch?v=jYcF36WyYWs&feature=emb_title
我坚信,花时间撰写真诚求职信的候选人会比没有花时间撰写求职信的候选人得到更多的关注和考虑。
我们的目标是尽一切可能使自己与众不同。
我们与其他候选人不同。我们花时间掌握了基础知识,花时间构建了项目,深入撰写了项目介绍,设计了一个很棒的网站,现在,我们展现出对项目的用心,从而脱颖而出。
摄影:路易斯·尤西比奥
这是一个数字游戏
你申请的地方越多,收到的回复就越多,参加的面试机会也就越多。就这么简单。所以别再犹豫了。
每天在多个地方涂抹。
机遇往往来自最意想不到的地方
您可能有一天在浏览 Twitter 时发现某位创始人发布了有关其公司的信息,因此您决定在 Twitter 上向他们发送一条消息。
这次交换的个人积分很高。你是他们中的一员,而不是一个在网站上填写蹩脚表格申请的无名小卒。
因此要保持警惕并尝试不同的事情。
机会也可能来自你最初并不感兴趣的公司。保持开放的心态,尽量不要轻易排除任何可能性。
采访
摄影:Camylla Battani
期望
参加面试时你唯一的期望就是希望学到一些新东西并且享受乐趣。
就是这样。
不要妄图打败任何人或取得任何成就。做好心理准备,你的成绩会随着你的训练水平而下降,如果你训练得足够好,无论如何你都会取得好成绩。
再次,零期望。
结构
面试通常都很相似。如果你参加过一次,通常也就参加了所有的面试。
通常会有多轮面试,但有些公司选择进行技术面试,有些则不进行,有些公司选择进行系统设计面试,有些则不进行。
第一轮面试结束后,一些公司希望你花一整天时间与他们一起完成其他轮次的面试,而其他公司则希望与你一起工作一天或几天,看看你是否适合。
我在这里想要表达的是,这些问题在不同公司之间差异很大,但问题的风格和格式以及对你的期望仍然相对相似。
为了让您了解它通常是如何运作的,以下是我通常的做法:
第一轮时
长:通常为 15-30 分钟
目的:确保兴趣一致
面试官:内部招聘人员/人力资源人员或技术人员
- 说说你自己
- 谈谈你的项目
- 他们会深入了解你的背景和项目
- 您可以提出任何疑问
第二轮 时
长:通常 30-60 分钟
目的:评估您的技术能力
面试官:很可能是技术人员
- 通常,面试官会要求你解决一些问题,以此来强调你面试的职位。例如,如果你面试的是前端或全栈职位,你可能会被要求使用 React 之类的前端框架完成一些工作。如果你面试的是后端职位,你可能会被要求解决一些通用问题,比如操作数组的值并对结果进行排序。
- 您可能还会被问到系统设计问题
第三轮 时
长:通常 30-60 分钟
目的:行为问题
面试官:技术职位或来自不同部门的多位人员
- 行为问题
- 你问他们问题
第四轮
时长:通常 15-30 分钟
目的:是否录用
面试官:技术人员或人力资源人员
- 是否向您提供报价
学习如何谈论自己
哈维尔·阿莱格·巴罗斯摄
学会谈论你以前的经历以及是什么让你走到了现在的境地是非常重要的。
每次面试你都会被要求自我介绍。所以,花点时间把你的故事写下来,并养成经常重复的习惯。
我在接受采访前会反复练习我的故事。这是因为我们在采访中经常会忘记一些事情,或者会掩盖一些重要的背景信息,所以在脑子里有一个清晰的信息能让你深入了解你的本质。
这里需要强调的一点是,你不应该连续15分钟谈论自己。我参加过一些面试,面试官大部分时间都在谈论自己的背景。
请记住,我们都是人。
面试官的时间有限,而且通常会问不止一个问题。你既要简洁,也要详细。
我发现最佳时间是 3 到 5 分钟之间。
前任:
你好,我叫珍妮!
我出生在华盛顿州西雅图,三年前搬到了纽约市。
我对电脑的热爱始于我 11 岁时父母为我和我的兄弟姐妹购买了第一台电脑。
从那时起我就迷上了!
我从小就玩电脑游戏,这让我更加深刻地体会到这些已经占据了我们日常生活的机器所能发挥的作用。
高中毕业后,我本来可以选择就读华盛顿大学,但我决定最好还是暂时搁置,因为我想在经济上帮助我的父母。
我有幸担任一家服装品牌的数字营销人员,这让我了解用户行为以及什么是优秀的 UI 和 UX。
我还有机会在当地一家杂志社担任编辑,这让我学会了如何更加耐心,并在最终产品完成之前多次修改我的作品,就像编程一样。
我周围还有世界级的编辑,他们教会了我掌握一门手艺所需的努力和毅力。
辞去上一份工作后,我花了一些时间思考我想要的未来是什么样的。
我记得作为一名数字营销人员时我多么喜欢编辑 HTML 和 CSS,以及作为一名编辑时我多么着迷于清晰度和逻辑过渡的必要性。
所以我决定花时间掌握编程的基础知识。我知道,如果我真的想出名并创作出高质量的作品,我不会在一个周末内学会它。
所以我花了去年的时间来磨练我的技术。我学习了所有关于前端开发的知识。
最终,我花了六个月的时间构建 ReuseComponentJS,这是一个 JavaScript 框架,允许用户在任何 JavaScript 前端框架中轻松创建组件并在不同的代码库之间共享它们。
如果您同意的话,我很乐意进一步讨论这个问题,但我要注意时间限制。
哦!希望以上内容能帮助你了解如何组织自我介绍,并尽可能地展现自己最好的一面。
我们设法将所有内容与软件工程联系起来,谈论我们对掌握基础知识的兴趣,并触及简历中出现的所有内容(想象一下我们有一份简历)。
这个人甚至没有上过大学,但我可以向你保证,他们会收到录取通知,而且他们缺乏大学教育的情况可能永远不会在面试中被提及。
这个介绍的美妙之处在于你可以把它给任何人,他们都会了解你是谁。
您还可以提供空间来最终扩展您的主要个人项目。
你的目标应该是推动对话朝着这个方向发展。这是你达成协议的方式,也是你证明自己值得参与谈判的方式。
然而,如果你要深入研究你的主要个人项目,那么你就不会像与公司 CTO 那样,与非技术角色的面试官深入探讨技术深度。
也就是说,您应该能够向五岁的孩子解释您的项目并让他们了解这个想法。
这里需要指出的另一点是,你不应该回避你的独特性。
人们喜欢谈论各种各样的事情。
能和拥有丰富多彩、精彩经历的人一起工作,比和那些没有经历的人一起工作酷多了!所以,聊聊你对烘焙的热爱,聊聊你如何梦想成为下一个迈克尔·菲尔普斯,或者聊聊你的童子军岁月吧!
面试官
摄影:Mike Kiev
大多数面试官要么是技术人员,要么是招聘人员/人力资源人员。
他们和你我一样,都是普通人,也没什么特别之处!有些技术面试官的知识甚至比你少得多,而有些面试官甚至还是各自领域的获奖者。
通过技术面试官,您将能够展现您对工程的热爱和过去的经历。
对于非技术面试官,你必须向他们全面概述你的背景,并重点说明你使用过和构建过项目的所有语言和框架。
这是因为非技术面试官通常接受过培训,可以听取特定的技术栈和关键词,并且只有当您说出他们想听的内容时,他们才会让您进入下一轮。
即使你已经告诉他们无数次,你有信心在几天内学会 Vue 并能够胜任工作,他们仍然会这样做。
有问题
总是准备一份要向面试的公司询问的问题清单。
这些可以与你关心的事项相关,例如公司如何确保包容性文化。在谷歌上可以找到很多与公司相关的优质资源。
我建议你列出一份至少包含十个问题的清单,以便在面试时参考。
你不想成为一个不问问题的人。
面试官,包括我自己,经常会留出相当多的时间让面试官提问。
请记住,您提出的问题类型也可以让您脱颖而出。
保持积极
摄影:Caju Gomes
如果您必须从整篇文章中只记住一件事,那就是在面试时要保持积极的态度并面带微笑。
面试官可能不会记得你在面试中说过的大部分内容,但他们会记得你给他们的感觉。那么,你是一个积极的人吗?他们喜欢和你共事吗?你让面试过程轻松愉快吗?
重要的不是你说了什么,而是你让他们感觉如何。
我亲眼见过一些人,他们在面试过程的每个部分都表现出色,他们有最好的背景,最好的代码,但参加面试时却非常悲观,非常严肃,一次笑容都没有。
我会迫不及待地想要和他共事吗?我会在最终的招聘决定中全力支持他吗?
可能不是。
对遇到的每个人都友善也很重要。我以为,在我接触的每一家公司里,至少都会有一个人因为各种原因不喜欢我。所以我的工作就是让所有其他人都真正喜欢我,并在我做决定的时候愿意为我争取。
说到底,这只是两人或多人之间的对话。所以,做你自己就好,微笑,大笑,适时开玩笑,玩得开心就好!
详细
你肯定不想在面试中只给出“是”或“否”的答案。这种情况我见过的次数多得你都不敢相信。
另一方面,你也不想一直喋喋不休。我也经历过几次。
这里的目标是找到一个平衡点。
服装
不要像刚起床一样光着身子出现。没必要穿得像商务装,但也不要看起来像个邋遢鬼。
参加每一次面试
当你开始收到回复并开始安排面试时,你可能会感到有点不知所措。这很正常。如果你收到的回复不多,也没关系。
但是,无论外展活动的结果如何,您都应该回复每个人,并且如果可能的话,您应该参加每一次采访。
通过参加这些活动并向世界展示自己,你将学到很多东西。
我都数不清有多少次,一次面试中的经验教训在另一次面试中帮助了我。到最后,你一定会成为面试高手!
面试后给他们发邮件
每次面试和公司内部阶段结束后,都要给面试官发邮件感谢他们。这是一件能让你脱颖而出的小事,我每次参加面试都会这么做。
这很重要。
享受收到的号码
摄影:Sander Weeteling
你只需要一家公司答应。一家。所以,把拒绝当早餐吃掉吧。
记录你收到了多少次拒绝,并努力使这个数字越来越高,因为这意味着你正在努力。
大多数拒信都是通过自动邮件发送的。有些拒信会在第一次面试后出现,这很好,因为你不用在那家公司浪费时间了。
其他拒绝可能会在之后的面试过程中出现,例如技术面试或行为面试。所有这些都完全没问题,你肯定会遇到。
所以,让我们提高新秀被拒绝的数量吧,宝贝!
多次采访
毫无疑问,总有一天你需要同时应对多个面试和公司。
我建议每天安排的面试不要超过四次,技术面试也不要超过一次。
技术面试非常耗时,会消耗很多精力。在两次面试之间给自己留出一些时间,让自己恢复精力。
别忘了把这些面试记录下来。比如,我用了笔记应用 Notion,做了一个表格,记录了我申请过的所有公司、面试过的公司、面试阶段以及结果!另外,一定要把即将到来的面试添加到日历里!
多次面试的经历会给你带来巨大的自信。你不再觉得需要在面试中全力以赴。
如果你搞砸了其中任何一家,你心里明白,明天将是不同的一天,而且你还有多家优秀的公司可以与你洽谈!
它还允许你在面试时说你目前正在与多家公司洽谈,这有时有助于让公司加快行动,因为有些公司认为你有足够的时间等待回复。
谈判
摄影:Mika
首先我想说,有很多关于薪资谈判的优秀资源,只要谷歌搜索一下就能找到,你应该去看看。这些资源背后都有真正的科学依据,我不会假装我的方法是最好的。
有时面试官会觉得在面试过程的早期就询问你的期望薪资范围很可爱,但我不太喜欢这类问题。
它们会让你处于不利地位,一些公司会利用这一点在面试中占据优势。
我通常会这样回答:“我现在还不太愿意透露具体数字”,或者“对我来说,有比达到特定的薪资数字更重要的事情,比如公司的使命和适应性。”
有时,如果我不确定是否合适,或者我的面试即将结束,我可能会这样说:“我正在寻找一个基本工资在数字-数字(例如:10 万美元=12 万美元)范围内的职位。” 范围会给你回旋余地,而不会强迫你进入特定位置。
你可能会问,我怎么知道这个范围呢?你可以查找该地区的平均工资。你可以去 GlassDoor 看看是否有人发布过这家公司的薪资数字。你可以选择一个你觉得公平的数字,也可以选择一个你觉得不太合适的数字。
我认为,理想情况下,他们会提前告诉你薪资范围,或者直接给你一个范围。我更喜欢这样,因为我觉得这样比较公平,而且不会造成一种文化,让你觉得和你做同样事情的同事的薪水比你高得多。
但有时他们不会,这完全没问题。
在面试结束时,如果他们喜欢你,他们会给你一个报价,而且我见过有人仅在这些薪资谈判中就获得了额外的 3 万美元加薪。
我处理这些问题的方式是感谢他们的提议,告诉他们我非常享受整个过程并与团队见面,最后,我告诉他们这是一个重大的决定,我想仔细考虑一下,我想和我的家人谈谈。
我收到过报价的每家公司都对此表示完全同意。
如果还有其他公司offer,我会花几个小时考虑一下哪家公司最吸引我。然后,我会给他们写一封邮件,再次感谢他们提供的机会,告诉他们我有多份offer,最后说我很想加入这个团队,但唯一的问题是薪资,我会给他们一个适合我的薪资。
如果我没有收到其他录用通知,我会告诉他们我正在接受多家公司的面试,如果他们提供的薪水比最初给我的薪水更高,我愿意加入他们的团队。
必须记住的是,您也不想浪费时间去面试那些提供比您愿意接受的薪水低得多的公司的职位。
你不应该对协商薪水感到难过。
很多公司仍然热衷于玩这种游戏。他们通常有一个薪资范围,但不会透露具体数字。
这是你的职责,去解决这个问题。
家庭作业项目
有些公司更愿意让你做一个家庭作业项目,而不是进行技术面试。
我以前被要求开发一些简单的应用程序和 API。他们通常会给我几天时间提交这些。
仔细听。你必须脱颖而出。
要想在这里脱颖而出,你必须竭尽全力。大多数人都会敷衍了事,不会付出任何努力。
那不是你。
你要确保它是这世上最美好的事物。你要完善它。你要确保你的代码简洁明了。你要记录你所做的事情。
你要竭尽所能,让自己脱颖而出。
你只需要一个“是”
通过 GIPHY
请记住,你只需要一个“是”。就这么简单。只需一个。
睡觉
这个过程可能会对你造成影响,就像对我一样。
我发现很难停止考虑申请职位,并且总觉得自己可以做得更多。
关键在于要意识到,这是一场马拉松,而不是短跑。休息一下。给自己一个硬性暂停的时间,无论发生什么,都要关掉电脑,放松一下。
享受旅程
整个过程相对较快。
几个月后,你就会在一家伟大的公司工作,解决那些难以想象的问题。而这一切都只是昙花一现。
所以玩得开心点吧。
找到工作后
摄影:Eilis Garvey
继续学习
我喜欢这个领域的一个原因是它有持续的学习机会。这里永远有各种各样的主题和漏洞可以让你钻研。
所以,仅仅因为你是一个赚大钱的球员并不意味着你应该停止学习。
软件行业也瞬息万变。因此,保持与时俱进至关重要,而学习就是其中的途径。学习的方式可以是书籍、视频、课程等等,不一而足。
构建副项目
时间是线性的,但经验却不是。许多公司认为,评估候选人的最佳指标是其多年的专业经验,但这是一个糟糕的指标。
比较并对比以下两个人:
甲是一名已经从事专业工作五年的人,但她所做的只是被要求做的工作,没有做其他任何事情。
B 先生已担任专业工程师两年,但已构建了六个难度各异且涉及多种技术的副项目。
当然,A 看起来资历更老,但 B 的经验更丰富。要像 B 那样。
概括
我知道。这里面有很多东西要解开。我只是有很多东西想分享!
下面我概述了我认为在您踏上这段旅程时需要注意的最重要的事情:
- 掌握编程基础知识
- 构建一个令人印象深刻的项目并撰写相关文章
- 练习算法和系统设计问题以及行为问题
- 创建一份展示你的技能和成就的简历
- 创建一个网站并引导所有人参与你的项目和简历
- 申请时,写好求职信,重点关注以工程为中心的公司,并申请尽可能多的公司。
- 面试时,除了玩得开心和学到新东西之外,别抱有其他期望。准备好介绍自己,保持积极乐观,讲解细节,积极提问,着装得体,参加每一次面试,面试结束后给面试官发邮件感谢,把被拒当早餐,愿意协商,然后好好睡觉。
- 享受旅程
下一步
我打算继续钻研我的手艺。我的目标是不断学习,并通过个人项目挑战自己。世上还有那么多精彩的事情!
我不太擅长创作内容。我喜欢消费。不过,我最近的目标之一就是记录这段不可思议的旅程中我学到的东西。如果你对此感兴趣,可以在Twitter上关注我🐣。
本文最初发表于我的博客“六位数工程师”上。
文章来源:https://dev.to/gabedealmeida/how-i-became-a-software-engineer-making-six-figures-without-a-college- Degree-1h2g