海恒智能一面(对产品全流程要有思考)
面完海恒智能,我突然发现小型企业和中大厂的招聘逻辑有许多不同之处。
小规模企业似乎会更加注重你解决产品全流程问题的能力,这种能力不仅仅局限于你编码技术是否牛逼,还有你对于需求分析、系统设计等方面的思考。
这次的这位面试官,一道八股文都没有考我,这点和前面得物一面全程八股拷打形成了鲜明的对比。
这位面试官多次向我提到对于产品的思考。
他说的一句话令我印象很深:我们招人进来,并不是看你技术有多牛逼,而是看你解决实际问题的能力是否够强,如何从产品的角度去分析需求,如何进行数据库表设计,如何进行模块的拆解,如何搭建一个程序的整体框架,如何进行全过程开发,从零到一实现一个产品项目。
我感觉这种要求对大多数应届生来说可能都太过于苛刻了。
言归正传,面试官主要针对我项目的业务场景进行了发问,问题如下:
1、介绍一下你觉得掌握比较好的项目,重点介绍一下,包括项目中遇到的难点,以及是怎么解决的。
2、模块拆分、架构设计由谁来主导?如何进行数据库的设计?
3、你说一说企业里面从需求到最后部署实施落地的过程,工作过程及分工。
4、听你使用到中间件,你能说说不同中间件使用的场景吗?消息队列会在哪些场景用到?
5、看你的项目有用到微服务,微服务主要适合哪些场景?选择了以后会存在哪些障碍,难点?
6、参数校验一般会放在什么地方?
7、怎么去做组合校验?在VO里面有办法吗?
8、了解vo、dto、do这几个概念吗?
9、你怎么看待将传入参数用Map接收?你能接受使用Map吗?有没有什么问题?
10、如何实现代码的可读性、可扩展性、可维护性。具体说一说。
整场面试聊了50分钟,面试官也对我提出了许多建议:
1、对生产环境的流程要熟悉,对软件工程的概念要清晰完整。
2、要对项目有更加深入的理解,要思考如何从0到1去实现一个产品项目,包括需求分析,数据库设计等等。
3、要去了解各种企业公司他们在做什么产品,这个产品是怎么做出来的,人员分工是怎么样的?多了解别人的生态情况。
4、要对业务有更加深入的思考,要从产品的角度去分析需求,使用技术来解决需求。让技术服务于产品,而不是颠倒。
反问:
1、你们项目组目前在做什么业务。答:图书馆业务,图书馆整体的解决方案。
2、你们项目组使用什么技术栈。答:微服务是一个没听过的开源平台。单体服务用的是Spring Boot + ES等。
3、对我有什么建议吗?答:如上。