最近在帮一些找工作的学弟学妹看简历,从中发现了两个问题:
本文从一个前端开发学长的经验出发,谈谈软件开发方向应届生的一些求职经验。个人认为本经验也可供其他专业的应届生进行参考。
首先需要介绍春招、秋招、校招、社招是什么。需要提醒的是,由于本科、研究生、博士生、内地院校和境外院校的毕业时间不同,导致相应的招聘时间有所不同,需要求职者根据实际情况提前了解,本文最后一节收集了一些知名企业的招聘官网,可以根据自身实际情况,参考往年的招聘时间。接下来的部分将以国内本科的时间线为主。
校招即校园招聘,面向的是在校学生,校招比较集中的时间段有三个——春招、秋招和补招。
春招即春季招聘,大部分公司春招集中在二月至五月,其中三月和四月是春招的黄金时间,是为金三银四。春招主要是招暑期实习,通常是招次年毕业的应届生,比如本人是2019年毕业,就参加2018年的春招。以本人为例,我是在2018年4月拿到某厂的实习生录用offer,当年6月去实习,10月考核通过留用,然后2019年毕业之后就直接入职成为打工人。
通常大部分公司的实习生名额会多于最后的留用名额,也就是说想要成为正式员工(毕业之后直接去上班)需要通过一定的竞争(比如转正答辩),但建议有时间的同学一定要参加春招,如果拿到春招offer就去实习,这样即使后面没有留用,再去争取秋招机会时起码比没有实习经验的同学有一定的优势。另外需要注意的是,如果你想通过实习转正,一定要在面试时问清楚有没有实习转正的名额、实习多久能够转正。
秋招即秋季招聘,大部分公司秋招集中在七月至十月,其中九月十月是秋招的高峰期,是为金九银十。秋招看公司的具体情况,可能是直接发最终的录用offer,也可能是招实习,需要求职者看清招聘要求。秋招通常也是招次年毕业的应届生,比如本人是2019年毕业,就参加2018年的秋招。
如果春招秋招都没有赶上,那后续补招还有机会上车。大部分公司补招通常是当年十一月到次年二月,但补招的数量和质量都不如春招秋招,建议同学们不要把机会压到补招上。
社招即社会招聘,面向的是已经有一定工作经验的求职者。一年中任何时间段基本上都有公司在进行社招,但岗位比较多的时间段还是和校招的春招秋招时间段一致,集中在金三银四和金九银十附近
内部推荐简称内推,无论春招秋招、校招社招都有内推。内推通常是找公司内部员工进行推荐,也可以通过一些平台——比如牛客网的内推广场、微信公众号内推军等进行内推。内推的具体政策视公司具体规定而异,比如有些公司是内推免笔试。但总的来说,内推比不内推机会更大一些。
对于没有求职经验的在校生来说,一个非常头疼的问题就是怎么编写简历。就个人经验来看,简历的目的就是为了让人一眼就能看出来这个人具备什么能力。组织简历时可以把自己代入HR或者面试官的角色,如果你是HR或者面试官,你希望看到一份什么样的简历。
对于在校生乃至有三年以内工作经验的求职者来说,简历一页A4纸即可,因为太长的简历HR或面试官可能并没有足够的耐心看完,毕竟人家可能一天会处理好几百份简历。基于这样的推论,一份好的简历应该把越重要的内容放在越靠前的位置。那么,在这一页纸的简历中,按照重要程度的优先级,应该展示哪些信息呢?这里有一个填充了具体内容的简历demo(链接: 网盘 提取码: pngk):
结合这个demo,从本人的经验出发,简历中按照顺序应该包含如下七个部分:
最重要的包括姓名、教育背景(学校、专业、学历)、联系方式(通常是手机号码)、求职意向(什么岗位)还有性别和年龄(或出生年月)。如果有博客或者在GitHub上有拿得出手的项目,也可以把链接附上,这是加分项。
如果学校是985或者211,可以在学校后面备注。如果个人在年级中排名靠前,也可以写上专业排名。
其他信息比如照片、现居地地址、邮箱地址等等,如果后续简历有点空也可以拿出来填充空间。
需要注意的是,最重要的信息中没有包括照片。我一直没有把照片放到简历中,一是因为照片占用空间、二是有性别和年龄之后照片其实不太重要,如果认为自己的颜值可以为自己加分的话,可以把照片当做重要信息处理。
这一部分主要针对已经有实习经验的同学,没有实习经验的同学可以不写。主要内容包括什么时间到什么时间,在哪家公司、什么部门、什么岗位,主要做哪块业务。
这一部分在简历中十分的重要,项目经验主要展示自己做过的项目,可以是在校期间做的,也可以是实习期间做的,2-3个即可,排序上个人感觉技术含量越高的项目排序越靠前。
内容上参考star法则,star法则即情境(situation)、任务(task)、行动(action)、结果(result)四项的缩写,具体到写项目经验上来就是在什么情况下承接了什么任务,为了完成这个任务你采取了哪些行动,最终达成什么结果。
结合demo,在项目经验上我个人推荐的写法是这样的:
项目名称
字体加粗,方便区分不同项目。项目名称后面可以加上项目的类型,比如是PC端网站还是移动端网站还是小程序或者App,这样就方便面试官对项目有大概的认识。
项目描述
对应star法则的情景,可以包括用户的需求、项目预期实现的目标等能够体现这个项目是要做什么的信息。字数上1-2行即可。
负责内容
对应star法则的任务,主要写你在这个项目中需要完成的工作,比如承担功能设计、技术调研、前端开发、数据库设计、后台开发等等。字数上1-2行即可。
开发过程
对应star法则的行动,主要写你在项目开发中发挥的作用,可以写你为了完成任务采用了什么技术、设计了什么方案、解决了什么问题或者BUG等等。字数上2-3行即可。这部分在整个项目经验中是最重要的部分,但也是最难写的部分。
需要注意的是,开发过程不能只写用了什么技术实现了什么功能,更重要的是你在开发过程中设计了什么方案、解决了什么问题。作为应届生,技术方面往往拉不开太大的差距,既然都来找开发岗了,谁还不会点编程语言、框架之内的,但设计方案、解决问题的能力并不是人人都有。所以相比于所掌握的技术,更重要的是你用掌握的技术做了什么、如何解决开发中的问题等,这样才能体现你的能力。
另外一个情况是,在校做的项目往往比较基础,可能直观感觉上没有什么技术含量,但大部分应届生其实都是这样的。这时就需要复盘一下开发遇到的问题,仔细梳理当时是如何找到解决方案的,或者重新审视项目,找找还能优化的点,设计一些优化方案进去。
最终结果
对应star法则的结果,主要写这个项目最终取得的成绩,比如拿了什么奖、完成了什么目标、得到了什么收获、在各项数据上有什么亮眼表现等等。字数上1-2行即可。这部分其实是整个项目经验中也是比较难写的部分,因为在学校里做的项目,很难有什么大的成就,能得个奖、发个论文就很不错了。所以如果没有拿奖、也没有发论文等,就可以写项目完成后对用户的改变(比如解决了之前一直没有解决的问题、填补了什么空白)、自己获得了什么收获、各方对项目的评价等等,如果项目在诸如用户访问量、各种技术指标上有亮眼的表现,也可以写上去。
项目经验这一块很考验大家的包装能力,不光是项目经验,整个简历就是考验求职者的包装与精简能力。之所以还有一个精简能力,是因为写简历写到最后往往就是删减内容,再平庸的学生,只要找到正确的填充简历的方式,也能写出好几页纸的简历来。但让面试官看好几页的简历不太现实,这就要大家选择哪些信息应该保留、哪些则应该删除。感觉难写不要紧,写多了就有经验了。但要注意,项目经验中写的内容要符合实际情况,比如根本没有做过的项目写上去、根本没有遇到过的问题编上去、根本没有用到的技术写进来,面试官一问就有可能露馅,进而造成不好的影响。
这一部分主要展示自己掌握了哪些配得上岗位要求的技能。在描述时采用形如“熟练使用vue框架”、“熟悉xxx的使用”、“了解xxx的原理”。切记不要随便使用“精通”,比如“精通vue”,这样很容易被面试官挑战。
在组织形式上,可以使用列表组织专业技能,将同一类型的技能写到同一列中。拿前端举例,前端三件套HTML+CSS+JavaScript的掌握程度写一列,所掌握前端框架写一列,所使用的工具写一列,以此类推。数量上4-8列即可。在专业技能的最后,也可以写上自己最近在学习研究的技术,以展示自己热爱学习。
这一部分主要展示自己在校期间获取的奖项,内容上优先写和专业相关的奖项,比如“ACM铜奖”、“科研立项xxx奖”。其次是个人能力相关的奖项,比如“xxx奖学金”。最后才是诸如公益实践、社团组织颁发的奖项。如果在获奖经历中扮演了比较重要的角色,比如队长、负责人等,可以单独标明出来。
这部分主要写在校期间参加了什么比赛或者社会实践、担任了什么学生干部职位、参加了什么社团等。
内容上也是与专业相关的经历优先,比如参加了“互联网+”比赛、参加了ACM比赛、参加了什么工作室等等,简要的写一下自己在这些经历中的贡献。
其他内容比如自我评价(就几句话简单交代一下自己的性格、优点等)等,主要是当简历写不满时用于填充空间的
在布局上,简历最好不要过于宽松,也不要过于拥挤,比如有些简历上个人信息只有几段话,但却占用了很大的空间。有的则项目经验非常多,写都写不下,只好很密集的挤在一块。这些都是非常不好的实践。每一部分之间最好有比较明显的分隔,方便面试官一眼就能看到那一块是讲什么。在样式上,简历不应该过于花哨,以免喧宾夺主,毕竟简历最重要的部分是内容。
你可能会觉得demo里的简历看起来东西没有多少,但你仔细看就会发现,整体上结构很清晰,你一眼就能看到那一块是讲什么,内容看起来少但信息量却不少。永远要记住,太长太密的简历,没有人会认真看的。至于简历中没有提到的内容,可以在自我介绍中进行补充。后面也会有一节专门讲解如何进行自我介绍。
最后写成的简历,最好转为PDF格式作为电子版简历,因为world文档在不同软件中打开可能会造成样式、布局的改变。同时,现场面试时也应该打印几份纸质简历带在身上,以备面试官需要。
一般来说,软件开发的整体应聘流程为1轮笔试+3-4轮面试。建议大家提前准备笔试面试,准备早了容易忘,准备晚了来不及,比如你是明年参加校招,建议今年下半学期或者暑假时就开始准备。准备大致分为看书、刷题和刷面试经验(面经)三个部分。
看书主要看和笔试面试有关的书,这里推荐《剑指offer》。这本书主要内容是程序员面试中经常遇到数据结构和算法,看起来不厚,但内容十分充足,建议能看多少看多少。
刷题可以去牛客网题库刷公司真题,也可以去力扣题库(主要是算法题)上去刷题。不同公司题目涵盖的范围和难度有很大的不同,题目也不一定只和岗位有关,比如前端面试可能有一些后端相关的题目,主要是见过的题多了,自然经验就多了。建议大家有事没事多多刷题,把近两三年知名大厂的题都刷一遍。
面经可以去牛客网面经汇总上看,也可以去各种博客论坛——比如掘金、segmentfault上搜索。
春招基本上一定会有笔试环节,秋招不一定有笔试。笔试通常由单选、多选、简答、编程题组成,内容涉及编程、算法等。除了编程题外,其他类型的题有可能有的和技术没有太大关系,反而类似于公务员考试的题目。通常会在公司的平台或者牛客网之内的平台进行网上答题。笔试没有太多的经验,反正提前多刷题就对了。
面试通常以面试官的一句“请你简单的做一个自我介绍”开始。自我介绍通常时间在3-5分钟不等。根据我个人的经验,有些面试官是不会提前看候选者的简历的,或者候选简历太多,面试官很难记清楚哪个候选者简历里写了什么内容。所以,自我介绍一是让面试官能更好的了解候选人,二是给面试官一点时间再看一下你的简历。
参考正常语速一分钟250字左右,自我介绍能够描述的内容其实也很有限。这就面临和写简历类似的问题——在有限的时间内应该说什么。从个人经验出发,自我介绍可以围绕简历组织,也就是说自我介绍的内容和结构大致上和简历上保持一致,重点是对项目经验的补充。比如个人信息就可以简单的介绍自己叫什么、什么院校、什么专业、什么年级、本科还是研究生即可。专业技能和获奖经历也是如此,均可用两三句话介绍自己会什么、拿过什么奖即可。对项目经验的描述上,也是参考star法则,但对具体细节进行补充。拿demo简历里的第一个项目来说,就可以对开发过程进行信息补充,比如具体的评论互动方案是如何实现的、采用了什么具体的方案视频IE浏览器等。如果时间上还有空余,可以简单介绍一下自己做过的其他项目。
自我介绍最好提前准备,并多次练习以掌控时间、熟悉内容,不要在面试时现想。
面试通常最后一轮是HR面,除HR面之外为技术面。HR面不会问技术问题,通常是了解一下候选者的个人情况,比如性格上是否有明显的缺陷等等,只要面试过程中没有表现出明显的问题,一般都是没有问题的。对于技术面,通常来说技术面第一是同事面,第二面是组长面,如果有第三面则是主管面。如果某轮面试挂掉了,有可能会被其他部门捞起来继续面,那面总面试轮数还会增加。我认识的一个朋友,面鹅厂,挂了又被捞起来,捞起来又被挂,最后总共面了10轮才过。面试可能是现场面试,也有可能是线上面试,视公司具体安排不同。面试时间也视具体情况而定,通常是半个小时到一个半小时左右。
建议大家刚开始找工作时,不要一开始就直接投中意公司或者大公司的简历,提前先拿些小公司练练手,等到中意公司或者大厂开始面试时,自己基本上也有一定经验了,应对起来也会更加从容一些。根据个人校招面试的经验,有一定数量的问题,会在不同公司的面试中反复出现,每次面试时记得记录一下面试的问题,面试结束之后马上去查找对应的答案,弥补自身知识上的欠缺,如果后面也被问到了相通的问题,那回答起来肯定要从容的多。
面试中的问题,通常包括岗位相关技术(比如前端后端)、项目细节、算法、技术方案设计等等,面试过程中也可能会让面试者现场写代码(通常是线上面试线上写代码)。面试官每问到一个问题最好先想一下再回答,一是从脑海里面寻找答案,二是想一下面试官的问题是不是有什么坑、有什么边界情况要考虑的。实在不会的问题就回答不会,面试中有不会的问题很正常,不懂装懂很容易引起面试官的反感。当然,太多的问题不会就要从自身找原因了。需要注意一点,简历上写的内容,最好心里有数,因为面试官很有可能会根据简历上的内容进行提问。比如简历里写了熟悉Vue,那么就有可能会问Vue相关的问题;简历里写了某个项目,就有可能会问项目中某些细节的解决方案等等。算法方面就只能多看书了、多刷算法题了。现场编程往往是某些常见功能的实现,比如前端可能是现场写个防抖函数,这个可以事先准备一下。
面试的最后,通常面试官会问“你还有什么问题要问我”。此时,最好不要直接问面试官自己有没有过这轮面试,因为每轮面试都有不少候选人,没有把所有候选人面完,面试官也不好说谁过没过,而且有时候选人过不过,不只是当轮面试官说了算,他可能还要咨询组内其他人的意见。而且你能不能过这轮面试,面试结束时应该多少从面试官对你的态度上能够看出一些端倪来。所以,此时问这种问题没有任何帮助。就我的经验来说,我一般会分技术面和HR面问不同的问题。
首先是技术面,因为技术面主要是面试官问你,所以最后你问面试官的问题最好不要超过3个,不然会让面试官觉得是我在面试你还是你在面试我。通常情况下,技术面之后我会问以下几个问题:
然后是HR面,通常情况下HR面不会沟通offer的细节,比如薪资水平,因为毕竟还是在面试流程中。等面试全部通过之后,会有人专门来沟通薪酬的,所以薪酬相关的细节,可以等到后面沟通offer时再谈。我通常会在HR面之后问以下几个问题:
最后是我收集到的一些招聘资源:
阿里巴巴招聘官网
腾讯校招官网
4399校招官网
网易游戏校招
网易校招官网
字节跳动招聘官网
京东校招官网
美团招聘官网
百度招聘官网
搜狐校园招聘官网
搜狐畅游校招官网
三七互娱招聘官网
链家招聘官网
百词斩招聘官网
完美世界校园招聘
58同城校园招聘
苏宁易购招聘官网
七牛云招聘官网
滴滴校招官网
微众银行招聘官网
虎牙招聘官网
哔哩哔哩招聘官网
中华英才网
Boss直聘
拉勾网
实习僧(专门找实习的,可以用来刷经验)
牛客网
leetcode 力扣
前端开发面试题