戊子仲秋
Golang后端
·2023-08-30
刚刚看完了鱼总 B 站发的视频,收获很大,总之就是马上写了一篇面试复盘,建议配合鱼总的 B 站视频食用~ 下面是我做的复盘: 1. 请你先做一个简单的自我介绍 答:先介绍了名字,学校专业,工作经历,学习的技术栈,求职的岗位(如果是我我大概会直接介绍我的项目) 2. 介绍一下学过的 Java 技术(应该就是根据前面自我介绍讲的学习技术栈,然后问出这个问题) 答:就把学的技术大致讲了一下 3. 学校学过啥课程?最好说一些和后端相关的课程和技术 答:后端相关:JavaWeb,Linux,通用类:数据结构,计组,计网(还举了一个网站上线的例子),能力:前后端交互 4. 追问:操作系统学了没? 答:学了 5. 讲一下你为什选择读全日制研究生,或者说你希望这段读研给你增加什么经历,或者对你以后的职业发展有哪些帮助 答:(我没太听懂他答的逻辑,主要是引出了他在学的区块链方向,以及人工智能相关) 6. 如果你以后工作 3,5 年的时候,你会考虑去做这些方向工作吗? 答:可能是会的,区块链就业有一定的就业前景,但是我对这些方面还不够了解,读研还在学理论阶段,如果以后要转这些方向,还得精进一点,还是先以提高技术为主 7. 如果你工作了 5 年,你希望你自己可以达成一个什么样的目标?或者在哪个领域有哪方面的成就吗?(鱼皮举了一个自己的规划的例子) 答:先夸了一下编程导航,然后表示自己的兴趣点也在这上面,自己比较喜欢分享知识,举了个例子:学到的东西会录个视频发到 B站上(总之就是会分享),至于说 5 年以后,5 年以内是要学好技术,之后的方向并不那么确定,需要更多的一个摸索认清自己感兴趣的方向 8. 问简历上的工作经历,单从简历上看,并不能知道你实际做了那些工作,可以讲一下吗? 答:从公司的开发模式开始,讲他的工作经历(我不怎么听的懂,他是做了 8 个月的前端开发),重点讲了两个经历,一个是自己独立完成的项目,一个是跟着师傅做的修改组件库的工作 9. 然后鱼总就跟他聊了几句公司的工作相关的东西,接着就深入去问他做的项目 答:就是回答项目的一些问题(我不太懂,因为不是我的项目) 10. 你有没有使用过类似 testing library 的这种自动化测试单元,或者是一些其他的开发库或者说组件库? 答:讲了自己学的一个库,然后他不太了解这些,就转移话题到日志上,就开始将日志相关内容 11. 说的还不错,但是出发点有一点问题,鱼总教学时间:我们开发一个产品是先测试再上线,上线之后才看日志的,所以打日志是不能解决开发过程的一些 bug 的预先发现,得出了问题才能排查,所以单元测试还是很重要的,这两件事情他们解决的问题是不太一样的。然后鱼总就接着问他的另一项目 答:他就介绍他的项目 12. 你之前有没有从 0 到 1 搭建过一个后端的基础模板?比如说你从零开始开发一个项目会从零开始,还是根据自己之前的代码复制粘贴或者用脚手架命令行生成的方式创建出一个新的项目。首先是有没有搭建过,另外是如果让你来搭建,你大概能想到给这种模板加哪些功能? 答:在星球里看到鱼总的框架,这种框架之前有过类似的想法,比如之前公司的要求:保存常用的常量到一个文件,提炼常用方法等等,自己也有想过组建一套自己的代码库,包含常用方法,接口常量,api,增删改查的模板,虽然没有自己搭建过,但是有一定的构思,(然后说了一些自己的具体的思路,也提到了自己项目的应用) 13. 鱼总根据这个话题,讲了几句公司的开发理念,所以要求候选人也需要这样的意识(想去鱼厂的球友记得注意准备这个问题~)。我们后端一般情况下来讲,接口应该遵循什么样的一个设计规范,或者设计原则/风格?或者说你有什么设计经验? 答:讲了一些代码规范相关的内容:阿里的开发手册,讲了个路由设计的例子,然后是类型名易读,大小写规则,接口的规范等等,出一份文档让所有同事都遵循。 14. 如果你作为一个后端,要给前端提供一个接口文档,便于他阅读和开发,减少你们之间的沟通成本,会用什么样的方式或者工具来提供? 答:听说过一个工具(我没听说过),如果是我去做接口文档,会按照类似的这种官方文档,这种接口规范工具来导出一份接口文档。制定好每一功能点以及其涉及的增删改查的请求方式,路径,URL,请求成功或者失败的示例的 JSON,有这些信息基本就能很清楚的表达出这个接口的一个数据规范。 15. 简单介绍一下你的第二个项目 答:就是介绍他的项目啦 16. 这个项目有实际上线吗? 答:在公司内网上线了,在 Linux 服务器上上线的,有一些老员工的帮助 17. 那你有了解这个上线流程吗? 答:有,(他讲了一些第一个项目上线的情况,怎么用的宝塔部署之类的) 18. 问一个偏经验的问题,如果一个 Java 这样的后端项目上线之后,你怎么样尽量保证这样一个项目上线的稳定性,比如说不要三天两头的死掉了然后又得人工重启,能不能想到什么方法和策略 答:首先是要进行版本备份,举了一个鱼总 B站视频内容的例子,也就做好数据库和代码的更新和备份,比如说 git 版本管理工具,遇到问题及时回退版本,第二个点就是可以在部署的时候,用一些自动化运维的工具去解决容易出现的问题,如果有问题就会有告警(这里举了个工具的例子),还有自动化测试脚步 19. 鱼总的补充:1、监控报警,如果项目停了,马上能收到短信或邮件,或者有问题收到告警;2、用 supervisor 或者一些进程管理工具监控项目的进程,如果挂了,可以用这些工具把它再自动拉起来,总之先拉起来再说,然后同时发一个告警,这样有一个更及时的处理;3、遇到高并发等不同场景的自动扩容和缩容;4、大公司里面会有的故障演练,每隔几个月的时间会有运维的同学专门来演练,看看出了异常需要多久时间恢复,项目是否能常驻等等。这些都是一些保障项目上线稳定性的方式 20. 之前有背过八股文吗? 答:背过一些 21. 你上一家公司是已经离职了 6 个月,那这段时间你在做些什么? 答:(他分了三个阶段讲他做了啥,然后讲到了中间进了一家低代码开发的公司,然后讲了离职的原因,总结来讲就是不符合技术成长预期) 22. 那你第一家公司离职的原因是什么呢? 答:第一家公司离职的原因有两个:1、校招想走 Java,结果公司没通知直接调到前端,个人更喜欢后端,且后端更贴近公司业务;2、公司在苏州,考虑地域原因,想来更多机会的上海来发展 23. 鱼总根据简历内容问技术栈:你能简单说一下你使用过的 maven 特性吗? 答:(我没学过 Java,所以就没有记录他的回答) 24. 那你有没有使用过 maven 去构建和管理多模块项目 答:讲了一些 spring cloud 的内容 25. 经典的八股面试题:MySQL 有哪些调优方式? 答:1、讲了索引相关的调优策略;2、explain 关键字,去改 MySQL 语句 26. 鱼总的回答建议:建议先从整体角度回答,前面的索引方面讲的有点多了,鱼总个人回答建议:从优化实现成本的角度去分层,1、可以从硬件层优化,换一个高配的服务器,数据库的性能可能可以升很多倍;2、再往上就是配置 MySQL,比如说可以配置缓冲区,配置最大连接数,这样遇到高并发的时候,MySQL 系统连接数打满了,如果服务器资源够就可以增加连接数;3、然后是 MySQL 的存储引擎方面,不过我们现在基本用的都是 InnoDB,MyISAM 这些;4、再往上才是索引的设计,库表的设计,可以分库分表读写分离,把一些字段动静分离,把易修改和不怎么变动的做一个隔离;5、最后一层才是我们平时的编码设计,就是他刚刚回答的内容。一上来就说索引的话,很容易被问死(还好鱼总不喜欢问这些,不然 B 树就能问很久) 27. 现在想 AI 这些非常流行,你平时会有去关注这些技术热点的习惯吗? 答:不会主动去搜,但是很关注,然后讲了 GPT 对他学习上的帮助,眼界的开阔,帮助工作等等。 28. 可以在补充一下你之前的经历,或者说做过的一些东西之类的 答:回答了一些在大学做的东西,还有毕设 29. 方便介绍一下你对自己的一个评价吗?你在那些方面比较擅长或者是性格有哪些优势? 答:我觉得我有两点优势:1、第一点,我个人认为我是比较擅长沟通和交流,讲了在以前公司经历,在答疑分享会上分享自己学到的知识,与同事良好沟通互帮互助;2、对新兴事物比较感兴趣,虽然经验上欠缺一些,但是主动探索能力是有的,举了 AI 以及大学修第二学位的例子 30. 鱼总对他的评价表示认可,但是有个疑问,就是刚刚你说你选研究生方向是从 python 角度出发,那你为什么现在想要去找一个 Java 的工作呢? 答:讲了现在的就业环境,Java 比 python 理想,讲了大学时对 python 的兴趣,表示现在工作之余也会持续学习 python,也能用 python 去解决工作中的实际问题 最后鱼总表示了解,并询问是否还有问题要问,他没有问题要问,面试结束。总计 54 分 30 秒。 这里我说一下我为啥要做这个复盘,首先是鱼总把视频公开出来了,我就去学习了一下,感觉收获不小,就打算总结成一个复盘给自己以后看,这样就不用再重新翻那个视频了,然后这是我见过的第一个面试现场,所以就是没忍住做了这个复盘,这里就分享给鱼友们看一下~
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP