没有灵丹妙药能让你成功被应聘为软件工程师。但是,在此过程中却有一些非常有帮助的建议。
我最近采访了 Matt Langan 和 Christian Macolino,Atlassian 公司两名最顶尖的高级技术招聘官。我想知道他们——来自于一家为共计 33 亿美元的软件公司招募高科技人才——的看法 。
本文着眼于一应聘的周边问题,其中包括一些实用的技巧和应聘指南。
简历
首先要有拿得出手的简历。我们需要通过这些,以便于展示自己的能力给参与招募过程的人看。
通常,软件工程师在这上面投入的时间要比实际搜索工作岗位的时间多。
数字化还是传统的?
尤其是向一家高科技公司求职时,我们会自作主张地认为,数字化的方式——个人网站和在线简历——将优先于标准格式的简历。但事实并非总是如此。特别是对于那些非设计的岗位,面试官更关心的是求职者是否具备他们所需要的条件。虽然说在通常情况下,这些内容也会展现在数字简历中。
这也适用于小型企业,或非高科技公司,其招募流程涉及更多的管理监督和更少的技术内涵。
选择方法
说到教育和软件工程师必须做的事情,Matt 对此的建议是:
涉足业余项目,兴趣爱好,写博客,参加论坛讨论,加入 Stack Overflow 或 Github,提问,解答,参加编码竞赛和高科技聚会。对于你目前的工作,你应该掌握正在做的事情,承担更多的责任,帮助他人学习——特别是那些水平比你低的人。
这些建议都非常棒。如果你已经作为某个特定领域的专项人才被录用了,那么不妨做个业余项目,不仅能保持紧跟核心语言和工具的脚步,同时也可以扩展自己的知识基础,至少能对其他语言、软件和工具有一个基本的了解。
不断学习是关键。从继续教育的角度看,Christian 有一个发人深省的观点:
职业生涯的第一个五年时间才是你真正为自己搭建舞台的时间。在一个新的职位或领域中,你得像一块海绵一样不断地学习。但在四到五年时间后,在你渐渐懂得多起来之后,大家开始向你请求指导。所以,如果你的职业生涯早期有一些学习的陋习和不良的生活习惯,那么你就会深受其苦。
自我评估
对于那些已经超出警戒线的人,那么也许是时候对自己做个自我评估了。
用一点时间来考虑自己正处于职业生涯的什么位置。你是否仍然需向同事、用户学习,从项目中学习?你是否自我改进,并通过业余项目成长?你是否对工作依然充满着热情?
寻找激情
这似乎是一个很多企业对于开发的共同制约因素。尤其是对年轻的初级人员,激情的因素影响尤甚。
做出改变
如果你已经受雇为一个软件工程师,但你却不再学习,不再热爱你的事业,那么你需要好好考虑接下来要做些什么,以从岗位上和通过改变一些东西来寻找激情。可以是一个简单的态度和责任的转变,也可以改变你目前的工作地点。也可以是跳槽,换岗位,甚至重新规划职业。
全栈还是专一
那么,我们应该立志成为一个全栈的软件工程师呢,还是成为某一门编程语言的专家?
精通某一方面
对于新手,我们的目标应该是多多接触,然后再集中精力钻研某一个方面。将此作为真正开启软件工程师职业生涯的出发点,做到精通某一方面。
在空闲时间里,可以继续广泛涉猎,然后在你树立起自己的品牌之后再开始拓展其他技能。
然而,也应该博学多才
面试官在寻找高级开发职位时,要求对方能有一个广泛的知识面。找到自己喜欢的专业,然后专研,但也不必因此就对其他领域“誓死不从”。
可以在工作和业余项目中,涉猎其他的项目、语言、角色和知识,扩充自己的知识,扩大自己的技能。
Christian 表示,与其致力于全栈,还不如努力培养自己软件工程师应有的品质:
基本的编码能力健全的架构知识
彻底了解软件开发知识
尝试完成任务以及平衡需求冲突的能力
激情
交流技巧
发布。
找的是职业,而不是职位
许多公司想雇用的是一支技术精湛,充满活力,适应力强的团队。精准化角色可以是在招募过程中,也可以是在招募之后,甚至是在几年之后,如果公司允许实习换岗的话。
基于这种态度,所以你在选择进公司之前,先要考虑自己的目标。而不仅仅只是申请工作。要研究公司。了解他们的招募人员和 HR 工作人员,让他们知道你。追寻天才软件工程师的职业生涯轨迹。俗话说,三人行必有我师,不拘一格地从前辈,同行有时甚至是晚辈身上继续学习。
让自己值得关注
Atlassian 和许多大型科技公司一样,只愿意去找已经发光发热的金子,而不愿意等你以后再来发光。所以,让自己变得引人注意并不是在画蛇添足,而是一种由内及外的能力渲染。这甚至也适用于初级软件工程师,从某种程度上而言。
这个经验教训就是:让自己值得关注。
获得注意的方法
博客。致力于开源。使用社交媒体。建立自己的在线业务。与同行在软件工程师社区,如 GitHub、SitePoint Forums、Stack Overflow 等等上面互动。
泛滥的网上个人资料
我和 Matt、Christian 还讨论了网上个人资料的长度,尤其是在 LinkedIn 中的个人资料。这里提到了一件事,LinkedIn 招募的垃圾邮件已经令一些人觉得有必要减少他们的个人资料项。
这种限制行为,可能会阻止一些比较绅士的招募人员。因为他们只会从这种获取信息的基础上决定要不要联系这位“人才”。
所以,如果你正在找新工作,那么这种极致可能暴露自己信息的作为,搞不好会招致大量垃圾招募邮件不胜其扰的轰炸。
软件工程师面试
以下是 Matt 和 Christian 针对程序员面试给出的 6 个要点。
1. 研究公司
阅读公司网站和博客。观看他们的视频,感受他们的文化,研究有关该公司及其合资企业的信息。
事先做一番了解能显示出你的兴趣,有助于更明智地讨论公司,以及询问将如何适应的相关问题。
2. 了解面试官
搜索 LinkedIn 和那些将会碰到的面试官的资料。
3. 复习自己的技能
你应该知道哪些领域会被测试。如果不知道,那就尽量弄一个范围。然后复习一下将会讨论到的技能,即使你信心十足。不要让一些简单的代码问题毁了这次面试机会。
4. 练习
与好友或通过服务在网上练习结对编程。
软件公司和大型机构的许多软件工程师职位,可能会有某种形式的结对编程考核。
即使没有,那么你被录用了以后,或许也会实行结对编程。总之,有备无患。
5. 认识自我
想想到目前为止,经历过的失败和成功。明确自己要走的路,知道自己作为一个软件工程师,一个团队成员的长处和弱点。
6. 你也是“面试官”
请记住,面试不仅仅有助于雇主决定他们是否想要录取你,同时也是你决定是否加入他们的时机。
当面试官问,你是否还有其他问题的时候,你应该提出问题。询问你可能要做的项目的方向,或者公司的目标,或者你的职位。如果你想到了什么好点子有助于项目和服务理念的,也可以提出来。
面试,既是一个被选择的机会,也是一个选择的机会。
应聘为软件工程师
有一点要注意的是,本文很多建议都是基于你已经是一个软件工程师的基础上提出来的。
如果你想成为软件工程师,那么你需要努力奋斗,需要花时间去找那些适合你职业发展规划的公司和工作。
你可能需要构建自己的作品集,甚至可能为了拿到一份全职工作,先得付出免费的劳动——参与业余项目或成为自由劳动力。
你需要仔细斟酌自己在网上的个人资料,还要在工作中咬牙挤出时间来学习其他的技术。不过,最后所有的一切都是值得的。
如果你有机会去参加自己心仪已久的公司的面试,那么也不要忘记这一点:这次面试可能会决定你的余生,或者最起码未来的几年。你的收入,你的职业生涯轨迹,你接下来学到的东西,你的幸福,全凭接下来的一系列测试和谈话。你应该感谢自己,感谢那些给出 offer 的人,做好准备,尽可能将自己最好的一面呈现给面试官,发挥在工作中。