全文共2956字,预计学习时长9分钟
图源:Unsplash
什么是新手训练营?
扎克伯格在2012年2月宣布IPO时对外发表的公开信里说得很清楚:“……Facebook要求所有新入职的工程师——包括那些将来并非主要从事编程工作的经理——参加新手训练营(Bootcamp),学习我们的代码库、工具和方法。业内有许多人负责管理工程师团队,并不愿亲自动手编写代码;然而,我们寻找的实践型人才都希望也能够经受新手训练营的检验。”
没错,新手训练营就是菜鸟养成营,其目的就是让新来的工程师和产品经理接受为期六周的集中培训以尽快融入公司之中,更为顺畅地开始工作。
现在,你终于完成了此生节奏最快的学习。
你已经完成了所有工作——通过学习编程来努力克服技术的入门障碍。过去几周,拿着笔记本电脑,和一群来自五湖四海的人共同度过了许多时间。
在新手训练营里,有人告诉你们每天要学习的知识、要挑战的任务以及要开发的产品。而如今,你们已离开了新手训练营的安全网。
训练营结束后的生活可能非常艰难,甚至令人心生恐惧,至少对我来说是这样。我之前毕业于经济学专业,主修金融。然而在做了几份实习工作后,我发现这一行业的工作重复性很强,但我还是坚持到底并拿到了学位,可毕业后我对未来一片迷茫,完全不知道之后要做什么。
所幸我的下一次实习与以往不同,是有关产品管理的工作。对我来说,有机会与多位来自不同领域的人一起工作,尤其是与软件开发人员的密切合作改变了我对未来的想法。在实习的过程中,我决定学习编程以构建属于自己的系统。于是我报名参加了一个编程新手训练营,实习结束后马上搬到了柏林。
长话短说——这次的经历太棒了!我遇到了来自世界各地、有着不同背景的人,和他们共同学习进步。在新手训练营,我度过了人生中最精彩的几周。
然而,就在新手训练营结束的前几周,我突然意识到:这一切很快就会结束。
在某一天过后,我会离开这里,早上没有指导课,白天不能和同学一起编程,晚上也没有了学习和社交,作为一个转行者,我将完完全全依赖自己。
老实说,我认为自己无法胜任初级软件开发人员的工作。原因是我认为自己不够好!为什么我会认为自己不够好?事实证明,我对自己的期望比大多数雇主对初级开发人员的期望要高。
你必须问自己,“招聘初级开发人员时,雇主想要的是什么?”
图源:Unsplash
对编程语言有基本了解
应聘软件开发岗位时,你应该掌握至少一门编程语言以应对编程挑战,而不是停留在最基本的知识上。我想强调的是,掌握一种编程语言正确的基础知识是至关重要的。不要在学习9周,了解了一点Ruby之后,就直接学习JavaScript,之后又由于某种原因学习一点Python,为什么不赞成这样做呢?
顺便说一下,所谓的“正确的基础”还意味着你应该学习如何调试代码。
通过与一些资深开发人员交谈,我得知他们一致认为:即使是初级程序员,也应该始终具备调试自己代码的能力。令人惊讶的是,很多初级程序员不具备这一能力。这一点也你能在面试过程中脱颖而出的一个机会。
对编程语言以外的其他领域的基本知识(如API设计等)的需求取决于具体申请的岗位(前端、后端等)。
但这方面没有必要做太多工作。如果你想深入到一个特定的课题,尝试想出一个有趣的项目来应用并巩固你学到的新知识。不过别担心,在实际工作中才会遇到最关键的问题。
谦卑和诚实
当你去一家公司面试时,公司面试官了解公司业务,同时也会了解到你仍处于初级水平。好公司不会因为你现有的开发水平雇用你,但他们反而会雇用只要投入足够的时间指导就可以成为合格软件开发人员的初级开发者。
作为一名初级开发人员,你的任务是学习和观察(当然,你的学习成果需要通过代码表现出来)。
这也是为什么“试图在面试过程中胡说八道”没有任何意义的原因,重要的话说三遍!换位思考一下,如果你是一名经验丰富的面试官,在你打算聘用一名初级员工时,你更愿意未来和谁一起工作呢?是一个学习意愿强烈,毫不犹豫承认知识差距的人?还是一个即使你很远就能看到Ta眼神空虚却也一直在点头的人?每个人都有有很多东西要学 (即便是经验丰富的程序员)。
尤其值得注意的是,如果你想成为一名初级开发人员,你应该尽可能诚实地承认你所不知道的,这将向你未来的雇主表明:你有自我意识,善于反思,愿意学习需要学习的一切知识和技能。
这也表明你比那些胡说八道的人更能接受“对某些问题不了解”,这一点在软件开发中很重要——你总是会对一些事情一无所知。
因此,对于已掌握的技能和存在的差距,要谦虚和诚实。
图源:Unsplash
好奇心
这与前一点是一致的。对许多人来说,这就是促使他们从事软件开发的性格特性——不想做重复性的工作;想每周都用新的问题挑战自己,想找出解决问题的方法。
当你在面试中发现涉及自己的知识盲区时,这可能是一个展示好奇心的绝佳机会。但要如何展示呢?
简单提问。假如在接受技术面试时被问及如何确保为编码挑战构建的API可扩展到一定数量的资源,不知道没关系,但如果你只是耸耸肩,就会错过一个机会。
相反,你要表现出你对更有经验的人解决此问题的方法很感兴趣,然后直接提:“我真的不知道如何实现,这可能是我想学习的第一个内容,你们是怎样解决这个问题的呢?”
其实在面试中,尤其是技术面试,面试官通常并不想拷问你的专业技能,他们只是想知道和你一起工作是什么感觉。表现出好奇心可以让他们知道,你很乐于接受指导,并愿意学习尽可能多的知识来完成工作。
技术面试围绕着如何用几个端点构建RailsAPI,面试官当然对此可提出改进建议。他们会给我暗示和解释:每当我不知道如何继续时,我就提问,然后他们会给我一个提示,我会按照他们的提示继续完成任务。那时我才意识到,他们只是想弄清楚,让我作为初级开发人员加入他们的团队会是什么样子——我完全可以什么都不知道。
所以,请不要再把技术面试看成是可怕的事情,以为面试官会拷问你的知识。相反,试着把它视为表达你的好奇心的方式和机会,并从中学习。
图源:Unsplash
根据经验,以上是雇主在招聘初级开发人员时最看重的能力。
当然,还有其他一些重要能力,比如是否一开始就有从事软件开发的强烈意愿,对版本控制是否有基本的了解,能否在敏捷团队中工作等等。
对我来说,上述的几点都很重要,尤其是你认为自身应具备的能力和雇主在招聘初级开发人员时所看重的能力。
特别是,如果你正在经历后训练营生活,或即将从编码训练营毕业,小芯特别推荐你收藏这篇文章,它能帮你设定正确期望,并在面试初级软件开发人员职位时保持正确心态——尽量保持谦虚和诚实,对你不知道的事情保持好奇,在提交代码时调试代码。
武运昌隆~
推荐阅读专题
留言 点赞 发个朋友圈
我们一起分享AI学习与发展的干货
编译组:鲍诗娴、王书晗
相关链接:
https://medium.com/better-programming/how-to-interview-well-after-a-coding-bootcamp-9558516a8a3b
如需转载,请后台留言,遵守转载规范
推荐文章阅读
长按识别二维码可添加关注
读芯君爱你