由于子苏最近离职了,也一直在面试,所以,一直没有更新博客
总结一下,最近两周的面试情况,去了不少公司吧,不过大部分都是中小型的企业,面试的内容也涵盖了很多方面,也谈一谈自己对这方面的看法吧,如果有什么,欢迎留言一起讨论
1.扎实的软件工程基础
(以下为自己的答案,可能会有错误,欢迎讨论)
底层的技术、node的特性、mongo数据库的优势,以下分点描述:
访问baidu有哪些过程:
访问本地DNS,如果有缓存,读取百度ip,没有的话出去查询,然后拿到ip与百度服务器三次握手建立连接,获取数据,然后四次挥手断开连接。
三次握手(A客户,B服务器):
A:我要建立连接了
B:好的,我知道了,你发吧
A:得了您,我开始发了
四次挥手(A客户,B服务器)
A:我要走了
B:行,知道了,您断开一下
A:好的,我断开了(这句话之前,A必须收B的信息)
B:好的,大爷常来玩儿哦
mongo优势:(待补充)高并发
node是单?多线程?
node是单进程、单线程的,单线程体现在JavaScript为单一进程,将客户端所有请求在这里一起排队,然后IO的分发给libuv(它有线程池,属于底层调用C实现),其他的所有都自己处理,然后libuv有处理完的,在告诉JavaScript。当然后续拓展,node也可以实现多线程,多进程的方式,但那是他人想办法模拟出来的,并非node原生(node为了高性能采用了目前的模型,单线程也是他的最初衷的东西,不会轻易修改的)
linux的操作命令(待补充)vim nginx等
redis基础操作:五种基础类型
算法:数组去重
尾递归:
谈自己的面试感受:
很多公司都上来笔试,让你巴拉巴拉做一堆题,然后node特性啊,mongo的并发量啊,PG和mysql的区别啊,redis的存储性能啊,然后可能我接触东西不深,了解不是特别深刻,面试就结束了!!
是的,面试就结束了!
其实我还记得当时去京东和搜狗面试的时候,对方都是问底层的算法,数据如何传输,然后比如一些比较生僻的东西,你可能不太清楚,然后旁击侧敲看你的反应,比如如果你没有听说过尾递归,那么面试官可能启发一下,递归都写在函数的尾部有什么好处,之类的话,我觉得如果在启发下能够答出这道题,就是一个相对有潜力的人,然后可能还从团队能力,处事态度,逻辑考察等多方面去判断这些人。
我最近遇到某上地的xx办公公司,一份面试题,特别肤浅,就问以下哪个是加密算法名称,有什么方式能够加快研发(答案,vscode????),JavaScript和ts有没有关系,连什么关系都没有问,(当然有很多我都没听说过的名词),大概对了一半多一点吧,HR交试卷然后就回来说不合适,就让我走,我真的觉得这种公司早点倒闭吧。
Last
子苏还是在这里和大家说一声,面试技巧要有,也一定要有真正的本事,无论是计算机网络,还是数据结构,又或者是node开发用到的框架等等,你一定要有足够的经验(没有那么多,就下班自己去研究git别人的项目,然后自己再往里面写新的功能,这样可以练习你的git,linux,以及你的node水平),保持好心态,谦虚谨慎,遇到拿捏不准的,可以让面试官给个提示,遇到完全没听说过的,就坦白,不要装,一个是回答的状态不好,第二个是错误的知识比无知更可怕