作者MAiKAZELaTeX (冷雨凝星)
看板Soft_Job
标题[心得] 2022上半年後端面试分享
时间Sun May 8 01:36:40 2022
前言:
首次在本版贴文,若有不恰当或是需要修改的部份麻烦再告诉我,谢谢
本次面试的时间在
2022年3月到4月之间,内容可能有点多,请见谅
列出的公司顺序是按照我自己开始面试的时间做排序
内容也是结束根据印象写下的,所以可能不是很完整
如果懒得看的人或许可以参考一下我个人面试完的结论
但由於我自身的经验所以结论可能不完全正确,如果有其他想法也欢迎留言
希望这篇文章能够帮到有需要的人,也祝大家都能找到自己理想的职缺
背景介绍:
四中硕士,2年後端工作经验
主要使用Java和Spring Framework进行API开发
熟悉关联式资料库、mongoDB和有使用过一些Message Queue的经验
有使用过Docker及Kubernetes部署过服务,没什麽在Leetcode上刷题
1.
Line:
自己主动在求职网站投递履历,有点忘了当初投的职缺,但应该是Junior的後端工程师
一面:
HR会寄一个测验连结,印象中答题时间是1个小时,题目总共10题
大概有2-3题coding的题目,难度大概在Leetcode Easy左右,主要是字串和阵列处理
剩下的则是选择题(单、多选皆有),但包含的领域很广
基本上一题就会是一个领域,但难度应该都不高
我有印象的内容有Security、DNS、SDN、Linux output code之类的
结果:无声卡
2.
IBM:Application Developer - Java & Web Technologies
自己主动在求职网站投递履历、LinkedIn上被HR询问意愿後,协助安排时间面试
总共面试过三个职缺,不过工作内容都是Java後端,所以把他们有问到的问题做统整
一面:
面试时间都是1个小时,和面试官1对1、1对2的情况都有,都会留5-10分钟让我提问
被问到的问题大概分为下方这几类:
1. 使用过的技术的掌握程度:
Java、Spring Framework相关的问题
专案上使用Kafka、Solr、MongoDB的原因?
有使用过script language的经验吗?主要在哪种OS上开发?
让我介绍SVN和Git的差异
2. 优化、调教的经验:
对於Java Memory的管理方式是否清楚、是否有做过效能的优化?
如何加速关联式资料库内的资料捞取?
3. 设计相关:
在开发的时候有使用过Design Pattern,或是有考虑使用吗?
我开发过专案的架构是怎麽设计的,有没有其他更好的设计方式?
有设计过微服务的架构吗?
4. 其他:
当拿到需求的时候要怎麽将它转换成业务逻辑?
在开发服务的时候怎麽和其他开发者沟通,或是要怎麽设计出前端需要的物件?
离职的原因?
结果:三个职缺里,感谢函和无声卡都有
3.
趋势:Software Developer
自己主动在求职网站投递履历
一面:
HR会寄一个测验连结,答题时间1.5个小时,总共3题的Coding
印象中应该是一题字串处理、一题阵列处理和一题比较复杂一点的飞机安排座位问题
对於有在刷题的人来说,应该不算是太困难的问题
二面:
当天安排三个单位进行面试
第一个小时由两个部门一起面试,第二个小时则是分配给另一个部门
三个部门都会各自介绍开发中的产品和这个职缺会需要那些能力
主要根据我在自我介绍时,提到的技术来做提问
有些他们比较有兴趣的部份会继续延伸问题
像是为什麽某个专案要采用Kafka?
Kafka在使用上的优点和特性是什麽?有没有其他替代的方式?
如果不能使用任何Message Queue的技术,要怎麽设计架构?
这个替代的方式会遇到什麽问题?
面试结束後,HR有请我根据自己的喜好排序刚刚面试的部门的优先顺序
三面:
不确定和上一轮的喜好排序结果有没有关系,但最後是和我最希望的职缺再面试一轮
这次面试官增加了一位
由於上一轮面试比较少谈到Java相关的问题,所以这一轮主要都在问Java相关的问题
印象中Java问题和IBM提到的内容差距不大,所以这边就不赘述
四面:
到公司和HR进行现场面试
有被问到一些技术上的简单问题,主要还是集中在个人性格和个人背景的问题
像是有没有和其他人合作的经验?
有没有领导过团体的经验?
如果有的话具体又是什麽情况?之类的问题
结果:Offer get
4.
美商网基:Java Backend Software Engineer
猎头询问意愿後,协助面试申请
一面:
4个小时做2题,2题都是程式题,据说评分会根据程式的正确性和花的解答时间有关
题目和他们公司做的内容有关系
第二题是第一题的延伸,但会更加接近真实情况和解法的效能增进上为主
结果:猎头告知成绩未达标
5.
乐天国际商业银行:Java後端工程师
自己主动在求职网站投递履历
一面:
面试时间1个小时,总共有4位面试官,应该从工程师到大主管都有
比较有印象的问题大致如下:
若让我使用SpringBoot从头开发一个简单的、只需支援单张资料表CRUD的服务
会需要多少时间?
有没有使用过除了Tomcat之外的Web server,像是JBoss或是其他server?
CD的流程是使用Jenkins吗?如果是的话,流程又是怎麽做的?
在开发服务的时候,有特别考虑到丛集的方式来开发吗?如何保持资料的一致性?
最後有留一点时间让我做提问
但由於他们有需要保密的地方,所以比较难问使用的技术相关、或是工作细节的问题
结果:感谢函
6.
微软:Technical Support Engineer-Developer
LinkedIn上被HR询问意愿後,协助安排时间面试
由於这个职缺不是後端工程师,比较偏向技术支援
所以HR有稍微介绍了这个职缺比较需要的能力和工作上会遇到的情况
一面:
Phone screen,1-1.5小时的全英文交谈
技术上讨论的点不多,比较多着重在英语的口语表达能力和个人性格
首先请我介绍我自己,然後大致上被问一两个技术相关的问题後便开始下方的问题:
我认为这个职缺在技术能力和沟通能力哪个比较重要?
我目前手上有没有Offer或是正在面试的公司,如果有,我会怎麽排序它们?
我自己觉得的3个性格上的优点,有没有例子可以证明?
假设在工作上遇到紧急事件我会如何应对?
我是属於冷静的人吗?
二面:
Role Play,30分钟左右的英文对谈,但我实际上只讲了15分钟
面试前会事先给你一份文件,介绍你所扮演的角色
让你根据文件上设定的情境,事先思考要怎麽模拟这个角色
如果有事先准备的话应该没什麽太大的问题,遇到问题时,对方也会提供协助
三面:
由两位面试官一起面试,全中文交谈
有技术也有个人性格的问题,但比重上是技术大於性格
其中一位会简单介绍这个职缺会使用到的技术、需要的能力
另一位则会准备两个简单的测试
1. 给我一份开源的程式码,请我找到其中的某个函式後
根据它的程式码介绍它的功能
2. 给我一份技术文件和三个问题
让我在5-10分钟从这份文件中找出这三个问题的解答
最後询问我对於这个职缺有没有兴趣?
或是有没有什麽想法,以及我是否喜欢学习新知识
四面:
由一位面试官进行1个小时的面试,相较於前一个关卡,这个面试比较轻松一些
有要求使用英文自我介绍,然後他会根据介绍的内容来进行英文提问和对答
五面:
和一位面试官面谈1个小时,大概15分钟中文->20分钟英文->25分钟中文
问题比较偏向上一关比较没有问到的部份
第一段偏向使用过的技术相关的问题
第二段则是使用英文回答面试官的问题,主要被问到的比较像是工作时会遭遇的情况
像是我在工作上遇到问题的时候要怎麽处理?
关於我的性格?
有没有例子可以证明我的性格?
第三段则是轻松一些,被问到关於未来3-5年预期的发展
然後给我一点时间来做提问
结果:Offer get
7.
中国信托:软体设计工程师(核心转型)
求职网站上HR询问面试意愿後,与他商量面试时间
面试前要填一份简单的个人的履历档案
一面:
面试时间1个小时,面试时用人主管和HR会一起参加,但两者问的问题不会重叠
HR的问题就是一般人格特质的问题
再加上一些关於背景的询问以及离开前公司的原因
用人主管的问题有如Java和Spring相关的知识,也会根据我专案使用的技术来提问
有被问到怎麽将客户需求转换成业务逻辑,应该是这个职缺会很需要的一个能力
所以有不少问题都是基於这个来做延伸,怎麽转换的思路和步骤可能要说明的很明确
结果:感谢函
8.
Garmin:企业流程服务课_软体工程师
求职网站上HR询问面试意愿後,与他商量面试时间
面试前要花一点时间做性向测验、英文测验和个人的履历填写
一面:
表定上安排了30分钟的HR面试,但我实际上大概进行了45分钟左右
HR会按照她拿到的资料(求职网站上的履历、公司网站上的个人履历填写),详细询问
二面:
和一位主管面试,大约两个小时左右,首先他先介绍了这个职缺的主要工作内容
基本上会根据个人的经历,然後按照技术的类型来做问答
像我有被问到Java、Spring、资料库(SQL与NoSQL都有)、Kafka相关的问题
除此之外,关於结构设计上
主要是问我开发过的专案中为什麽要使用Kafka或是MongoDB之类的问题
还有我是否理解Java的memory管理的机制、有没有Performance Tuning的经验
此外也有提到关於这个单位的未来发展,最後也给我一些时间来提问
个人感觉主管人蛮好的,面试起来蛮愉快的
结果:已拿到其他Offer,中止面试流程
9.
Ubiquiti:Sr. Backend Engineer
猎头询问意愿後,协助面试申请
一面:
大概1.5个小时,由2位工程师一起面试
前30分钟根据他们给的题目在类似Google Doc的网页上直接作答
题目大概是2题Java相关的基础知识,另外3题Coding
题型大概是简单的数字计算、阵列处理和一个简易的Linked list
作答时间结束之後,请我一边解释我的作答内容,每一步操作的内容是要做什麽
然後让我说出我的解法的计算时间复杂度
由於这个缺比较不需要处理CD相关的流程
所以我没有被问到Docker、Kubernetes这些技术
结果:猎头告知已选择其他人
10.
Yahoo:Software Engineer (Backend)
从官网上投递履历後,与HR商量面试时间
一面:
与面试官大约一个小时的中文对谈
因为这个缺和金流比较有关,所以会额外注重security相关的知识
一开始面试官会稍微介绍一下这个职缺的工作内容和使用的技术
他会从我的自我介绍的内容中选择他比较有兴趣的技术、专案的功能提问
除了上述过程的提问之外,也有被问到Java与Spring相关的知识
像是Java的==与equals()的差别?hashCode()是做什麽的?
什麽是hash?在实现hashCode()有没有什麽需要注意的地方?
Spring的话,则是请我解释什麽是控制反转(IoC)与依赖注入(DI)?
和我是否有使用过@Bean来做一些操作的经验?
由於在我面试的这个时间点,Spring有出现两个安全性的漏洞
一个与Log4j有关,另一个则和Spring4Shell有关
所以也有被问到我是否知道这个漏洞,以及要如何去解决他们和临时的修补方式
再来是透过类似google doc上的网页来写程式码
这个部份主要是观察遇到问题的反应能力,和一些coding的习惯
总共三题蛮基本的题目,印象中题目的暴力解都很直接,最佳解也不算特别刁钻
然後都会要求你计算和解释各自的时间复杂度
有时会根据你的解法再问你有没有其他最佳解
最後有留5-10分钟的时间让我做提问
结果:感谢函
结论:
面试起来的感觉是,2年的工作经验处在一个比较不上不下的情况
比Junior多一些知识和熟练度,但经验却又不到Senior的程度
由於准备的时间不多,所以我本身准备的内容
主要还是集中在使用的开发工具,如Java和Spring相关的知识
但其实还是很常遇到一些超出我能力的问题
像是架构设计方面的问题和效能优化的问题
这些因为我本身经验不足,所以被问到的时候都会比较难回答
如果有时间的话可以稍微准备一下相关的知识
除此之外,不确定是不是我经历上有写使用Kubernetes的经验
所以不少公司都会问到有没有使用AWS、GCP、Azure的经验
但由於我只有使用过自建的Kubernetes丛集
所以比较难回答相关的问题,这点比较可惜一些
若有机会的话,我想可以花一点时间培养相关的能力,应该会有些收获
值得一提的是,如果是换工作,不论用人主管或是HR都有很高的机率会提问离职的原因
所以非常建议事先思考要如何回答和包装一下,这边的包装并不是捏造的意思
而是选出你觉得比较能展现你个人优点或是特色的部份
我想,会考虑离职大概会是好几个原因的综合因素,而不是仅仅因为一个单纯的理由
可以事先从中挑出一两个理由,若是这个理由能让他们接受和理解应该会有一些帮助
在投递履历上,除了使用比较知名的徵才网站
我也建议在Linkedin建立自己的档案,让其他人有办法联系
虽然我在Linkedin上提供的资讯不多
我只有放上公司、学历、技能和一个Java的技能标章
但还是接到不少询问或是邀约,这点倒是超出我个人的预期
若是公司本身有提供窗口或是管道可以直接投递履历的话
使用这个方式的我觉得接到面试邀约的机会,会比前两项更高一些
可能是因为疫情的影响,所以面试的方式和我两年前的时候差很多
比较前面的面试主要都是使用视讯的方式
所以我比较有机会一天的下午同时排2-3个面试一起,蛮省事的
实际上我自己只有一间公司需要去现场面试
其他都是线上面试,所以我觉得对求职者来说,面试花的成本降低不少
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.184.12.61 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1651945002.A.6D7.html
1F:推 qwe70302: 标题跟我前段时间发的文好像XD 05/08 02:18
2F:→ qwe70302: 蛮好奇最後的offer是多少,因为我也是两年,不过是前端 05/08 02:18
价格的话我不太好直接说,但和前公司比的话至少有20%以上
3F:推 MyNion: 推分享,下个礼拜也要开始面试ㄌ 05/08 02:25
4F:推 ntpuisbest: java一年推 05/08 02:30
5F:推 ntpuisbest: 想要问这些公司都前後分离吗?不知道需不需要掌握前 05/08 02:41
6F:→ ntpuisbest: 端框架,还是一点点jquery就好 05/08 02:41
应该都是前後分离,这些职缺我没有被问到任何关於前端的问题
不论是主流框架,甚至是最基本的Html、CSS、JavaScript都没有被问到过
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/08/2022 03:13:02
7F:→ ntpuisbest: 谢谢喔,我一直在想我在写内部系统,所以都没机会用 05/08 03:32
8F:→ ntpuisbest: 到K8s,或是kafka,这样是不是就只能自己去架了或是刷题 05/08 03:32
如果你对K8s内部的运作原理和机制很有兴趣的话,我才会建议自架K8s
不然可能会在安装的过程中,遇到不少麻烦需要处理,额外花掉一些时间
而且K8s的版本发展很快,我印象是每三个月会出一次minor version release
所以如果你想要用到新版本的功能的话,还要自己升级会有一点点麻烦
若你只是想要使用或是了解如何透过K8s来部署你的服务的话
Google、Amazon、微软应该都有提供相对应的服务来使用,这个应该会省事不少
虽然应该会需要额外的支出,但可以让你比较专注在你想要学习的东西上面
如果你真的要自己架K8s,现在应该有蛮多别人做好的安装K8s的服务或是教学
像我当初用的kubeadm、kind(Kubernetes in Docker)或是K3s之类的
使用minikube也OK,但他只能跑执行单个node,所以会和真实的K8s丛集不太一样
Kafka如果只是要自已玩玩看的话
启动单个服务应该是蛮简单的,需要的资源也应该不会太多
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/08/2022 07:16:20
9F:推 Booker5566: 感谢分享 05/08 09:10
10F:推 mirror0227: 推分享 05/08 09:20
11F:推 z56562337: 推详细分享 05/08 09:28
12F:推 ccnancy: 谢谢分享 05/08 09:55
13F:推 hobnob: 推心得 05/08 10:59
14F:推 ntpuisbest: 谢详细,感谢 05/08 11:30
15F:推 moszap: 推 05/08 11:35
16F:推 whatabiggun: 推 05/08 11:44
17F:→ foreverk: 推,年初也是两年经验换工作,我的经验是想被当作Senio 05/08 12:01
18F:→ foreverk: r的话,面试回答内容不再是你会什麽,而是你用这些东西 05/08 12:01
19F:→ foreverk: 做了什麽,以及优缺点等等,不然别说面试官,你自己也 05/08 12:01
20F:→ foreverk: 会被问到觉得自己好像不上不下的 05/08 12:01
21F:推 foreverk: 按错补推 05/08 12:03
感谢补充,我也觉得这些问题当初在面试的时候
若没有事先思考和准备,都会比较难回答
毕竟没有能够解决所有问题的万灵药,很多时候还是要看当时的环境来决定
但像我由於自身经验的不足,如果只靠自己一个人思考,还是会有点难度
如果能找到一些人一起讨论的话,或许会是比较好的解法也不一定
22F:→ keyboard56: 好奇最後选择去哪? 05/08 12:09
23F:推 shaomi: 方便问你前工作在哪吗?是否值得去练功@@ 05/08 12:37
24F:推 Booker5566: 想问前公司+1 想练功QQ 05/08 12:40
25F:推 simplelife97: 推分享~ 05/08 12:46
26F:推 devilkool: 推 05/08 12:49
27F:推 jack931018: 感谢分享 05/08 13:08
28F:推 BeYaaaaaaaa: 详细 推~ 05/08 13:45
29F:推 acgotaku: 微软那个support缺 钱是真的蛮多 05/08 13:48
30F:→ acgotaku: 但让我选 可能会选趋势 05/08 13:49
我当初也在考虑要怎麽选,因为两个职缺都有我想尝试的东西
但最後还是选择了微软,一来是因为公司本身的名声
二来是这个职缺在介绍和面试的过程,有些地方蛮吸引我的
31F:推 WaterLengend: 现在面试後端真的就是要你变全端的形状,不然就是SR 05/08 13:50
32F:→ WaterLengend: E的形状XD 05/08 13:50
33F:推 richer6605: 感谢分享! 05/08 14:08
34F:推 shieldsky: 感谢分享,感觉英文也是一个很重要的预备技能 05/08 16:26
35F:推 MDay56: 感谢分享!! 05/08 19:47
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/08/2022 20:58:05
36F:推 loveu8: 推,感谢分享。可以看到企业本质不同,要得人就不太一样 05/08 21:10
37F:推 loveu8: 也看到一个状况就是,很多Java底层东西 05/08 21:17
38F:→ loveu8: 其实要遇到碰过,才会知道原来有这状况发生 05/08 21:17
39F:→ loveu8: 其实就看面试官怎麽引导跟解释了 05/08 21:18
40F:→ loveu8: 很多时候会问到,可能就是实务上 05/08 21:18
41F:→ loveu8: 有遇过类似问题,想要知道你的技能树 05/08 21:18
42F:→ loveu8: 有没有贴近他们一点,若比较远的时候 05/08 21:19
43F:→ loveu8: 就看对方想要培养呢,还是放掉继续找 05/08 21:19
44F:推 shaomi: 感谢分享 05/08 22:13
45F:推 cjtv: 推 05/08 22:21
46F:推 shaomi: 方便问微软这个缺主要写java还是别的语言也碰 05/08 22:32
47F:推 Murasaki0110: support就是客服啊 写不到什麽吧 05/09 00:05
没错,当初有提到这个职缺不像软体工程师需要写大量的code
比较注重的是与客户的沟通能力和协助他们处理问题的能力
所以会根据客户的情况,需要了解或是熟悉他们使用工具比较底层的实作
这点是比较我吸引去尝试的部分,但实际情况还是要等我到职之後才会比较清楚
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/09/2022 01:31:07
48F:推 shaomi: 感觉面这麽多家好累,得疯狂请假 囧 05/09 01:43
49F:推 Goblet: 推 感谢分享! 05/09 02:16
50F:推 sky91302018: 推 05/09 06:28
51F:→ jobintan: 不过还是建议刷个几题easy - medium练练手,这些年头即 05/09 07:59
52F:→ jobintan: 便是前端都要求要有基本的data structure知识了。 05/09 07:59
53F:→ jobintan: 尤其是有肉身翻墙出国工作规划的人更得每天至少来十题。 05/09 08:00
54F:推 chyl13579: 感谢分享! 05/09 08:04
55F:推 godsparticle: 咦 只有微软有需要英文面试(?) 05/09 08:47
对,我只有微软面试的时候才有遇到使用英语对答的情况
但也有可能其他公司要到比较後面才有英语面试的关卡
不过我还没有进展到那个阶段,所以我也不能肯定
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/09/2022 09:01:24
56F:推 tengod00: 推分享 05/09 09:58
57F:推 transforman: 推推,听说微软客服很精实喔XD 05/09 23:27
58F:推 viper9709: 感谢分享 05/09 23:50
59F:推 wilsonnnn: 感谢分享 05/13 09:49
60F:推 ggyyder123: 感谢分享 05/13 13:46
61F:推 ofow: 请问原po微软的五面是分成几次(天)呢?从投递到收offer大 05/16 08:24
62F:→ ofow: 概经过多久?谢谢 05/16 08:24
之後有问题的话可以直接站内信问我,因为我不一定会来看这篇推文xD
总共的话应该是5次4天,因为二三面在同一天
如果从投递履历开始算的话,我印象中的时间间隔大概如下:
投递履历:+0天
一面:+6天
二面:+13天
三面:+13天
四面:+20天
五面:+21天
确定拿到offer:+35天
※ 编辑: MAiKAZELaTeX (111.184.12.61 台湾), 05/17/2022 04:56:33
63F:推 tloy1966: 推一下 06/15 21:24