一面(30~40分钟):
自我介绍:简单介绍一下自己。
项目和技术栈:问了一些关于项目和技术栈的问题。
算法题:写了一道括号匹配的算法题,虽然有点尴尬写错了括号,但后来改过来了。
反问:问了公司的主要业务。
总结:面试体验还不错,面试官觉得我的工作能力没问题,业务上手很快。
? 二面(10分钟):
自我介绍:再次自我介绍。
业务了解:问了我对用友业务的了解。
技术兴趣:为什么对技术感兴趣,想做技术工作。
稳定性:是否愿意在北京工作五年左右。
优势:相比同学的优势在哪里。
总结:面试官看起来是主管级别,比较在意交流方式和工作稳定性。公司对校招生基础要求不高,实习项目没有也没关系。
自我介绍:再次自我介绍。
全日制学生:确认是不是全日制学生。
用友了解:问了我对用友的了解。
投递原因:为什么选择投递用友。
城市选择:为什么选择北京或上海这些城市。
职业规划:对自己的职业规划是什么。
提升方向:如果有空闲时间,希望提升哪方面的能力。
实习抵扣试用期:HR说实习也可以抵试用期,试用期3-6个月
我提前15分钟到达用友的办公地点,在前台登记后,被引导至一个安静、明亮的会议室等待。面试准时开始,共有两位面试官,一位是人力资源部的HR(女,约30岁),另一位是实施服务部的项目经理(男,约40岁,稍后介绍姓王经理)。我首先将准备好的简历递给两位面试官,并进行了简单的问候。
面试的开场由HR主导,她非常友善,首先介绍了面试流程(自我介绍、项目经历深挖、综合能力评估、双向问答),并表示这将是一场约40-50分钟的交流,旨在互相了解。随后,她请我进行自我介绍。
我按照我们之前准备的思路,进行了约2分钟的自我介绍,重点突出了我的技术背景、项目中的“迷你项目实施”角色以及我的沟通协调能力。在我讲述的过程中,王经理一直低头看着我的简历,并在“主机哨兵”项目和校园经历部分做了笔记。
自我介绍结束后,王经理抬起头,开始了他的提问环节。他的问题非常具体,并且有明显的追问链条,旨在深度挖掘我简历中的细节和背后的思考能力。
深挖项目经验:“主机哨兵”项目(由王经理提问)
“你提到你是这个项目的硬件负责人,请详细描述一下,当你拿到‘异常流量分析’这个需求后,你的完整工作流程是怎样的?第一步做了什么?”
我的回答:我首先和技术负责人、软件同学一起开会,明确“异常流量分析”这个功能对硬件层面的具体需求,比如需要采集哪些网络接口的数据、数据的带宽是多少、设备预计的部署环境(这直接决定了功耗和可靠性要求)。第一步是进行需求转化和器件选型,比如根据功耗要求选择ESP32作为主控,根据网络接口数量和速率选择合适的PHY芯片和RJ45接口型号。
追问1:“在器件选型时,你具体会考虑哪些因素?比如为什么是ESP32,而不是STM32?”
我的回答:主要综合考虑三点:一是核心需求,这个项目需要Wi-Fi进行数据传输,ESP32自带Wi-Fi功能,而STM32需要外挂模块,会增加成本和设计复杂度;二是性能与功耗,ESP32的性能足够满足数据采集和预处理,且其低功耗模式符合项目要求;三是开发效率与生态,ESP32的社区支持和开发资源非常丰富,能加速项目进程。
追问2:“你提到解决了信号干扰问题,使稳定性提升30%。这个30%是如何量化的?在解决过程中,你遇到的最大困难是什么?”
我的回答:量化是通过压力测试进行的。我们编写脚本模拟高流量数据冲击,在优化前,持续测试1小时平均会出现10次左右的丢包或错包;优化后,同样条件下错误次数降低到7次以下,所以是约30%的提升。最大的困难是干扰源的随机性,最初我们只在实验室调试,问题不明显,直到部署到模拟现场环境(有大型交换机和工作电机)才复现。难点在于确定是软件协议问题还是硬件物理层问题。我通过用逻辑分析仪在物理层抓取原始信号,对比标准波形,才最终锁定是电磁干扰导致的信号畸变,而不是软件bug。
8月底在boss上投递的,9.7直接技术一面。是电话面试的,问的问题不是很难。两天后hr面,等了三天就出结果了 流程很快
面试官问的面试题: ? Java基础知识,如==和equals的区别、final关键字的作用、String类的相关方法等。
? 多线程和并发,如线程的生命周期、synchronized和ReentrantLock的区别、线程池的工作原理等。
? JVM知识,如垃圾收集器的类型、类加载机制、内存模型等。
? 框架使用经验,如Spring、Spring MVC、MyBatis、Hibernate等。
? 数据库知识,如MySQL的事务隔离级别、索引的底层实现等。
? 网络知识,如TCP/IP协议、HTTP请求方法等。
首先是自我介绍,然后一轮技术面,一轮主管面。技术面主要是前端的基础知识,主管面主要考察综合素质。基础知识会考察布局、作用域、渲染过程、考察js多。主管面就是下面的一些问题。
面试官问的面试题: 1.为什么选择做前端
要说的话我首先是一个程序员,然后我喜欢并且擅长写javascript,再然后才是一个所谓的“前端工程师”。javascript是一个真正意义上的跨平台语言,浏览器是少有的横跨PC/移动设备的GUI平台,nodejs也是一个高性能且开发效率高的平台,我相信未来随着计算能力的不断提高,这些技术必然会生出更多炫酷的东西。
因为前端做出来的东西可以马上展现出来,可以给我带来最直接的成就感,做的时间越久,越感觉可挖掘的点很多,很有意思。
2.前端工程师的主要工作
a.前端开发。具体来说就是负责如网站、系统等前端开发,并能按照预期完成产品的交互功能;
b.要配合UI设计师实现预期的视觉交互效果;
c.配合后端工程师完成相关应用的开发工作;
d.定期的更新和优化产品,保持产品的生命力和可用性;
e.解决项目在开发过程中遇到的相关问题,比如技术问题,比如业务问题等。
3. 前端怎么学习的
精读js、css、html、vue、vuerouter文档
掘金社区,可以学习大佬的经验
边做项目边学习
4.前端需要掌握哪些技能
1.首先是前端的核心技能html、js、css。掌握基础知识,不管前端框架、工具怎么变迁都会较快的上手。
2.掌握前端主流框架vue、react、angular可以大幅提升开发效率。
3.了解浏览器的工作原理,能够帮助更准确评估web项目的可行性,快速抓住迭代问题的本质。dns解析、http响应、dom解析、js阻塞等都会导致页面首屏渲染延迟。tcp连接、接受响应、渲染页面、断开连接
4.学习node.js,前后台统一语言,可以实现程序员全栈开发,代码标准化,可以用它做前端渲染和框架优化,开发低延迟的网络应用。Node.js 编写的包管理器npm已成为开源包管理了领域最好的生态
5.代理服务器nginx。部署前端项目、负载均衡、反向代理分发后端服务和解决跨域分配用户大容量的请求。反向代理隐藏真实客户端,
5.产品、架构,
6.沟通能力、需要平衡项目负责人、ui、用户、后端工程师等人的需求,拿出比较合适的方案。
5.你近期遇到的最大的困难
情景:我们实验室需要搭一个大的文本AI平台。
任务:我被分到的任务是语义理解,学习的模型是ernie-gram
行动:那个时候在找工作,写小论文时间比较紧。几乎对于这个模型一无所知,而老师每周需要提交研究进展,有压力。在开始之前我会先向师姐请教,学习模型大概是什么流程。
1.我先简单列了一个时间表,包括测评、笔试、面试时间段,小论文的阶段完成时间,大概给模型研究留了每天一个小时的时间。
2.我先在百度、谷歌上搜索看它是干嘛的,是针对句子还是篇章的理解,语义理解以前有哪些模型 有啥改进。有没有基于它已有的研究成果。然后在github上看一下有没有实例代码。
3.把相关代码、预训练模型、数据集拉下来。根据readme,尝试配环境,从train作为入口找到搭建的模型,去搜每一句代码代表什么意思,或者有什么作用。对模型整体有大概的了解后,尝试跑模型,断点调试看模型中的数据处理的效果。再看最终结果。将对比模型像前面的操作一样,也拉下来跑结果,对比它们模型的架构。
在整个操作过程中会遇到各种问题,像数据集可能需要预处理(需要读他的代码反推数据集可能的结构,这个过程就比较麻烦,要细读他的dataset代码),环境中包的版本不匹配(先看需要的包,再去搜索它们对应的版本以及支持的python版本)
结果:代码跑成功了,有了如何学习模型的大致思路,
6.你觉得这个项目有什么值得改进的地方?
1.项目的模块划分有点冗余,物理视图、列表视图、拓扑图有冗余,虽然展示形式不一样,但功能都是设备的状态及层级关系。
2.地图态势页面、态势回放页面
2.在写html没有多的使用语义化标签,不太适合后期队友修改代码。
7.你的优点是什么?
做事情专注:
抗压能力较强
能够快速融入工作环境,开始工作
细心、重视细节:
容易静下心来写代码:
8.你的缺点是什么?
1.有时候太着急,太过赶进度,和后端的进度不一致,我会郁闷,但是随着时间的磨合我会调整自己适应队友的节奏。我会先把能做的其他先做了。
2.做项目的时候太关注项目本身,对浏览器的工作原理花的时间不够,
3.
9.你在项目中学到了什么?
1.了解了项目运作的整体流程。从指标开始,项目组开会讨论确认需求、分模块及页面、前后端规范,时间结点与分工,,写文档做demo。UI绘图与客户沟通效果,确认之后。绘制前端的整体框架,加入demo。用户手册、系统测试文档等等
2.培养了解决问题的思维,意识到团队合作的重要性,沟通交流的重要性。比如与后端协调接口参数的数据结构、变量名,如果不提前沟通好,前端就会做二次工作。团队分工做相对独立的demo可以极大提高后期开发效率,减少团队的重复工作量。
3.知道与用户沟通具体需求的重要性,在甲方更改需求时,知道用资料、数据证明可行或不可行的重要性。
4.认识了很多大佬,学习到了很多经验
10.职业规划
1.近期先把公司的项目做好,提升前端技术,夯实我的技术,多学一些组件、插件、框架
2.中长期,再研究一门后台语言java、php,争取为公司更好的服务
3.公司有良好的竞争制度、考核制度、如果有机会摆在眼前,我一定会抓住的。
全程电话面试,先做自我介绍,之后是问项目,之后根据项目延申出来一到两个问题,最后问基础知识,问的面特别广,涉及到线程、IO、锁、集合、JVM、索引、隔离级别、事务底层等
面试官问的面试题: 1.Jvm 内存JMM 由哪几部分
2.如何断定对象是否被回收?
3.可达性分析中根节点是由哪些对象构成
4.对一个512M 10G的文件,如何获取到前10的数据
5.Outofmemory会发生在哪些区?什么情况下会出现?方法区是什么情况下会出现这个问题
6.索引
7.什么情况下不走索引
8.INNODB的数据结构
9.多线程
多线程的构造方法
10.线程
Sychronized是如何实现的
11.Mybatis缓存 一级缓存和二级缓存
12.IO 有哪几种方式
13.什么是同步 什么是阻塞 同步和阻塞一样吗 有什么关系, 分别在什么情况下发生
14.数据库隔离级别,他们有什么关系
15.幻读是什么
16.Spring如何加事务,
17.事务注解的底层原理
校园招聘,通过用友培训机构,培训了两个月,机构会联系用友,等着电话就行。
两次面试,先hr,后项目经理,都是单独面试。
hr问了基本信息,自我介绍,想去的地点,擅长的模块
项目经理主要根据培训经历问了专业/技术相关的问题,还问了对哪个模块感兴趣
面试挺简单的,基本上都能过