前言
大家好,我是海怪。最近没研究太多的技术,打算这段时间都来分享一些偏向感想和经验的内容,希望能对大家有所启发。
前一段时间内推了一些简历,也听我同事分享了很多面试的一些故事,再回想自己面试时候的样子,还是有很多话想聊的,所以这期先来分享一些关于面试的心得。
如何拿到面试
如果练面试都没有,还聊个啥,所以我们先来谈 “如何拿到面试”。这一步最关键的就是 渠道 和 背景。
渠道
我们不妨把 “找工作” 和 “找对象” 来一个对比:
找对象 | 找工作 |
韩剧式日常偶遇 | 简历海投 |
社交软件 | 脉脉/Boss 直聘 |
相亲大会 | 校招双选会 |
朋友/家人介绍 | 内推 |
如果你想立马找到一个比较合适的对象,那肯定是朋友/家人介绍这种性价比最高的,找工作也是内推的效率是最高的。
但是找内推也不是随便找的,内推之间也有效率高与低的差别。比如别人给你一个内推码,这其实就是“海内推”,和“海投”没多少差别。
通常一个公司会有很多开发小组,当小组人员不够用的时候,开发组长会首先着急去招人。因为是要再没人来,项目就做不完了。
其实,招人的组长也怕成为招聘平台上的 “芸芸众生”,也怕会招不到合适的人,所以往往会自己写帖子发到社区上去捞人,所以,这也是为什么好的内推一般简历都能够直达组长,因为最着急的人不是 HR ,而是组长。
因此,如果你看到一篇招聘贴,写得非常真诚、不像是群发出来的,投它就完事了。一般这种招聘帖子在 www.v2ex.com 里的 酷工作 板块会比较多,也比较靠谱。
虽然内推性价比最高,但并不代表我们不能用别的方式拿到面试。 最好的策略应该全部渠道都冲,重点关注内推即可。
背景
就根相亲一样,无论哪家公司第一眼都是你的个人背景。
校招会看学校,社招则看前东家,名校和名企永不过时。连找对象的时候都要看“门当户对”,公司招人也是同样道理。没有好的学校和名企经历来帮你背书,要过 “第一印象” 这一关还是比较难的。
当然,背景差点也不至于一棒子打死, 所以说内推真的非常重要!因为最在乎你背景的人就是 HR!如果你的项目或者工作经验能让开发老板说服 HR 要你,那么你的背景就不是问题。
那如何才能让开发老板眼前一亮呢?你可以:
- 在知乎、掘金、CSDN 等平台比较活跃,至少写不少文章的
- Github 有比较亮眼的作品,不是玩具,而是那种类似产品的项目(至少有健全文档、好看的样式、好用的交互)
- 工作经历比较长、你说的技术点我基本都会,在组内中上水平。比如,我们组就有一个刚毕业的同学,他已经有三年工作经历了,MD,工作时长比我还多
简历
说到面试一定离不开简历。虽然简历很重要,但是一些人会把过度的关注都放在简历上,导致简历老改不好,项目也迟迟不做,算法题也没刷几道。下面来说说简历中比较关键的点。
样式
写简历的第一个误区就是 样式。相信你一定见过不少想白嫖简历模板的同学,有人一找工作就会想一份简历的模板,或许你自己就是,哈哈。
我在网上随便找了两份简历,在不看简历内容的前提下,大家觉得哪份简历最好看呢?
或许你觉得第一份简历样式多,排版好,自然好看。其实,我自己会更喜欢第二份简历,这种 “直白” 的简历会更符合求职场景。
作为一个合格的前端工程师,希望大家能明白:好看 !== 样式多 !== 花里胡哨
,一个好的设计应该是 克制且符合你的应用场景。
无论是 HR 还是 Manager 看简历的时候,双方处于一个严肃的求职场景中,如果简历搞得太多花样会显得非常的小孩子,而下面的那份简历则会给人一种 “职场交易” 的感觉,显得更专业一些。
第二种简历还有非常多的好处:
- 实现简单。 只需简单的 HTML + CSS 就能实现,不用在垃圾 Office Word 上调样式了,非常麻烦
- 模板化。 此模板非彼模板,如果你有更进一步的想法,可以将你的信息都做成一个 JSON 文件,下次改简历就改这个 JSON 文件即可,有机会还能开源给别人使用,妙!
- 在线简历。 将这份 “简历” 挂在你的 Github 上,无论是谁都能随时随地访问。如果你有个人主页,可以外链到你的简历上
- 免费。 自己实现,0元
- 方便导出。 在网页
Comamnd + P
即可随意导出
如果你非要加点样式,那可以多关注布局,比如 Margin,Padding,字体颜色 就够了!我自己当时也仅加了 Vue 官网的字体颜色:
还是那句话:好的设计是克制,一定要克制住想炫技的心。如果你特别想秀一些东西,那就请把你绝活都放到你的 Github 项目上,然后把你的 Github 当成 QQ 空间那样去打造,把所有能填的东西全部填满,越是花里胡哨越好。
简历写什么
一般来说,简历主要还是有以下部分:
头部:
- 名字
- 联系方式:电话、邮箱(不要用 qq账号@qq.com,真的有点业余)
- Github(请把它装扮成 QQ 空间那样),个人主页(把你想秀的全放在这里)
- 知乎、简书、掘金等文章平台(至少写够 10 篇)
主体:
- 教育背景(坦诚一点,你想隐藏绩点和学校名的那点小心思是个人都看得出来)
- 技术栈(写主要的就行)
- 项目(想秀的可以有 Star 数、点赞数、下载量)
- 工作经历
如果有工作经历/社招,则可以将 项目 和 工作经历 换下位置,把工作经历提前放。除此之外就不要写一些废话了,比如:
- 自我评价。你写了我又不信,废话
- 学校里的 XX 干部,组织 XX 活动。不知道 “学生会” 这三个字已经在知乎里臭了嘛?
- 不相关的经历和技能。比如 Office,AE 这些无关紧要的就算了
内容描述
就算你的样式再难看,都不会减太多的分,最重要的还是 简历内容。下面这些“自相矛盾”的话估计不少人都听说过:
多写点技术名词,能提升简历
还是少写点技术名词,HR 可能看不懂
内容写的越多越好,一定包装
内容最好不要超过一页
好像哪句话都有点道理,但是就不知道应该相信谁。大家也不需要过多纠结,我这里直接给出我的标准吧
- 技术名词要有,而且一定要 重点标出来。看简历的人都是像改试卷一样快的,都是 看点给分,所以一定要标重点
- 少标亿点 重点。虽然重点要标出来,但是不全都标了,全 都是 重点 等于没有重点,就像现在这样。应该多标出能展示自己的 技术栈 和 开发方向
- 内容不要太多,也不要太少,一个项目 3 ~ 5 个点,每点一两句话就足够了
- 最关键还是真诚!真诚!真诚!
这里重点讲一下 真诚。首先 真诚 !== 老实
,我见过不少同学和身边人 Github 的项目,一般就是 cs21-homework
或者 vue-demo
这些。先不管你做的是个啥,看到这个名字就没有让人点进去的欲望。如果能起一个好听点的名字就不一样了,比如 happy-ui
,monster-todo-list
。
一般我的 Github repo 都避免 demo
、homework
、course
、lesson
这些字眼。名字起量像是个产品的样子:
可能你会想:如果我的项目很 Low,起这个名字是不是太装了?实际上这样的名字也仅起到吸引眼球的作用,这些“包装”不会改变项目的本质。
注意:包装不等于欺骗!好的包装是能让人有进一步想了解你的欲望,但是这并不会改变你自身的价值。比如,你自身配不上女神,但是你可以通过你的小幽默让她做你的好朋友,但老老实实的发“早安”、“晚安”并不会引女神的兴趣。
如果“包装”太多也会出现过度包装的问题,包装最好只占简历内容 10% ~ 20% 比较好,仅起到锦上添花的作用。那 80% 的内容要怎么写呢?
我认为只要你能真诚地把项目的功能、技术、作用说清楚已经成功了,比如:
- 这个项目是什么?解决了什么问题?基于 Vue/React 做的
- 负责做 XX 功能,用到 XX 技术
- 在项目中担任什么角色
- 除了正常完成功能,还有没有别的产出?文章?博客?Star 数?下载量?
讲一件好事情,真的不如把一件事情讲好。简历的本质也仅仅是 通过一张纸简单地介绍你的经验/经历,不要过度神话简历。
面试
好了,我们终于聊到面试了。关于面试题,掘金上大把大把的有,就不多说了。这里仅分享一些看法吧。
八股文 or ?
相信不少人很痛恨八股文,参见标题带有《XXX道前端面试题》的文章,觉得面试造火箭,工作拧螺丝。问那么多,工作又不用。
我的观点是:该背还是要背,在面试的前一周冲刺一下就够了。平时还是要多做项目,在实践过程中自然地学会八股文。
只要坑踩得够多,不断尝试,你自己甚至都可以写一篇《XXX道前端面试题》的文章,还能自问自答。
有的人担心:我实力也 OK,但是被问到奇葩八股文怎么办?我觉得就放弃,如果一家公司因为奇葩八股文来刷你,大概率这公司也不值得去。
实际上,作为面试官他们也不喜欢问八股文。想象一下,如果你作为面试官,本来想通过一道题来考察对方,结果面了 10 个人,这 10 个人的回答都一模一样,跟背标准答案一样,你说郁闷不郁闷?
所以呢,面试官也更偏向去问一些原理或者让对方去解决一个问题,比如最经典的:在网址里输入 url 按下回车会发生什么?
。好吧,我知道你们见太多次了,那我再举几个别的:
- 给你一个 Vue/React 项目,我想输入 Url 就能访问到它,请问怎么部署?域名?COS?CDN?CICD 流水线?
- 如果一个网页很慢,哪些地方导致页面变慢?该如何优化?前端优化?后端优化?
- 为什么要用 React/Vue?这些框架解决了什么问题?jQuery 不可以组件化吗?
上面这些都是没有固定标准答案的,有些可能连面试官也想知道答案是什么。所以问这些问题也更能体现应聘者的想法、解决问题能力、思考深度。
项目 or 算法
做项目还是刷算法估计每个人都会碰到的问题。
对于前端来说,算法并不是那么重要(除非特殊公司),刷个 100 ~ 200 道就够用了,前端可以多关注:
- 排序算法:quicksort, mergesort
- 大数相加
- 简历动态规划:1维动态规划就够了
我自己也很讨厌做算法题,但是依然写了 400 多道,大家不要因为不喜欢刷题就对之嗤之以鼻,因为你要找工作!你嫌麻烦,我还嫌麻烦呢。
做项目是最重要的,毕竟公司招你来是让你干活的。大多数人在做项目的时候,总想着要用 XX 牛皮技术去实现,这才能展示出自己的水平。而实际上,并不需要这么高技术含量的项目,只需要把一个 产品 做出来就已经超越了大部分人。
这是因为我发现很多找我内推的同学,他们的项目 玩具感很强,完全不像个产品的样子。
一方面可能只想把简历“填满”,另一方面只是简历堆砌技术点。相信大家知道 Todo MVC 这个项目,这个项目实现上非常简单,但是从交互和 UI 方向上看,都觉得它像个 产品 的样子。
我遇到很多简历上的项目都会出现下面的问题:
页面太丑,交互诡异。 我知道大家都不是设计师,我自己也不是,所以你需要去模仿、去学习、去抄呀。具体可看:
多收藏一些好看的网站。没有谁第一个网站就是好看的,多去模仿积累经验。不过,有的人确实是抄了别人的样式,但是看起来就像是东施效颦。如果你决定要抄了,那么就要做到 1 比 1 的还原,做到以假乱真的程度。如果时间来不急,那就少抄一些功能,但也要保证你抄的那些功能是一模一样的。
给大家看 4 年前就抄了一个网易严选,后端只是用 Mock.js 生成的假数据,但是至于观感上是一模一样的:
起名太 Low。 就像上面说的一样,就算你的项目是课堂作业,你依然可以给它起一个响亮的名字。
有 Bug。 这个真的很难容忍,你可以放弃一些功能和优化项,比如不考虑移动端之类的。但是不要一点就报错,或者卡住。出现 Bug 基本这个项目就完了。
项目介绍太少。 好的项目离不开文档,一个非常好用的方法就是把 README 写出花来。有能力就录个视频,放到 B 站或者 YouTube,再用 iframe 去嵌入。再不济就截个效果图。多放点 emoji 和 Shield。
如果你实在觉得不知道要写什么,那你的 README.md 也可以介绍一下这个项目是怎么做的,用了什么技术,有什么功能。也要好过光秃秃的啥都没有,连个 How to use 都没有很难让人想点进去的欲望。举个我的 nest-todo
项目的 README.md
:
上面也仅列举我看过的一些项目。如果想把的项目做好,那么就要以做出一个产品为目的来完成它。比如,你想做个 Todo App,那就天天用它来记东西,哪里用不爽就优化哪里。 如果连你自己都用不下去,怎么可能让别人用下去呢?
技术 or 产品思维
有人就会问了:如果不关注技术点地去做项目,会不会技术太差了呢?答案:不会。
首先,当你把项目向 产品 方向去做的时候,你会因为项目不好用而去优化你的项目,所以,技术迭代是自然而然发生的。相比于 “用了什么技术”,你会更害怕 “不好用”。
第二点是,面试官在看到你的项目时,会自然地认为:你对自己项目的态度是怎样的,那之后你对公司项目的态度也可能是一样的。
而且我觉得拥有 产品思维 会比技术点要强很多,毕竟技术谁都能马上会,但是做产品的那种追求不是所有人都能有的。
心态
最后来说说心态,虽然我很想说平常心是面对面试最完美的心态,但是当人有了欲望之后,心态并不是随时都很稳的,只能说尽量做到平稳一些。
要想拥有平衡的心态,最根本也是最有效的方法就是 让自己变得很牛逼。不断做项目,不停写代码,多发技术文章,当你 Github 的 Repo 越来越多,Star 数越增越多,文章越写越多时,你自然就不再害怕面试,不再是舔狗。
如果面试中非常紧张,那么可以尝试以下方法:
- 语速尽量 慢 一点,不要冲冲冲。一方面给你思考时间,也能给面试官反应时间
- 当发现场面控制不住了,或者紧张得说不出话的时候,可以 深吸一口气,重新调整一下呼吸
- 如果出现答不出来,双方有点僵局的时候,可以 重复一下面试官司的问题,并说:你的意思是这样吗?有利于重新梳理问题的关键点,顺便可以向他要点提示
总结
关于面试的分享就这么多,下面来总结一下:
拿到面试性价比最高的渠道是 内推,因为简历可以直达组长。
简历重 内容,而非样式,内容 80% 真诚描述清楚,20% 稍微包装。简历真的没那么复杂,只是你对自己的总结。
如果是前端面试,算法不是重头戏(除非特殊公司),一般排序、一维动态规划、大数相加就够了。关键还是以 项目为主,做项目时要把它当成 产品 去做。优雅的交互逻辑、好看的 UI、精美的文档远比技术重要。
当你写好了简历、拥有好的背景、把项目做漂亮了,那么面试时会自然就信心慢慢。面试紧张时,降低语速、深呼吸、重复询问可以把场子救回来。
个人觉得第一次求职是最难念的经历:自己本身没有多少筹码,而且面试和 “考试” 需要的是完全不一样应对策略,考虑的点非常多,还需要一丢丢运气,过程本身是困难重重