昨天参加了腾讯在北京的现场面试,半夜查状态发现已挂,心凉凉之余,开始痛定思痛,总结自己的不足。
一 基础不牢固
这半个月来参加了这么多场面试,暴露出来的最大问题就是基础掌握得不牢固了。
记得面试阿里的时候,问到计算机网络(TCP三次握手)这种基础题也说不清楚,昨天面试腾讯时连一个非递归遍历二叉树也写不出来。我觉得以工作忙没时间复习为借口是很丢脸的,总而言之自己不仅笨,还特别懒。
以后要着重发力巩固基础:
1. 计算机网络(尤其HTTP)
2. 数据结构里的手写算法
3. 操作系统(这个被问得少,但是基础的常识要知道)
4. CSS和JS(重点是CSS,JS基本题都能答出来)
对应措施:
1. 计算机网络:看笔试面经,然后观察项目中出现的相关问题,从书中找对应,每天看一个知识点;
2. 这个没得多说,一共就那么多种结构,每种对应的操作都写一遍,去网上搜刮题目刷;
3. 我估计没办法看完所有的操作系统知识,所以就看一些常见知识点,找博客看,看不懂的地方就翻书;
4. codepen模仿自己在网上遇到的好看的效果
二 知识了解不深入,没有经常总结各知识点之间的关联,举一反三
除了基础掌握不牢固之外,另一个很大的问题就是什么都知道一点,但是什么都经不起拷问。我想很大就是因为自己平常学东西的时候,没有多问自己几个为什么。要么是功能做出来了万事大吉,要么是记到小本本上就没有后续了,要么是仅仅找了篇博客看了个皮毛,以为自己真的懂了,到了真正被问倒时才恍然大悟。
以后可以这样做:
1. 不久之前自己总结出一个好方法,那就是遇到一个不熟悉的知识点,就去找这看,把demo写出来,总结,然后写一个“引申”,把自己问的“为什么”,和这个知识点相关联的其他知识点也串起来,以后可以继续按照这种思路来做。
2. 常用的框架,库等东西,不一定把源码看完,但是可以通过看官网,博客去弄清原理。因为很多情况下被问到:你知道**背后的原理是什么吗?我都尴尬地答不上来。
3. 重视项目里出现的问题,一定要弄清楚为什么出现,并且尽可能找到一种最好的解决方案,并及时总结记博客。
三 过于focus前端,对后端不了解
作为一个蹭立志于当后端工程师的人,我现在把后端的东西抛得一干二净了。
以后可以这样做:
1. 找我的后端看懂项目的后端架构,一个请求发过去,怎么拿到结果的;
2. 自己整一个练手小项目,搭一个node的后端;
五 实习项目局限性大,没有接触toC内容
我觉得这是腾讯拒绝我的一个重要原因吧,毕竟初试的时候,面试官和我聊得比较投机,聊项目,聊解决方案等,面完直接给我过了初试,但是复试的时候,面试官聊完后,可能觉得我没做过toC, 并且基础也不太好,就把我给挂了。这不能怪面试官,也不能怪其他人,只能怪自己眼界狭窄,总是盯着这一亩三分地,看不到整个行业广阔的天地。
上面我想到要自己搭一个node的后端,那前边就做一个toc吧。去慕课网上找一个自己喜欢的小项目,然后自己实现出来,再看看老师是怎么实现的。
六 没有掌握好自己的资源和优势
几乎所有面试官都对我在实习过程中做的编辑器项目很有兴趣,这个项目中确实有很多可以深挖的点(比如socket, 比如各种性能和安全问题),这是我的优势,我确确实实做过一个一已上线并且有用户量的东西,但是一直陷在功能和bug中,没想过怎么利用各种真实的场景来拔高。我想这是我接下来几个月工作的重点导向。
最近发现一个和我的项目类似的开源项目coding, 做的还比较完整,可以去研究一下这个项目的代码,顺便还能看看这个项目的后端,碰到好的点子可以直接用到我的项目中来。
组上有功力很深厚,待人又热情,表达能力又强的师傅,这是一个特别值得珍惜的资源。以前我总是只和他讨论一个具体问题怎么解决,让他帮忙看问题,但是却很少茶余饭后找他闲聊,去梳理总结一些知识。最近由于面试原因,才开始想他请教一些话题。他给我安利过很多神奇和各种hack方式,我也从他解决问题的方式中学到了很多,但这还远远不够。
最后,由于学历和实习经历都达标,一般我的简历投过去都会得到面试机会,这也是一种优势,但是每家公司在一波招聘中都只有一个机会,错过就要等半年,而每次面试都是一次升华和洗礼,每次面试都会暴露出自己的不足,之后针对性地补课,面试结果会一次比一次好。所以对于自己心仪的公司,不要心急,应该厚积薄发。
后记
距离秋招只剩下短短几个月的事件了,要做的事情还很多,但是我相信我自己,这段时间的面试虽然结果都不太好,但我起码都面试到了最后,说明我再努力一把够一够就能够到,加油,共勉。