介绍
最近半年以来,我一直在积极指导开发人员,包括新手和有经验的开发人员。我发现,所有开发人员最关心的问题之一通常都是寻找工作。
如果你已经被录用了,很有可能你经历了一个令人精疲力竭的过程。有时候甚至一想到需要再次经历所有这一切网站编辑面试技巧,就会让人感到望而却步。
如果你正在寻找你的第一份工作,或者一个实习机会,或者想更换一份新的职业,那么这个过程就更加可怕了。
你需要从哪里开始?你需要准备什么?有什么地方可以做得更好些?
在写这篇文章的过程中,我希望创建一个广泛的指南,让人们能够轻松地走过这段求职旅程。
第一步 - 准备
这个阶段主要是为你的求职申请奠定基础。这些都是人们能想到和知道自己应该具备的典型东西,但是可能他们不太知道如何增强它们,以提高自己的成功机会。
每个人都需要一份好的简历。
作为一个读过很多简历的人,我逐渐明白了对它们进行微调的重要性,使它们变得引人注目和简洁明了。你不会相信有的简历长在5页,用了8号字体。我可以负责任地向你保证,对这样的简历,我不会读完第一页。
毫无疑问,简历中最困难(但最重要)的部分之一是个人陈述。它应该反映你的个性和你的目标职位的角色相关性。这样做的目的是要赞扬你自己,但不是自吹自擂…比如,我会这样写:
“我是一名经验丰富的工程师和人事经理,在团队领导/管理职位上工作五年以上。不遵循传统的路线进入科技领域,给了我无与伦比的同情心,让我能够/愿意指导所有技能水平和背景的人。在工作之余,我积极指导新的开发人员,教他们如何在工程领域中起步和获得进步,这是让我感到激情澎湃的一项事业。”
简历的其余部分将详细介绍你的所有相关经历,无论是现实生活中的付费经历,还是你在网络上做过的事情。
如果你以前没有做过开发人员,开源工作可能是一件非常有帮助的经历,值得放进你的简历里。
另一方面,你过去所有做过的工作都是相关的,即使它们不是技术领域。沟通,团队合作,客户服务,等等,都是相关的。
求职信和个人陈述一样难写,但也是非常重要的。
如果你通过一个招聘人员(我们稍后会讨论)来求职,他们往往不会要求你写求职信,但是,如果你是直接申请,你始终应该写一封求职信。即使他们说这是可选的。
我建议你根据你申请的工作要求写这封求职信。我有一个主求职信模板,当我对我要求职的公司有更多的了解后,我再对它进行编辑。
下面是一个求职信的例子网站编辑面试技巧,这份求职信是基于申请一个类似于我现在的职位:
“我寄上我的简历是为了申请这个职位空缺……
我在团队管理方面的背景包括四年在一家通风设备公司担任产品经理,在实现梦想并进入软件行业之前,我负责管理一个由20名管道工程师组成的团队。自那以后,我就成为了一名首席开发人员,但我总是忽略了指导和帮助个人成长的作用。
正因为如此,我在2018年开始指导初出茅庐的开发人员,并抓住机会成为我目前工作场所的团队经理,这是一家领先的数据科学咨询公司,提供R、Python和Java开发服务。在这里,我在公司开发资源管理上扮演了一个不可或缺的角色,在为公司实现战略转变,成为一个更注重产品的公司这一目标上,我发挥了重要作用。
最近,我与人力资源和开发部门密切合作,制定了一个工程师职业框架,使开发人员能够更清楚地了解公司看重的特征和技能,从而促进职业发展。
我一直热衷于寻求新的挑战,能为一家积极提供开创性服务、高度重视员工文化和身心健康,并帮助其极富才华的工程师发挥潜力的公司工作,我将不胜荣幸。”
你可以看到这封信有一点私人色彩。我在最后一段提到了公司的做法。
我的另一个建议是引用这个公司某个人的讲话或者他/她所做的工作。例如“我是在看了一个鼓舞人心的演讲后申请这个职位的…它真正展示了公司的价值观。我很想成为其中的一员”。
技能组合(Portfolio)
这是一个有争议的话题,给人们带来很多麻烦。
我和一些人谈过,他们推迟了求职,因为他们对自己的技能组合不满意。
插播一点:我对我的技能组合还是不满意。我得到我现在的职位时完全没有像样的技能组合。如果我一直等待,直到我满意我的技能组合,那我现在还是在等待中!
我真正地信奉这句话:你应该做一些简单的事情,并且把它做好。只要浏览一下推特,看看那些最著名的开发人员,他们中的很多人的网站都非常简单,只有一些文章而已。
我认为,作为一个新的开发人员,你不一定会拥有一个设计师所拥有的所有设计技能。因此,虽然构建一些东西并雄心勃勃地完成你的项目是很有趣的,但我认为对于求职申请来说,你应该坚持一些真正简单的东西。
一个雄心勃勃的网站,有大量的项目、文章、图片,也意味着很容易出错。访问网站的不管什么人,他们是用电话来访问?还是用27英寸的Mac电脑来访问呢?…如果这个网站有什么问题发生,他们很可能会注意到并记住它。
我记得最近有一个求职者,他的技能组合里仍然带有一些占位符,显然他是使用了一个模板,但是没有将那些字段填补。使用模板本身没有错,但我记得他的技能组合是因为他犯的这个错误。
如果你非要这样做的话,那么建立和运行一个良好的网站的工具并不缺乏(比如说Gatsby starter).
所以求职信只需要你的名字,一段关于你做过什么的简短描述,以及一些到社交账户(Github,LinkedIn,Twitter等)的链接就可以了。
你写过的文章也是一个非常好的材料(稍后也会有更多介绍)。
社交媒体 - 在线展示
大多数求职者可能都在用某种在线展示的工具,它们可能是Twitter,Instagram,Youtube,或者Facebook。
这些对求职者来说可能有好的加分,也可能有坏的加分。
不过,在这里我要认真地告诫大家,不要在社交媒体上发布任何你不想让雇主看到的东西。我知道我会在谷歌上搜索一个候选人的名字。如果他在Instagram上有5万个粉丝,并且正在使用这个平台在社区内传播积极的信息,那就是一件非常值得肯定的事情。但是如果他在推特上挑起了口水战,那么我必须要问自己,这种人是我的团队需要的吗?可能不是。
我一直向人们推荐的一件事是做好进程记录。无论是讨论你正在做的最新课程,还是你发现其中的难点,还是你正在构建一个特别雄心勃勃的项目,人们都会想了解其中的细节,你会对这些记录所能帮助的人数感到惊讶。
当你来应聘时,以上所做的一切都对你有利,也有助于提高你的沟通技巧,提升你在这个行业的影响力。
开源
我会一直大声疾呼开源项目的好处。
为什么开源这么好?
因为它会给你真实世界的经验,而不必作为自由职业者来出售你的服务。
我了解新的开发人员排在第一位的抱怨是,一方面他们很难获得真实世界的经验,另一方面,即使是初级开发的职位也要求这种经验。
这就是开源为什么这么好的答案。
当然,这很吓人,因为你可能会搞砸…但这是你的开发历程中最有价值的一课。
Pull request、分支、Merge Request、Merge Request -- 所有这些团队合作开发中非常重要的概念,你不可能在一个有许多捐款者的项目之外得到很多实践。
即使是做一些小的事情,比如写一篇更简洁的文档,你也可以在面试中谈论,也可以把经验写进你的简历里!
当你已经积极地使用了React 代码库,而如果你正在申请的一个前端开发人员的职位正好需要使用React框架,他妈的会有多酷?对,就是他妈的酷毙了。
第二步 - 申请
乍一看,这似乎相当简单。你是不是认为只需要打开indeed.com网站,然后浏览一下职位列表就行了?
这当然是一种方法。但我是这样想的:每个人都会做同样的事。竞争将会更加激烈。
还有其他求职的方法!
下面这些好地方你可能没有想到
领英(LinkedIn)
领英上的招聘专区其实很不错,所以如果你还没有注册的话,请尽快填写你的个人资料。
你会很快就注意到,有很多招聘人员在领英上工作。一旦他们发现你,他们就会像秃鹫扑向尸体一样扑向你。
找到更值得信任的招聘人员。有人为了你默默地奋力拼搏,推动你完成整个求职过程,这实际上是一件值得肯定的事情。但我总是告诉人们招聘人员总是想赚取佣金,当他们看到有机会把你招揽过来并在那里工作时,他们就会这样做。但是他们也有机会让你得到你在其他任何地方都看不到的工作机会。
Glassdoor
Glassdoor是一个网站,它的主要功能是允许人们对他们工作过的公司进行打分。不过,他们也可以给自己面试过的公司打分。
如果你想申请加入的公司已经在这个网站存在了,这绝对是一个信息金矿。
有些软件工程师会把整个求职过程写下来,这样你就能确切地知道目标公司希望通过面试得到什么信息,然后你就可以利用你宝贵的时间来做相应的准备。
Glassdoor还有一个非常好的招聘专区,有很多不同的职位供你查看。它还有一个额外的好处,就是向你展示公司是否适合你去工作,以及他们的价值观/文化是什么。
谷歌
很好的老式谷歌。
我寻找工作的一个技巧就是在用谷歌搜索当地的机构和公司。然后制作一个包含所在地区的十家公司和他们的网站的列表,如果他们有我感兴趣的职位空缺,那么就开始申请。
即使他们没有职位空缺,也值得给他们发份邮件和简历,自我介绍一下。特别是小机构现在可能不需要人,但他们永远不知道他们的初级开发人员什么时候可能离开,有当地人的简历对他们会有很大帮助。
当然,这不必在本地完成。一些大公司的网站也会有一个招聘专区,而且有些职位空缺通常不会在传统的求职网站上列出。
列出十家你期望加入的公司,我相信你会发现至少有五分之四的公司都在寻找和你有同样技能的人。
申请哪些工作?
有时候公司们似乎在追求一个超级英雄!
我们要招聘一个具有React, Node, Kubernetes, AWS, Docker, Svelte, Go, Java, Python经验的初级开发人员!?简直是胡说八道!
你必须记住,很多职位说明书是由人力资源团队而不是开发团队编写的。
当然,之前有人问过我“什么是完美的候选人”,在你知道答案之前,你已经列出了所有这些技术的清单。但众所周知,找到一个完全符合这个列表的开发人员并不现实。
所以无论你拥有什么样的技能,都要申请这些工作!只要你对他们的技术堆栈中至少有一些东西有很好的了解,那可能就足够了,而且总有培训和升级的选择机会!
整理你的搜索结果
寻找工作的过程很快就会失控。
所有的求职软件看起来都一样,你不知道你申请了什么,在你知道之前,你可能已经把自己弄得一团糟!
我有一套寻找工作的方法!
我使用Notion这个效率管理工具,因为它允许你创建一些专栏并直接链接到网页,但是无论你拥有什么样的生产力应用程序,无疑都一样有帮助。
我会花一两天的时间寻找工作机会,然后把我喜欢的所有职位都链接起来。
当我申请了某些职位,我把它们转移到“申请”栏。如果我得到的回复是否定的,我会把它放到“拒绝”栏。我还有一栏是为那些需要更进一步行动的工作机会的。
整理你的搜索结果可以让你更有效率,并可以让你避免像一份工作申请两次这样的灾难!
第三步 - 面试
终于谈到可怕的面试!每个人都害怕这个阶段,这是相当残酷的。然而,给自己最好的成功机会是很重要的。
重要的是,你必须记住,不被接受并不一定反映你的能力不行。面试相当于一种学习经验,你必须通过练习来掌握它们。
研究和准备
像我前面提到的,Glassdoor是一个非常好的地方,可以找到很多关于公司面试过程的信息。
然而,如果这家公司在这个网站上还不存在,或者这家公司的规模不大,那就有可能无法找到任何答案。
在网上寻找任何和目标公司高级成员相关的内容,任何目标公司员工生成的内容也非常重要。许多公司会公开谈论他们的文化/价值观,获得目标公司背景信息确实是一件好事,即使这并不能告诉面试的具体技术细节。
对于公司来说,将代码测试存储在GitHub上也变得更加常见。当然我不建议作弊,但在你开始做真正的事情之前,最好先练习一下真实的代码测试。下面是Just Eat的代码测试:
还有其他的测试,所以要多练习!
在面试那天
衣着
穿着与公司背景相符的衣服。如果你知道他们穿正装,那就穿正装。然而,即使是正式的衣服也应该很舒服。我记得有一次我穿着一套新西装去面试,我一直在想这件衣服有多伤我的脖子,所以那次我没有发挥出我的最佳水平。
如果他们穿非正式的衣服,那就穿一些舒适的衣服,同时看起来要体面。我喜欢穿套头衫,黑色牛仔裤和漂亮的运动鞋。
我曾经听到一个评论说不应该穿超过两种颜色的衣服,从那以后,我在面试时总是穿黑色的。我不知道为什么,但我会担心,如果我现在没有黑色衣服怎么办!虽然我不是说这样做总是正确的,但你一定要至少考虑一下你想穿什么,这样你才能挑选出让你感觉轻松的衣服!
问一些问题,即使你知道答案
你总是应该问一些问题,所以一定要事先准备一些问题。如果你要问的某个问题需要深入讨论,那么显然不要提它。
提问表明你对目标公司有真正的兴趣,这总是一件正面的事情。
礼貌点,保持微笑
毫无疑问,有人邀请你加入他们的公司,而你也希望他们雇用你。所以你至少要表现出尊重和礼貌。
我现在工作的公司和租给我们办公室的大楼接待处达成协议,接待处会提供他们对应聘者的反馈。如果应聘者粗鲁无礼,他的面试就会自动失败,不管他的能力如何。
礼貌是不花钱的!
充满激情
我一直说,我会选择一个技能少些但是有激情的应聘者,而不会选择一个有很多知识但是对这个行业没有激情的人。
作为一个团队管理者,你需要的是对自己的工作充满激情的人,他们会不断努力实现更多的目标。仅仅拥有知识并不意味着全部。
不要讨价还价
在面试中提到薪水和工作条件的人确实有些令人讨厌的地方。在你去面试之前,你至少应该知道这个职位很适合你的需要,除非有人提示,否则现在不是提出这个问题的时候。
我的经验是,在一个职位offer确定下来之前,这一点应该暂不讨论。如果公司想要你,你就给自己留下了更多的筹码,要求稍微高一点的薪水或额外一天的远程工作。不要像有些人说的那样,做一些自取其辱的事!
结束语
我希望这篇文章对你们当中的一些人会有帮助。如果你有什么想让我添加到这篇文章里,我一定会这样做。我的目标是随着时间的推移不断丰富这篇文章的内容,所以你们所有的建议都会非常欢迎!
想要在程序员生涯内有更高的成就,面试程序员技术方面顺利的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13群)你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。