前端面经、吐个槽吧

2019-07-14 03:25:58 +08:00
 Ljf980

从 3 月份开始到现在,陆续面了有阿里、oppo、平安、腾讯、新浪、字节等加一些中小厂

因为感觉在公司达到一个瓶颈,自学不够顺利,方向定不下来,有点迷茫,不知怎么走的感觉,所以想去面大公司,提升一下视野

先说一下我面试前对公司以及薪资的要求
公司:
大厂、中厂(加班可接受,毕竟福利高,薪资高,可学东西多,自愿加班。比如我现在的公司,我回去没事干,一般都会选择呆在公司 10 点 /11 点,看技术博客,写笔记等等)
不去小厂(受够了加班到 9/10 点甚至更晚的创业热情)

薪资:
最初是年薪 30
后面降到 27
我的目前年薪是 22

然后大公司的套路,虽然大家隐约知道不好进,是因为算法等各种原因,但是不实际尝试一下,你还真不知道感受

最初阿里就倒在了在线测试,得了个 "B+" 评价好像·····[掩面···]
在线测评的面试题大家搜索一下就有了,我就不说了
大部分前端都希望通过 node 来提升自己的价值
我也是一样,一般都认为阿里的前端发展的最好,所以我还是很想去阿里的
奈何已经挂了,不能再面了

oppo 倒在 对 Vue 原理理解不够深,因为招的是高级

平安是最后一面,我年薪喊太高,谈薪都不给,回复不够优秀,想在看看其他候选人(猎头那边看到的评价)
其实众所周知平安对于跳槽的人来说提薪并不高,有也是个例

腾讯···面了很多腾讯系部门,好几个到最后一面挂了,原因就多了
算法不过关:面试技术部门,尤其 QQ 系,很多都是 C++出身的,出了 n 道算法题,我一个前端我能有什么办法···没事去刷刷 leetcode ?
纯算法我真不大会啊,比如问我?在一个 n 长度字符串中,求最长回文子串!!!我去 leetcode 看了,居然是中级难度,要不要这样啊,我只是一个前端,真的不刷 leetcode !!!
扪心自问不刷 leetcode 你拿到这道题你会做吗!!!另外我当时做这个题用的是暴力遍历~~~
现场 coding 实现不够优雅:给了电脑现场做,做出了面试题,然后和面试官一起优化写的代码···
知识细节不够:大公司碰到的问题小公司遇到的少,比如 localStorage 写不进去了怎么办等等极限问题,还有安全攻防类的,可以说是比较生冷的也是重要的知识
不会日志监控:之前没做过日志监控,面试评价说了这一点,无奈···
自己作死:因为自己最后一面吹自己的职业生涯规划,然而这个规划并不和公司的主营业务相关。我的规划是前端架构师,而公司是主做微信小程序
学习深度不够:和初面面试官聊的很好,然后面试官跟领导说到我对原理了解不深,领导直接说原理了解不深,说明学习深度不够,pass,见都不见我一面····
···
总会有一个理由适合你···

字节,初面小哥目测是个组员,问了几个问题都答了出来,后来出了两道代码题,做出了一道业务题,另外一道算法只做出一半,后面没过,猎头那边查看评价代码功底一般···其实挺不服气的
问问题的时候问了他们技术栈,主要是 react,这才是主要问题吧(我知道大厂对技术栈不在意,对 Vue 熟练,react 上手也不难,然而字节这个我真不服气,再说一遍)
猎头也说了好几个不错的腾讯系的也挂了一面,不知道字节在搞什么
补充一点,发现大厂还是 react 用的多····vue 虽然也用,但是主要还是 react 为主

新浪也是到了最后一面,总监问我接受加班 /996 吗?我对新浪不怎么感冒,之前进去也只是抱着拿个面试经验,所以很硬气的回复加班可以,6 就不接受了。
不出意料后面没下文了[手动狗头]
其实还谈到了薪资,然后我当然还是要的 27,但是新浪年终奖估计有 6/7/8 个月,这样算下来我的月薪就提升不多,所以我后面又提高了我的薪资期望,算下来有 30+了,他们更不肯招我了

中小公司比较容易进:面试题啥的都 ok,就是我薪资要的高,有些自己就不联系我了,后面我降低了要求,拿到了一家 27/年,但是我拒绝了,原因就不说了

在这个漫长过程中,慢慢的积累了一些不足
开始深挖底层,关注性能优化,了解日志监控
主要还是把时间花在熟悉 Vue 源码实现上
学习框架设计原理确实能帮助自己成长

目前我自己的状态应该是这样的:

3 年半纯前端工作经验

熟悉 HTML5+CSS3,能开发响应式的移动端和 PC 端网站
熟悉 Vue 原理,阅读过源码实现,能更好的解决 Vue 项目中遇到的问题
熟练使用 Vue 全家桶,能用来开发模块化、组件化的项目
熟悉 ES6 语法,能写出精简、可扩展代码
熟悉 Webpack、Gulp,能用来构建前端项目,实现工程化
熟悉 MVVM 和 MVC 原理
熟悉 Hybird App 混合开发模式
熟练 HTTP/HTTP2 (基本知识)
能使用 NodeJS 书写爬虫、开发小程序后端,PM2 部署发布
了解 Linux 基本操作,了解 Nginx 等 Web 服务器配置
了解 PWA 渐进式 Web App 开发
开发过 Web SDK,编写使用文档并负责解决使用中产生的问题

写了好多个管理系统都是用的 vue 全家桶,算是重度 vue 使用者了
也搞了两个 ssr 服务端渲染 vue+nuxt 实现
还写过几个轮子 图片压缩的,阿里云刷新 cdn 的,webpack 构建模版等等
https://github.com/QingshanLuoyue/tiny-imagemin
https://github.com/QingshanLuoyue/markdown-pdf-marked
https://github.com/QingshanLuoyue/aliyun-cdn-refresh
最近在研究日志监控

在公司主要做的:
主持前端技术分享,引导、鼓励组员分享各自的知识,说出自己的想法,加强各个组员的交流:交流才能使人进步,作为带头人我很骄傲
负责公司前端架构设计和内部工具开发:内部通用组件,通用工具,通用主题库、以及每周技术分享文章
参与需求评审、项目排期、架构设计、任务分配和编码:现在前端应该提前参与,提出自己的疑问和意见,保证产品少坑?
网站性能优化方案设计,加载速度优化:真正体现自己与菜鸟的不同?
推进前端工程化、自动化、模块化:这年头是个前端都要会了吧~~~

公司内部自己搞过 nginx 配置测试环境,基本上,前端这边的后台如果是 nodejs 的话,后端配置都是自己搞了,遇到坑也是自己摸索着去填
然后 jenkins 构建项目发布到目标机器,机器与机器间使用 ssh 的公钥秘钥免密使得 jenkins 构建完成后 scp 到测试环境机器
当然不止测试环境,线上环境也是自己来搞

我接触前端方向算多了
小程序、H5、PC/移动端响应式、混合 APP 开发、WebSDK 开发、node 都能在工作中胜任业务,但是有些不精通
主要还是以 H5、PC/移动端响应式 为主
现在也是要改变了,专注一个方向

自己搞了一个小程序,功能还比较简单
Koa2+mysql

最后想说:换个工作真不容易啊,目前还在苦苦寻找
想进个大厂就这么难···有哪位好心人帮我内推?

github:有兴趣来个 star ?
https://github.com/QingshanLuoyue

自己的博客:有错误请指正,有建议请留言
https://www.cnblogs.com/linjunfu/

最最后······如果我说的有地图炮、引战的等等会被你们喷的一些地方······当我没说,谢谢

4905 次点击
所在节点    程序员
73 条回复
Ljf980
2019-07-15 18:58:39 +08:00
@Hozart 大厂也分部门,不是所有都会以算法为准。只有面的是业务偏向算法的才会这样评价。
我面过上面那么多大厂,比如新浪、tx 有些都是能进的,只不过是因为一些其他原因没过,比如自己作死口嗨、学习深度不够,薪资要的高等原因。所以你说的基础面试?刷 leetcode 真不是主要原因

算法是我上面所列出的理由的一部分,只不过如果候选人算法好的话是一个很大很大很大的加分项
「自我定位不清」这个我真的不能苟同

那个不到 30 pkg 就是应届生水平~~~果然是我井底之蛙了
yutou527
2019-07-15 19:04:16 +08:00
去腾讯的话
"最长回文子串"这种 我觉得应该属于热身水平吧?
没勇气去试🤢
Ljf980
2019-07-15 19:09:25 +08:00
@yutou527 这种常见算法题,出现频率高的,对于那些刷了很多算法题的人来说,应该确实算热身了。
对于我等算法渣渣,那就是硬钢,遍历就对了,然后被鄙视
Hozart
2019-07-15 19:42:39 +08:00
@Ljf980
1. 关于薪资问题,可能你 base 比较高吧,大厂月数比较多,月薪不算很高,算总包可能会涨,算 base 甚至可能会降。
2. 关于自我定位我不清问题,去年 bat 应届基本有 25w+,稍微发挥好一些就奔着 30 去了,但是从文中看来你还算是一个 tech leader/组内架构,但你的薪资只能和应届 match,所以存在一个落差,并不是说你职业路径规划有问题,而是说你面的岗和你当前对自己的定位不 match 的问题,拿应届的包裹就老实按着应届的方法论走就完事儿了,万丈高楼平地起,不要用「前端工程师」这个 title 替自己挡枪。
3. 关于所谓的「业务偏向算法」,业务永远是业务,「面试中的数据结构 or 算法」真的只是「面试中」才有最大的用处,哪有这么多业务让你天天研究怎么优化使用的数据结构和算法的,大家都是刷出来的,而算法也成了现在筛人的一道坎,不要畏惧它,想要跳槽就肯定得拥抱它。
4. 总而言之,我认为你对当前的求职环境算不上又一个很清晰的认识。
5. 略显好为人师了,如果让你感到 offensive 不好意思。
Ljf980
2019-07-15 21:44:30 +08:00
@Hozart 能回复这么多,很感谢了,本来发帖也是希望与人交流,得到指点
1. 薪资和应届生 30pkg 的问题。这个确实,我记得大厂应届生很多都说 13k 都是白菜价,所以 16 以上或者 20k 加上 16 薪的加成确实可以超过 30pkg 了。这点我无话可说,20 对于厉害的 /又是应届生这种潜力股的人,尤其在搞技术这一行业在一定时期内凭实力说话的阶段,确实不是没可能
2. 自我定位的问题。关于这段时间面试大厂,一般我投的都是中高级岗位,应该算是符合我的定位吧。或者说大厂职位上挂着高级,但是面试时候是看人下菜。或者 30pkg 考算法,超过的不考算法,谈实践?所以我觉得面试这个真的看面试官了,我面这么多个大厂面试官,只有部分会出算法题。有些只会出业务代码题,比如去重,写个函数控制并发请求等等,这部分代码题考的才有意义,我觉得。当然面试官出什么题应该和部门氛围有关,就比如我说的 QQ 系的,因为好多 C++出身的,爱好出算法的概率大,根据我的面试经验来看确实是这样(或者说 TEG 的,我去面 IEG 就直接聊项目)~~~
3. 业务偏向算法问题。我上面也说了,真的有这个倾向,比如 TEG 部门。毕竟是 tx 的技术支撑,不考你算法就怪了?我去面这些带有技术倾向的部门,自己不刷算法确实是我自己太天真,并且得到惨痛教训了。
你说没有这么多业务去研究数据结构和算法,但是不妨碍他们的这种文化啊
算法确实是刷出来的,我没去刷算法然后被大厂刷下来是我不足,我也明白要去弥补,这个是必须的。
你说的“拿应届的包裹就老实按着应届的方法论走就完事儿了,万丈高楼平地起”、“而算法也成了现在筛人的一道坎,不要畏惧它,想要跳槽就肯定得拥抱它”我很认同,这话说的干脆。搞技术的就是要直接一点,哪里不足补哪里
4、求职环境这个。像上面有位大哥说的,我纯粹是拿着工作经验去硬钢~~~ 其实我最初抱着的想法就是技术偏向的部门如果算法能过,那就万事大吉;不行的话还有其他业务导向部门,也许我能用工作经验加上项目经验来赢得面试官的青睐呢?事实上我确实是有机会的,只不过因为一些除了算法之外,我上面说的原因而导致最终失败。

算法是一个大家比较聊得多的,普遍认为能证明自己实力,并且会了大概率让人能显得比其他人厉害的一个能力
我在上面的分享中说了算法只是其中之一的理由,我觉得大厂不可能用算法来卡所有人。每个人都有自己的闪光点。
will0404
2019-07-16 09:57:07 +08:00
一点个人看法。

回文字串这种题,考的是思考问题的思路,没有什么特定算法,觉得难的话平时是不是把时间都花在 webpack 怎么配置上了?或者各种框架和库的使用?(逃

至于这个题,首先想想回文的特点,中间奇数个或者 0 个相同字符,两边对称相同的字符一定是偶数个,那么最长的字串就是所有偶数字符长度加最长的奇数字符。

个人认为两三句话能够描述清楚解法的题都不能叫难,前端开发实际上平时也有大把的机会接触算法的实践,主要看你有没有这个意识了。学习框架也不是件简单的事,但你把 react,vue,angular 都学会了,用熟了,那是软实力;计算机基础,数据结构和算法是硬实力。前者足够让你升值加薪,但天花板低,后者则短期看不到太大收益,
will0404
2019-07-16 09:58:24 +08:00
但能让你走的更远
Ljf980
2019-07-16 10:53:58 +08:00
@will0404 确实考的是思路问题

我觉得回文字串这种题难,确实是我平时基本不看算法,我上面很多回复都说了。毕竟工作经验才 3 年多,不算长,以学习框架和源码为主,毕竟升职加薪快[手动狗头]。当然到了这个工作年限,所以开始考虑进阶了,也就是你说的硬实力。

你说的这个“至于这个题,首先想想回文的特点,中间奇数个或者 0 个相同字符,两边对称相同的字符一定是偶数个,那么最长的字串就是所有偶数字符长度加最长的奇数字符。”我当时也确实是这么想的,然后使用了暴力遍历来做的,不是使用技巧。然而面试官想要的并不是这个。

前端开发有机会遇到算法实践的,这个其实就看你遇到业务有没有了。如果有主动意识,就算平时业务没有算法实践场景,也能网上搜到然后自己去学习。

总之只要有主动性,不管是算法或者其他领域(普通人接触领域),都不是难事。

还想说下,算法这东西刷刷刷,一般做多了就能形成解决思路,所以说不难啥的其实都是有《先决条件》的。
但是对于一个没接触过的人来说,那就不能勉强了吧
就像前端写 css 很溜吧,后端就觉得是个坑,好难。
写这么一大段其实就是想辩驳一下对于没搞过算法的人来说,真的难。又感觉越说越无力,好没底气(没搞过那怪谁)

目前也是开始刷 leetcode 了,感谢你的祝福

最后,我个人挺喜欢辩论(疑似自己是个 gangjing ~~~),没有恶意。
看上面回复了很多人,说了很多感觉是为自己找借口的话,有觉得我孺子不可教也的,对不起了哈
will0404
2019-07-16 11:24:05 +08:00
@Ljf980 这个解法已经是 O(n)了,是最快的解法,这不叫暴力遍历。面试管要的不是这个答案?也许他在考你空间复杂度最低的解法呢?

我也是前端,我也在刷 leetcode,目前只刷了 40 题左右。刷题过程中我最大的感触是,题都不难,都能做出来。有时候看了别人的解法以后,才知道原来这样的解法叫“ xxx 算法”。也许是我们理解的“难”不一样,我也会遇到没有思路的时候,这时候我就放下它,去做别的事,过一会再回来重新审题,换个角度去思考,所以有时候一个 hard 题能解几天。可是慢慢的解题速度就越来越快了。
不把学习当作应试的目的去学,会轻松一些。共勉。
zhwithsweet
2019-07-16 12:03:35 +08:00
面试肯定要刷题了。
Ljf980
2019-07-16 14:08:13 +08:00
@will0404 共勉共勉
jmyz0455
2019-07-16 15:49:41 +08:00
我也快三年了,也是广州,看见楼主的经历,有点焦虑,请问你是 985/211 吗?
Ljf980
2019-08-01 12:38:00 +08:00
@jmyz0455 不是,普通二本。选择一个方向专心研究源码,多积累自己的知识,比如博客,github。这样大厂并不难进

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX