
杭州智瀑科技实习面经
岗位:Web 全栈开发(前端 Vue+后端 Node) base:杭州
时间:2024.11.22
公司核心业务:智慧党建以及红色研学平台服务的系统、小程序等开发
哈喽各位小伙伴,我来回馈编程导航了。第一次写面经,还是我的处女面【手动滑稽🤡】。
先介绍一下我的基本情况:本人大三,计算机专业,Java 后端方向,前端也会一点。
面试阶段的技术水平:
后端:SpringBoot、MyabtisPlus、Linux、Docker、Git
前端:Vue3+React+Ts
项目:
一个 uniapp 小程序项目(二改的黑马的小兔鲜【个人感觉这个项目拿来练手还是挺不错的】)
一个鱼总的 AI 答题应用项目(面试官和老板都非常感兴趣!!!)
一个自己做的 AI 智能导诊服务系统(同样是一个 AI 应用,是基于鱼总的 AI 的项目,并加了一些自己的想法和见解的 AIGC 项目)
简历会贴在最后(有兴趣的小伙伴可以自行查看)
从到公司开始一面、二面再到拿实习 offer 一气呵成!!!(历时三个多小时)
第一次面试感觉很紧张,在休息室等了快一个小时,刚到的时候就有些坐立不安,喝水的时候手都在抖(我真没开玩笑哈😅)。旁边同样有几个同学在等面试,作为 e 人直接主动发起聊天请求,不知不觉就唠上嗑了,哈哈哈哈哈!聊了一会儿,紧张情绪得到了很大程度上的缓解
一面(技术面)
回归正题,进入面试环节。技术面是两位技术人员,一位技术人员另一位应该是管理人员,都非常年轻(后面听老板说,给我面技术的那个人非常牛🐮)
面试官 0 帧起手:“同学,展示一下你做的项目”(内心 OS:啊?不先问我的基础问题,怎么直接项目起手了,要是没项目咋整?(还好鱼总项目多【手动滑稽🤡】))
我小心翼翼插上大屏显示器,打开电脑,打开微信开发者工具,打开了我的 mbti 性格测试小程序,酷酷开始介绍
面试官:“介绍一下测试中的评分算法是怎么实现的?”
我:(内心窃喜,早有准备,正中下怀)
参考答案:
这个项目就只问了这一个项目,直接过渡到下一个项目:橙狐优品(二改的马哥的小兔鲜,并且取了个别致的名字)
首先先介绍项目的核心业务和流程,介绍了大约十几分钟,看得出面试官挺满意的,一直在点头(不得不到说,马哥的项目还是有点含金量的),开启提问环节
面试官:界面是自己设计的吗?如果从 0 开始设计一个这样的界面你会从哪几方面考虑?
我:“是自己设计的(其他不是哈,但是我一比一复刻过,所以一点不慌🤡)。如果单单设计界面的话,以商城项目为例,我会先去参考现有市面上一些成熟、优质的产品,向淘宝,阿里。先简单临摹一下大致的草图,搭建基本的 html 骨架,书写 css 样式,接着去实现界面逻辑,最后做用户交互和体验的优化”
面试官:“嗯,好,我看你这里封装了一个通用组件,你是如何封装通用组件并在全局进行使用的?”
我:”因为考虑到在主页,购物车页,个人信息页中都用到了这个猜你喜欢组件,所以就把他单独封装成了一个通用组件。1. 把这部分的结构、样式和逻辑都单独抽离处理,在内部写写一个请求数据和重置数据的逻辑,并把这两个函数暴露给外面;2.在全局注册这个组件实例,为它提供 TS 类型校验;3.在使用的界面中直接使用这个组件,并通过 ref 属性绑定,当页面触底后调用实例的请求数据方法“
面试官:(点了个头)”嗯,你说一下微信支付是如何实现的?“
面试官:“好的,说一下订单模块是如何实现的?”
过渡到第三个项目(鱼总的 AI 答题应用平台,不吹不擂,妥妥降维打击马哥的商城)介绍了大约十几分钟的时间(面试官全程都在很认真的听,一直在记录,显然对这个项目比较感兴趣),开始被拷打
面试官:”你是如何实现 AI 功能的?“
我:”1. 首先要先给系统接入 AI 能力,这个项目接入的是智谱的 ChatGLM,然后编写具体的 Prompt 让AI 能够返回 JSON 格式的题目内容,通过 AI 平台开放的界面调试 Prompt,提高 AI 生成内容的完善都和准确度 ;2.由于 AI 完成生成整道题目的速度相对较慢,这里还用到了 流式传输,并对返回的字符串进行拼接,我基于 RxJava 的操作符链式调用处理 AI 异步数据流,最终返回给前端”
面试官: “看一下你写的这个调用 AI 的接口,你是如何封装对应的 AI 能力的?”
我:“首先创建对应的 AI 配置类,在项目启动时读取配置文件中的声明的密钥来初始化 AI 客户端实例,再编写 AiManager 来调用 AI 客户端,并重载多个 AI 调用的方法,提供统一的异常处理能力。比如随机性低的异步调用、同步调用、流式调用和传参等”
面试官: “你刚才介绍说有用到策略模式,你是如何实现策略模式的?”
我:“因为这里涉及到多种不同的评分算法,会根据用户的选择选择不同的评分算法,这种业务场景就非常适合策略模式,不同的算法对应的就是不同的策略,采用策略模式封装评分模块更加便于维护和扩展。1.首先定义了 ScoringStrategy 策略接口;2.定义了 ScoringStrategyConfig 注解,在注解里设置了 appType 和 scoringStrategy 两个属性来标识策略模式对应的应用属性和评分类型。3.每种评分算法都去实现策略接口,并标注上对应的策略注解(指定需要执行的是那种策略)4.定义ScoringStrategyExecutor 方法来驱动,在其内部注入所有的策略实现算法,定义 execute 方法,遍历评分算法列表,通过反射获取策略模式类注解上的属性即可筛选出对应的评分算法。”
面试鸭参考:为什么使用策略模式来封装不同的应用评分算法?它有哪些好处?具体如何实现? - 面试鸭 - 程序员求职面试刷题神器
面试官:“刚刚听你说到 SSE,这是什么东西?”(成功进入面试官技术盲区,这样的话我一本正经乱说你也不知道吧。【手动滑稽】)
我:“SSE 是一种服务端推送技术,可以实现服务端向客户端的单向推送和实时数据传输。最开始的时候我们是等 AI 将题目生成完毕才返回给前端,但是为了优化用户体验,我们在调用 AI 的时候采用了流式传输的形式,并对题目进行切割,切割成了一个个小的题目,然后一题一题的返回给前端,这样的话就必须保持服务端与用户端之间一直建立连接,所以项目中就采用了 SSE 这种技术。”
面试鸭参考:为什么用 SSE 技术将生成的题目实时返回给前端?有没有其他实现方案? - 面试鸭 - 程序员求职面试刷题神器
面试官:(点了点头)“我们公司做的是 Node 全栈的项目,如果让你写 Node 你是什么想法?”
我:(内心 os:哥,Node 没写过呀,我就是个臭写 Java 的,但还是得一本正经胡说八道😅)”其实不管是哪种语言,最重要的逻辑能力和思维能力,就拿这个 AI 项目来说,最重要的是分析需要,设计好整体的系统架构,设计好 AI 判题流程,理清具体业务的实现流程,代码的作用只是去实现我们的想法而已,它完全可以不拘泥于 Java,还可以使用 GO、Python、C++等其他语言实现“
面试官:”好的,能讲一下你都用 Docker 做了什么吗?“
我:”Docker 的话是一种容器技术,在项目中一般是将开发好的应用程序以及依赖打包到对应的独立容器中,打包好的 docker 镜像可以运行在任何支持 Docker 的平台“
面试鸭参考:什么是 Docker?为什么要在项目中用到 Docker?以及你在项目中是如何使用 Docker 的? - 面试鸭 - 程序员求职面试刷题神器
核心的技术问题大部分就是上面这些,还有一些非常简单的八股,这里就不赘述了。聊完技术问题开始闲聊起来,问我未来规划,什么时候能来实习,考虑在杭州发展吗,课程学得咋样。
聊了挺多,还挺开心的,主要给我面试的都是一些年轻人,交流起来代沟不大。
聊完之后让我在外面等一下,老板待会儿会叫我过去。
过了大约一两分钟,直接来到了老板办公室
二面(老板面)
老板大概四十多岁的样子,带个眼镜,穿着一个夹克,中等身材,气质特别好。
见我进来,微笑着让我坐下。
我唯唯诺诺坐在了老板对面的椅子上,中间只有一个茶几,老板很贴心给我倒了杯茶。
然后跟我说:“他们让你过来的话,你技术方面应该没什么问题了”
我很小声的嗯了一下(内心窃喜😝)
老板:“你有了解过我们的业务吗?”
我:“了解过一点,大致是做红色党建相关的管理系统”
老板:"差不多,但是我们的业务页不仅仅只包括这一面的业务,杭州现在的高校、企业在数字党建这块,我们是领头羊·······"他非常细致的介绍了一下公司的具体业务,运作模式,具体细节记不大清了。
介绍完公司的基本业务之后,开始问我:“我看你简历上写了 AI 相关方面的,你觉得如果把 AI 融入到我们的系统中,这个 AI 可以做些什么呢?”
他问完这个问题我真的愣了一会儿(一方面还不太了解业务,另一方面的话就是想吐糟:你一个管理系统要什么 AI,但是我还是得认真回答)
我思考了一会儿:“如果单针对我们这种党建系统的话,AI 其实可以赋能到很多个方面。首先针对于普通用户吧,用户可能不太了解系统的使用,可以加个语音聊天的功能,直接通过语音告诉 AI 让他帮我去完成一些相关的操作。然后是管理员,管理员可以根据 AI 去测评党员的素质,给他对应的指令让他帮忙执行一些相关的复杂繁琐的任务“反正就是瞎扯,又扯到了大模型、多模态、自然语言处理。。。(不知道老板有没有看出破绽,反正我快把自己讲笑了😅)
老板听完后,问我 AI 这种能力是如何实现的。我说了智谱的 ChatGLM,然后他很认真的在纸上记了下来,然后又介绍了 GPT 和其他一些 AI,他笑着说着恐怕不行,毕竟做的是党建相关的,不能使用国外的。
接着问我如何看待 AI 的发展?
我讲了现在 AI 发展非常迅速,并且深刻影响了各行各业,包括但不限于医疗、金融、农业、互联网。。。
医疗的话拿我刚做的那个医疗智能导诊系统举的例子,说 AI 可以极大简化导诊流程,提高医疗服务的质量和效率;金融方面聊了基于 AI 的金融年报分析、市场形式和股市预测,通过 AI 的算力预测走势;互联网方面就更不用多说了,像 AI 对话、语音、绘画、视频、代码。
老板很认真的听我讲完后开始询问我的基本情况,老家在哪里的,学校在哪里,未来什么打算,要不要考研。
我说,不打算考研,想找工作,比较喜欢敲代码,并不太喜欢那种科研氛围。然后说先出来实习历练一番为后续找工作积攒一些经验顺便锻炼一下自己的能力。
老板听完后说挺好的,然后又问我学校里课程相关,问我什么时候能来实习。
跟他讲了学校里的一些情况,说地铁过来花了两个半小时。
他说:”那离这边还挺远的,你要来实习的话可能要在这边租房子了。。。“(内心 OS:确实非常远,我地铁都快坐吐了🤮)
然后说跟我闲聊交流一会儿。问我小米、华为、苹果这三家公司更喜欢哪家?为什么
我:”我更喜欢小米,一方面是我非常喜欢雷军,另一方面是因为小米是一家非常伟大的公司。他这么多年一直秉持着初心,倾听用户的心声,真正让每一个普通人都能感受到科技带来的魅力“
听我讲完后,他笑着说:”我也很佩服雷军,他当年当金山 CEO,后来又创办小米······“老板讲了很多,然后又问我这三家公司的理念有什么不同?
我:“乔布斯创办苹果的时候就一直在追求极致的用户体验,从当年颠覆整个智能手机行业的 iphone4 再带如今的 ipad,mac。他可能在设备性能方面的提升不会像 Android 那样突飞猛进,但是他在用户体验方面这一块绝对是做到极致了。华为的话,可能会更加追求那种高精尖领域的技术,像 5G、华为云,在中国科技领域一直是领头羊。小米的话,就像刚才说的那样,会更加关注和倾听用户心声·····”当时扯了很多苹果,然后华为的话不是特别了解随便敷衍了几句。
说完之后开始跟我聊如何看待公司现在业务和公司未来的发展(内心 OS:老板,这题有点超纲了,我只是一个臭写代码的😰)
老板见我支支吾吾半天答不上来,就开始说:”我们现在选择的这个赛道非常特殊,首先这个赛道非常小众,基本没什么竞争对象,而且顺应国家的号召。我们营收每一年都在不断增加,而且客户的反响非常好,有一些都预约排期都排不过来·····“非常详尽的介绍了各个细节,他们的规划、部署、战略、思路,然后还把我拉到隔壁看他们墙上挂的战略图,给我指出很多家和他们合作的高校,企业·······
我在旁边一直唯唯诺诺的听他讲(内心 OS:这就是老板吗!!!)
介绍完后问我怎么看待大公司和小公司
我说道大公司的话可能在规模上会比较庞大,在管理、业务、产品、服务方面会细分的更加明确。各个单位之间分工写作。一个产品的落地会有明确的规划,有对应的需求、开发、测试、运维负责具体的某个模块。然后小公司的话可能细分不会这么明确,更注重创造出来的实际产品价值,重在完成具体的业务。
听过讲完,老板开始接话,说公司规模是一方面,公司的大小不在于规模的大小,而在于创造价值的大小 说他当年去德国,参观了一家只有 40 个人的工厂,年营收达 4000 万英镑。又说起国内的正特,专门做高校的管理系统,公司规模也不大年营收也达到 5 个亿。说智瀑和正特非常像,也是针对与高校和企业,如果一直能垂直于这个赛道将会非常有潜力。只不过智谱现在只是在起步阶段,但每一年的都在稳步上升。公司一直秉承着为价值而生的理念。(内心 OS:我说怎么能当老板呢,想法和见解就是独到)
接着有跟我说确实你在临安的话,离余杭哪些大厂比较近(接下来的这些话疑似在 pua 我【流汗😅】),你去大厂的话他可能做后端就只能干后端了,而且大厂的晋升路线非常曲折,说他之前在大厂做游戏开发,注定是一颗螺丝钉。但是如果我来了智瀑就不一样了,这里有广阔的天地,你可以尽情施展自己的才华,然后跟我讲了公司的薪资组成是由基本工资+绩效+奖金+股份。也就是说能力越强,对公司做出的贡献越多获得的反馈和回报也会越多。然后更我讲了给我面试那个小伙子说他技术非常牛,从大三开始就一直呆在这,为公司做了很大贡献,写的代码非常让人放心,一个月拿的也很多(具体多少他没说,我也没敢多问)
ok,开始问我最关心的薪资问题,他说一般是 120-150/天,但是如果我来实习的话可以按最高 150 给到我,又说这个 offer 现在就可以发给我。然后又说前面那三个同学他一个都没有看上,觉得我还行,让我好好考虑一下(这真不是我编的,真是老板亲口说的哈🫠但我不能确保他对其他人是不是也这样)。
说完之后说带我带公司里面逛了一会儿,给我讲解他们的企业文化,说他自己一路走来的心路历程,感受到他是一个非常有魄力有思想的人(那倒是,不然怎么能当上老板呢)
聊完之后,老板主动加了我的微信,说我随时可以与他联系,让我回去好好考虑一下
最后考虑再三,还是决定拒绝这份 offer ,第一是因为距离实在太远,而且租房什么的也不是很方便;二来是因为技术栈跟我有些不符;第三,我还是想去大公司,对不起了张总🫡
offer 拒绝说辞:您好,非常抱歉!经过再三考虑结合个人情况,由于本人的技术方向更偏向于 Java 并且仍有学业在身加之距离过远,我决定放弃这个机会!非常感谢您和张总花费那么多时间和我沟通岗位情况,过程中我也受益很多。抱歉给你们的工作带来了不便,希望贵司早日找到合适的候选人,如果有机会希望能够再次合作。
最后祝愿大家都能找到自己心仪的岗位和工作👋
2024.11.23 周六 写于浙江农林大学东湖畔
- 感谢你赐予我前进的力量