【已挂】某杭州中小公司node.js高级开发面试

#整数智能信息技术(杭州)有限责任公司# #面试问题记录# #nodejs#
本人大专学历,最后学历这块挂了。一直抗到终面还以为终于要成了。
7.25 一面:招聘经理面,先自我介绍,项目问了亮点和难点。
问了在高并发这块的经验。
问了数据库优化这块,直接上MySQL底层往上倒推不讲虚的。
问:怎么在mac arm编译docker容易转成服务器x86可以运行的容器。
答:(心想还有这需求??)我们直接ci/cd直接在服务器编译打包的,不清楚。
问:对于mongoDB的了解讲讲。
答:(简历上就没写mongoDB,就是想看看有没有准备这场面试。实际上就没准备,不对这东西看好和感兴趣)说了mongo单位是文档而MySQL的单位是表,mongo适合敏捷开发。大文件,json格式数据存放。(很想讲MySQL为啥不适合…)mongo团队在npm这块也有个开源包,关于bson压缩,我实际测试和zlib的两个压缩算法相比没啥优势,和proto的压缩效率和速度更没啥优势。postgres这边有个叫jsonb,二进制存储还能检索内容,mongo换我我不想用。
7.29二面:CTO面,自我介绍,上来问我跳槽频繁原因。说到业余时间在转golang,
问:golang和node.js的区别。
答:golang有协程或者说轻量版线程,node.js没有关于多线程,这块是底层的libuv做了这些。(想让他问libuv,我讲讲事件循环和多线程的细节,因为没看过源码担心问到)
问:对于nest框架的理解
答:跟前端框架Angular很像,和spring也有点相似。提供了诸多开箱即用的模块。核心是IOC和AOP。相比底层的express增加了多种不同功能的中间件。
问:看过node 或者nest的源码没?
答:没有……(还是问了,nest.js 源码突击看了ioc相关的循环依赖怎么解决的,就两行代码…)重心放在MySQL redis这块,因为转语言容易……
问:数据库表优化讲下
答:从设计表开始,主键尽量使用有序主键,比如int uuidv7 
1:容易映射到bitmap上,如果我需要做颗粒度比较细的权限划分会用到。
2: 因为MySQL插入是有序的,如果有序的主键查询会更快。
不建议在MySQL放大字段,因为一个节点就是一页,MySQL默认一页16kb,如果字段大的话每页能放的数据变少了,更容易页分裂。
关键字后面加索引,如果要用组合索引不要查其他字段。
问:有哪些索引?
答:唯一索引,主键索引,组合索引,普通索引。
问:一条SQL比如order by 一个字段,where一个字段,能用几个索引?
答:多个,一个索引是一个b+树,如果是用的覆盖索引就会回表用两个索引。又讲到非聚簇索引的b+树原理了。(如果面试官没给你限定单表那肯定不止这个原因)
问:索引覆盖了解吗?
答:非聚簇索引(又讲到这了),底层叶子节点存的是这几个组合索引字段的数据,如果你select时要其他数据会需要回表。如果不想要回表,就需要索引覆盖,就是只查组合索引定的那几个字段。
问:对一张上亿的表进行优化。(这块我答的也不太好,之前公司就没做过)
答:分情况,如果这个是线上的表,垂直拆分就做不了。可以做个水平拆分,按照时间划分把旧的数据拆分到新表或者新库中。如果这是线下的就可以考虑将业务比较少用到的,大字段拆分到新表中。最后还要考虑有没有深度翻页的问题。
问:有没有进过外包
答:有,外企的,图有转正机会去的。
反问环节,面试就十几分钟,担心时间太少主动和面试官说我这能抗住一个半小时的面试(就是担心技术优势不能盖过学历劣势)最后面试时长半个小时多点,工作中postgres用的很多,讲了pg的b树和MySQL的b+树差异。还被关于分布式一致性问题,还说了自己会的哪些算法。面试官还问能不能英语介绍自己…看样子很重视英语。
8.4终面,VP副总裁面。
问:离职原因
总共花费13分钟,问完离职原因就不想问了,反问我要问什么,我一看这家伙就不想放我,面试结束。
8.7主动询问HR
最后不出意外就是没有通过,终面完第二天就在boss看到他们公司疯狂沟通。感觉cto不是特别想要或者就是cto说话也不管用啊。
感觉就是学历问题。咱大专就等于坐过牢,英雄不问出处只有在电视剧中才能看到,没哪家企业愿意。
还是转golang了,node.js 17k以上很多都是全栈岗了,全栈基本就是前后端精通工资也没高级后端工资高,钱少事多没发展。高级 node.js 岗位很少,没个本科基本就投不进去。有也是外包,或者英语口语熟练。
总结:node.js后端专精没必要,国内没什么人用。要么你是前端想往全栈转。全栈你转了也不会工资怎么涨的,建议就专精本行提升学历。目前学到golang的 gin gorm crud 感觉也不难。
全部评论
老哥工作多久了,感觉好强
点赞 回复 分享
发布于 08-07 16:18 广东

相关推荐

12-08 16:41
已编辑
门头沟学院 前端工程师
虽然但是还是有点点受挫,身边的好多学长学姐现在都在大厂,甚至有同28不同方向的已经有一段实习了,自己还连一段实习都没感觉还是要多努力学习学习,有面试已经是很好的开端啦愿好运常伴我身timeline12.4 要简历约面12.6 一面12.8 询问面试反馈,说没过,给了面试评价和建议,公司给我的印象真的很好 TvT 继续努力✊一面面试官是个女孩子,特别特别特别的友好,虽然说是第二次面试,但是在面试前还是很紧张的,面试官一直是笑着的,让我觉得很放松 TvT,总的来说八股问的比较多,一般是根据你的回答进行追问1. 自我介绍2. Medule Federation 对于 monorepo 的优化体现在哪?3. 说说 cdn4. 打开一个网页的过程5. 说说布局和绘制6. 还有什么会影响布局7. 虚拟列表原理8. 把列表换成树怎么做(不会 TvT9. JS 异步的实现10. 对于计算量比较大的任务可以怎么做11. webWorker 缺点?(没答出来12. 说说闭包和作用域13. 闭包和垃圾回收机制14. 怎么清楚闭包中的变量15. 垃圾回收机制什么时候触发16. nodejs 内置的模块(没答出来17. 问了一下学校什么课程18. 问问数据结构的,数组和链表的区别(没答出来 TvT,私密马赛 sansei19. 用什么打包?20. Vite 的配置你是默认的还是会自己去配置21. 组件库按需导入怎么实现的22. 为什么还要配置 umd 导出23. 说说 umd,amd,cjs,esm 的区别24. 说说你的 LLM 的项目25. 怎么管理对话上下文的?26. 说说 sse,为什么用 sse,和 webscoket 区别27. websocket 用过吗?(没有28. sse 是怎么实现的29. 把你知道的前端性能优化方面说说30. 什么会导致 React 组件重复渲染31. 说说怎么减少不必要的渲染32. 说说浏览器的缓存33. http 的版本有什么区别反问1. 公司业务(面试官好耐心的跟我说了好久,业务有 agent 平台,PRA 还有 web 端客户端之类的2. 实习生会有人带吗3. 面试反馈什么时候出4. 觉得我答得怎么样(答的都挺全面的,但是还是有些深入的东西不是很熟,比如说为什么啊之类的,但是我们不能以工作好几年的要求来要求还没工作过的你嘛
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务