年末春初,金三银四。是的,又到了一年一度的跳槽找工作的时间了。是不是有很多小伙伴已经在蠢蠢欲动了?准备摩拳擦掌,大干一场!在此之际,我特地写一篇文章来细数一下找工作的整个过程和其中的注意事项。
分析自我
首先,在找工作之前,要好好的剖析一下自己。找准自身的定位和技术职级,自己几年工作经验,掌握了哪些技术栈,当前城市大概可以拿多少工资等等之类的,都要好好扪心自问一下。提前称一称自己有多少斤两。到时候面试也不至于手足无措,四门天黑。争取做到不打无准备的仗!
我的技术栈
作为一个互联网人,一个程序员。技术是首当其冲的,你的技术有多牛就意味着你可以拿多少工资。 对于程序员的专业技能其实就是技术栈,对于⾃⼰的技术栈如何描述是个很难的问题,⽐如什么算是精通?什么算是了解?什么是熟悉?
就拿前端来说,需要掌握的东西还是蛮多的。HTML,CSS,JS这些咱就不说了,这是基础,但是基础要必须牢固,不能一知半解。其中JS是重点。然后就是Vue,React前端框架,Ag咱就不说了,goole好像对其停止维护了,不太建议学这个。
- HTML/HTML5
- CSS/CSS3
- JS,ES6
- Vue全家桶
- React及其相关技术栈等
- 前端性能优化,前端安全
- 工程化,组件化
- Typescript
- node
- 前端设计模式
这些都还只是冰山一角而已,没有深入其中某一项去展开聊。当然也不是说要完全掌握,达到精通的地步。那就太逆天了。只要可以熟练使用,并且了解其中的一些原理即可,达到企业级要求。独立开发没问题。
我的核心竞争力
什么是核心竞争力,通俗点讲就是个人独有的特点。不是普遍性的。就是说,在某一技术领域,你可以达到精通的地步,比其他大多数要强,这就是你的核心竞争力。比如前端,你精通JS,或者算法,架构等等,后端,你精通数据库,redis,微服务等等。那这样你在面试和谈薪资的时候腰杆子就可以硬一点了。
准备简历
简历是你进⼊⾯试的敲⻔砖,也是留给意向公司的第⼀印象,所以这个很重要,必须在这上⾯做⾜了⽂章,⼀份优秀的⾯试简历是整个⾯试成败的重中之重,我们要认真准备简历才能保证简历不被刷掉。
简历大纲结构清晰
花几分钟了解一下word/wps的大纲模式,“章、节、条、款、例”,在大纲模式下,先把简历文档按这样的层级编排一下。
具体内容少而精确
发挥你上学时写作文的能力,言简意赅甚至咬文嚼字地把重点描述清楚。 精通的技术写成熟悉,熟悉的写成了解
简历通常有这⼏部分构成:
- 基本资料
- 专业技能
- ⼯作经历
- 项⽬经历
- 教育背景
简历模版
万事开头难,简历的编写如果从头开始需要浪费很多时间,其实最快速也最聪明的办法就是先找⼀份还不错的简历模板,之后只需要填写信息即可。 简历模板的选择很讲究,有些简历基本不看内容就会被刷掉,这些简历⼀般会对⾯试官进⾏视觉攻击,让简历给⾯试官的第⼀印象就是反感。 有两种令人反感的简历模板:
- ⼀种是经典简历模板,真是堪称经典,配⾊⽐较魔幻,加上表格类的简历属于low到底端的简历类型,基本上扫⼀眼就扔了,这种简历只需要3秒钟就能被⾯试官扔到垃圾堆;
- 另⼀种是设计感⼗⾜的简历模板,这种简历设计感⼗⾜,这五颜六⾊的配⾊能亮瞎⾯试官的双眼,这种花⾥胡哨的简历同样也是3秒钟沉到垃圾堆底部的简历。
以上两类简历模板堪称⾯试官杀⼿,只要⽤了上述两类模板,绝对连让⾯试官看第⼆眼的兴趣都没有。⾯试官筛简历要的是⾼效、清晰、内容突出,不管是HR还是技术⾯试官都想在最快速的情况下看到有效信息,你眼中所谓的『视觉效果』在别⼈眼⾥就是『视觉噪⾳』或者『视觉垃圾』,严重影响看简历的⼼情和寻找有效信息的速度。
个人信息
个⼈信息部分主要包括姓名、电话、电子邮箱、求职意向,当然这四个是必填的,其它的都是选填,填好了是加分项,否则很可能减分。 接下来才是重点:
- 博客:如果准备⼀个基本没有更新的博客或者没有任何贡献的github,那么给⾯试官⼀种为了放上去⽽放上去的感觉,这基本上就是在跟⾯试官说『这个候选⼈平时根本没有总结提炼的习惯』,所以如果有⻓期维护的github或者博客⼀定要放上去,质量好的话会⾮常有⽤,如果没有千万别放。
- 学历:如果你的学历是专科、⾼中毕业之类的,还写在简历头部强调⼀遍,这就增加了简历被刷的⼏率,如果是研究⽣或者985211学历可以写,突出⼀下学历优势,本科学历在技术⾯试领域基本上敲⻔砖级别的,没必要写。
- 年龄:如果是⼤龄程序员,尤其是还在求⼀份低端岗位的时候千万别写,⼀个⼤龄程序员在求职⼀个中低端岗位,说明这些年基本原地踏步,还不能加班,到这⾥基本上此简历就凉了⼀半了。
- 照⽚:形象优秀的可以贴,尤其是形象优秀的⼥程序媛,其它的最好不要贴,如果要贴的话,最好是贴那种PS过的⾮常职业的证件照。
精通某类技术,别表现得太得意自满
在中国,往往是谦受益、满招损。 因为总有比我们技术更好的考官,当我们表现出自信满满的时候,绝大多数考官往往会想要挫一下我们的锐气,试探一下我们的技术上限,所以往往会挑我们最自信的领域出题,而且题目难度和我们表现出的自信成正比。如果一个难题回答得不好,往往会前功尽弃,给很大的负面评分。所以,对自己精通的技术,不妨谦虚一点写成熟悉,这样回答考官的技术问题,反而能给对方意外惊喜。 同理,只是熟悉的技术,写成了解,少一些节外生枝的麻烦。如果只是了解的技术,干脆就别写了。不然随便问几个稍微有点点深度的问题却答不上来,会让考官认为我们的简历写得太浮夸,从而对我们的印象大打折扣。
关于对技术技能的描述有很多种,这⾥只讲三种的了解、熟悉、精通:
- 了解:使⽤过某⼀项技术,能在别⼈指导下完成⼯作,但不能胜任复杂⼯作,也不能独⽴解决问题。
- 熟悉:⼤量运⽤过的某⼀项技术,能独⽴完成⼯作,且能独⽴完成有⼀定复杂度的⼯作,在技术的应⽤层⾯不会有太⼤问题,甚⾄理解⼀点原理。
- 精通:不仅可以运⽤某⼀⻔技术完成复杂项⽬,⽽且理解这项技术背后的原理,可以对此技术进⾏⼆次开发,甚⾄本身就是技术源码的贡献者。
以Vue框架为例,如果可以⽤vue写简单的⻚⾯,单独完成某⼏个⻚⾯的开发,但是⽆法脱离公司脚⼿架⼯作,也⽆法独⽴从0完成⼀个有⼀定复杂度的项⽬,只能称之为了解。 如果有⼤量运⽤vue的经验,有从0独⽴完成⼀定复杂度项⽬的能⼒,可以完全脱离脚⼿架进⾏开发,且对vue的原理有⼀定的了解,可以称之为熟悉。 如果⽤vue完成过复杂度很⾼的项⽬,⽽且⾮常熟悉vue的原理,是vue源码的主要贡献者,亦或者根据vue源码进⾏过魔改(⽐如mpvue),可以称得上精通。 那么有两个坑是候选⼈经常犯的,杂和精,这种两个坑⼤量集中在应届⽣和刚毕业没两年的新⼿身上,其主要特点是急于表现⾃我、对技术深度与⼴度出现⽆知⽽导致的过度⾃信。 ⾸先说杂,⽐如要应聘⼀个Java后端,⽼⽼实实把⾃⼰的java技术栈写好就⾏了,强调⼀下⾃⼰擅⻓什么即可,最好专精某领域⽐如⾼并发、⾼可⽤等。这时⼀些简历⾮要给⾃⼰加戏,⾃⼰会的不会的⼀股脑往上堆,什么逆向、密码学、图形、驱动、AI都要体现出来,越杂越好,这种简历给⼈的印象就是个什么都不懂的半吊⼦。 再说精,⼀个刚毕业的应届⽣,出来简历就各种精通,精通Java、精通Java虚拟机、精通spring全家桶、精通kafka等等,这种简历是不会没头没脑投过来的,这种在⼤学⾥就精通各种的天才早被他的各种学⻓介绍进了⼤⼚或者外企做某某Star重点培养了,往往看到的这种也是半吊⼦。
尽可能放上自己的博客、个人主页、开源项目链接
当我们学会了总结、归纳之后,学一样东西往往是很快的。写博客、搭建个人主页,参加github开源项目,就是归纳、总结、分享的过程。 在个人简历里面放上自己的博客、个人主页、开源项目链接,能让用人方更深刻地了解我们的学习方法论,让用人单位知道我们除了自己有良好的学习能力之外,还具有强大的share能力,能分享同事们很多新技能,推动整个团队的整体职业素养变得更好!
工作经历
⼯作经历本身不⽤花太多笔墨去写,⾯试官主要想看的就是每段⼯作经历的持续时间、在不同公司担任的职责如何、是否有⼤⼚的⼯作经验等。 那么什么简历在这⾥给⾯试官减分呢?
- 频繁跳槽:⽐如三年换了四家公司,每个公司呆的时⻓不要超过⼀年;
- 常年初级岗:⽐如⼯作五六年之后依然在完成⼀些简单的项⽬开发;
- 末流公司经历:在技术招聘届,⼤⼚的优先级最⾼⽐如BAT、TMD甚⾄微软、⾕歌等外企,知名度独⻆兽其次,⼀般的互联⽹公司排在第三,就是⼯作中⼩型的互联⽹公司⼀般⼤家叫不上名字,排在最后的就是外包和传统企业的经历;
(1)所以,如果你有频繁跳槽的经历怎么办?在本公司⽼⽼实实等到满⼀年再跳槽。 (2)如果常年初级岗怎么办?想办法晋升或者参与⼀些业界知名项⽬,再或者写⼀个有⼀定复杂度的私⼈项⽬。 (3)如果有末流公司经历怎么办?如果是很久以前的末流公司经验可以直接不写,也没⼈在乎你很早之前的⼯作经历,如果你现在就在末流公司,赶紧想办法跳槽,去不了⼤⼚,去⾮知名的互联⽹公司也算是胜利⼤逃亡了。
项目经历
项⽬经历不管对于社招还是校招都是重中之重,很多时候成败就在于项⽬经历这块,⼀个普通本科可以通过优秀的项⽬经历逆袭985,⼀个⼩⼚的员⼯也可以获得⼤⼚的⾯试机会。 但是必须要说⼀下项⽬经历的编写很讲究,这是为后⾯⾯试部分铺路的绝佳机会,也是直接让你的简历扑街的重点沦陷区域。 先来看简历中项目经历的坑。
(1)切忌流⽔账写法
项⽬经历流⽔账写法是绝⼤多数简历的通病,通篇下来就讲了⼀件事『我⼲了啥』。 ⼤部分简历却是这样的:
⽤Vue、Vuex、Vue-router、axios等技术开发电商⽹站的前端部分,主要负责⾸⻚、店铺详情、商品详情、商品列表、订单详情、订单中⼼等相关⻚⾯的开发⼯作,与设计师与后端配合,可要⾼度还原设计稿。
这个描述有什么问题? 其实看似也没啥问题,但是这种流⽔账写法太多了,完全⽆法突出⾃⼰的优势展现⾃⼰的能⼒。项⽬经历是考察重点,⾯试官想知道候选⼈在⼀次项⽬经历中扮演的⻆⾊、负责的模块、碰到的问题、解决的思路、达成的效果以及最后的总结与沉淀。 ⽽上⾯的描述只显示了我⼲了啥,所以这种项⽬描述⼏乎是没意义的,因为对于⾯试官⽽⾔他看不到有效信息,没有有效信息的项⽬描述基本就没价值了,如果这个时候你还没有⼤⼚经历或者名校背书,基本上也就凉了。
(2)切忌堆积项⽬
堆积项⽬这种现象往往出现在没有什么优秀项⽬经历的简历身上,候选⼈企图以数量优势掩盖质量的劣势,其实往往适得其反,项⽬经历的⼀栏最好放2-3个项⽬,⾮常优秀的项⽬可能放⼀个就⾜够了,举个极端例⼦如果有⼀天尤⾬溪写简历,其实只需要在项⽬经历那些⼀⾏Vue.js作者就⾏了,当然,他并不需要投简历。 有⼀些项⽬切忌放上去:
- demo级项⽬:很多简历居然还在放⼀些仿xx官⽹的demo,这是⼗⾜的减分项,有⼀些则是东拼⻄凑抄了⼀些框架 的源码搞了个玩具项⽬,也没有任何价值。
- 烂⼤街的项⽬:这种以vue技术栈的为最,由于视频⽹站的某⻔课程流⾏,导致⼤量的仿饿了么、仿qq⾳乐、仿美 团、仿去哪⼉,同样Java的同学也是仿电商⽹站、仿⼤众点评等等,⼗份简历5份⼀模⼀样的项⽬,你是⾯试官会怎么想。
- 低质量的开源项⽬:⼀个⼤原则就是低star的尽量别放(除⾮是⾼质量代码的冷⻔项⽬),⻓期弃坑的也不要放,不要为了凑数量把低质量的项⽬暴露出来,好好藏着。
如果只放两个项⽬,最好的搭配是⼀个公司内部挑⼤梁的项⽬和⼀个社区内的开源项⽬,后者之所以可以占据⼀席之地,是因为通过你的开源项⽬,⾯试官可以通过commit完整看到你的创造过程,⽐如⼯程化建设、commit规范、代码规范、协作⽅式、代码能⼒、沟通能⼒等等,这甚⾄⽐⾯试都有⽤,没有⽐开源项⽬更能展示你综合素质的东⻄了。
(3)切忌放虚假项⽬
⼀个项⽬做没做过只要是有经验的⾯试官⼀问便知,如果你真的靠假项⽬忽悠过了⾯试,那这个公司⼋成也有问题,⼈才把关不过硬,你可以想象你的队友都是什么⽔平,在这种公司⼤成⻓价值也不⼤。好,如果你说实在没项⽬可写了,我只能造假了,那么你应该想⼀下这多层追问。 ⽐如你说你优化了⼀个前端项⽬的⾸屏性能,降低了⽩屏时间,那么⾯试官对这个性能优化问题会进⾏深挖,来考察候选⼈的实际⽔平:
- 你的性能优化指标是怎么确定的?平均下来时间减短了多少?
- 你的性能是如何测试的?有两种主流的性能测试⽅法你是怎么选的?
- 你是根据哪些指标进⾏针对性优化的?
- 除了你说的这些优化⽅法还有没有想过通过xx来解决?
- 你的这个优化⽅法在实际操作中碰到过什么问题吗?有没有进⼀步做过测试?
- 我们假设这么⼀种情况,⽐如xxxx,你会这么进⾏优化?
⾯试官多层追问的逻辑是这样的:**了解背景 -> 了解⽅案 -> 深挖⽅案 -> 模拟场景 ** ⾸先得了解你性能优化的指标如何,接着需要了解你是这么测试的指标、再怎么进⾏针对性优化的,再接着提出⼀些其它解决⽅案考察你对优化场景的知识储备和⽅案决策能⼒,最后再模拟⼀个其它的业务场景,来考察你的技能迁移能⼒,看看是否是对某块领域有⼀定的了解,⽽不是只针对某个项⽬。 如果要真的在⾯试现场对答如流,那么⼀定是在某⼀块领域有⼀定知识储备的⼈,不是随随便便搞个项⽬就能蒙混过关的。
(4)合格的项⽬经历
合格的项⽬经历必须要有以下⼏点:
- 项⽬概述
- 个⼈职责
- 项⽬难点
- ⼯作成果
如果不怕字太多,还可以选择性加⼊解决⽅案、选型思路等,但是由于篇幅限制和为⾯试铺垫就不太建议写得太多。 项⽬概述的⽬的是让⾯试官理解项⽬,不是每个⼈⾯试官都做过你的那种项⽬,所以需⼀个简述⽅便⾯试官理解。 个⼈职责就是告诉⾯试官你在本项⽬中扮演的⻆⾊,是领导者?主导者?还是跟随者,你负责了哪些模块,承担了多⼤的⼯作量,以此来评估你在团队中的作⽤。 项⽬难点的⽬的在于让⾯试官看到你碰到的技术难题,⽅便后续⾯试对项⽬进⾏⼀系列讨论。 ⼯作成果就很明显了,⾯试官需要看到你在做了上述⼯作到底达成了什么成绩,这个时候最好以数据说话,⽐如访问量、⽩屏时间等等。 这个时候也切忌⻓篇⼤论,把技术细节都写上去,甚⾄还写了⼼路历程的都是⼤忌,⼀⽅⾯篇幅太⼤会造成视觉混乱,另⼀⽅⾯⾯试官想看到的是简历,不是技术总结,⾯试官要⾯对上百份简历没那么时间来看你⻓篇⼤论,⻓篇⼤论⼤可以在⾯试中展开。 最好的⽅法就是⼀⾏⽂字简单得说清楚即可,反正项⽬⾯的时候会问到,到时候把准备的内容讲给⾯试官,掌握⾯试的主动权就是从项⽬经历这⼀栏中开始。
其它
(1)教育背景
应届⽣可以写得更详细⼀点,⽐如绩点排名怎么样,有没有突出的科⽬,社招就不要写太多了,简单的⼊学时间、学校、专业即可,⽽且写最⾼学历即可,没必要从初中就开始写学历流⽔账,没有⼈看的。
(2)注意事项
- ⾃我评价不建议写:技术⾯试⼏乎没⼈看你的⾃我评价,连⾯试技术问题都嫌『talk is cheap show me the code』,你的⾃我评价除了占篇幅没啥⽤处,充其量算是⾯试官的⼲扰信息。
- 简历封⾯千万别搞:这都是⼀些简历制作⽹站骗⽤户付费的伎俩,不仅是互联⽹⾏业,其它⾏业我也没⻅过要简历封⾯这种⽆⽤操作的。
- 证书不建议写:应届⽣可以酌情考虑弄个六级证书什么的,对于社招⽽⾔,列⼀堆证书甚⾄是减分项,国内的各种证你也懂的,是有多不⾃信才沦落到靠⼀堆证书来证明⾃⼰的价值。
- 千万别⽤技能图表:⾸先⽤90分、80分来评价⾃⼰的技术本身就没有什么说服⼒,也不可能这么精准,⽽且什么是90分、什么是80根本就没有⼀个公论,所以⽤⼀般的⽐较通⽤的熟悉、精通描述即可,千万别加戏,⾯试官或者HR没那么多闲⼯夫去理解你的图表,⽼⽼实实按最通⽤⾼效的⽅式描述⾃⼰的技术栈。
- 简历最好⼀⻚:程序员⼜不是设计师有时候需要作品呈现,如果简历超过⼀⻚⼀定是出问题了,项⽬、技术栈描述太多太杂占据了⼤量篇幅。
面试前的准备
1. 利用脑图来梳理知识点
对于统一校招类的面试,要重点梳理前端的所有知识点,校招面试一般是为了做人才储备,所以看的是候选人的可塑性和学习能力;对于社招类面试,则看重的是业务能力和 JD 匹配程度,所以要针对性地整理前端知识点,针对性的内容包括:项目用到的技术细节、个人技能部分需要加强或提升的常考知识点。 所以,不仅仅简历要针对性地来写,知识点也要根据自己的经历、准备的简历、公司和职位描述来针对性地梳理。 基础知识来自于自己平时的储备,一般对着一本系统的书籍或者自己平时的笔记过一遍即可,但是提到自己做到的项目是没有固定的复习套路的,而且围绕项目可以衍生出来各种问题,都需要了解,项目讲清楚对于候选人也特别重要。基础是固定的,任何人经过一段时间都可以学完的,但是项目经历是实打实的经验。 对于项目的复习和准备,建议列思维导图(脑图),针对自己重点需要讲的项目,列出用到的技术点(知识点),介绍背景、项目上线后的收益以及后续优化点。这是第一层,第二层就是针对技术点(知识点)做各种发散的问题。 注:JD(job description),是指职位描述,是其缩写。一般在招聘中,最常用到的意思就是岗位介绍和工作职责描述的意思。
2. 收到面试邀请后的准备
当有公司邀请我们去面试的时候,应该针对性地做一些功课。
(1)了解部门和团队
了解部门做的事情,团队用的技术栈,前文提到这部分信息一般从 JD 当中就可以看到,如果 JD 并没有这些信息,那么可以根据面试的部门搜索下,总会找到一些零星的信息,如果实在没有任何信息,就准备岗位需要的通用技术。
(2)了解面试官
通过邀请电话或者面试邀请邮件,可以找到面试官信息。通过这些信息查找面试官技术博客、GitHub 等,了解面试官最近关注的技术和擅长的技术,因为面试官往往会在面试的过程中问自己擅长的技术。
投递简历
投递简历也是有技巧的,首先要根据自身的情况来筛选公司和岗位。要考虑公司规模,技术栈,公司的产品,做什么领域的,公司的地点,薪资,待遇福利等等
海投
作为一个社会人来说