面试准备
如何准备好前端面试,如何记忆庞大的前端面试题库?
- 理解原理
- 建立知识体系
- 笔记整理
- 实战演练
- 模拟练市
- 持续迭代
- 归纳总结
- 心理建设,更看重思路技巧
自我介绍(业务/技术面)
面试官你好,我叫XXX,XX年毕业于XXX计算机专业,
有3年前端开发经验,熟练掌握vue、react等主流框架,
并且在PC端、移动端和桌面应用开发中积累了不少项目经验,
涉及可视化、2d3d交互、数据分析、后台管理等领域。
在过去的工作中,我参与了多个从0到1的项目开发。
其中,有像【高轨卫星轨道监控系统】这类复杂交互可视化软件,
也有【徐矿集团人才中心一体化】这类比较大型的项目,
最近做的项目是一款社交媒体类App的开发,我主要负责后台系统和h5小游戏
个人优势是能够将数据分析和可视化相结合,为用户提供更好的交互体验
我平时会有维护技术博客的习惯,是我自我学习的一种方式,能让我不断地总结和分享经验,
非常期待能够加入贵公司,在优秀的团队中继续提升自己,谢谢
HR问题
自我介绍
自我介绍公式
- 自身背景
- 项目与岗位的匹配度
- 选择公司的原因
面试官你好,我叫XX,XX年毕业于XXX大学计算机专业,
有3年前端开发经验,
在过去的工作中,我主要负责PC端、移动端和桌面应用的前端开发,
参与了多个从0到1的项目,积累了丰富的项目开发和团队协作经验。
平时有书写技术博客的习惯,是我自我学习、和团队分享经验的一种方式
我的上一份工作是参与一款社交媒体类交友App的开发,主要负责后台系统,App端3d交互、h5小游戏的开发
对我个人影响最深的,是在北京国遥任职webgis前端工程师的经历,
- 在这段期间,我跟着前辈学习了一些图形学基础与3d技术,
- 发现了自己对web3d与可视化方面的兴趣
之后在广联科技主要负责公司内可视化项目的组织和开发
我了解到咱们公司主要是做家具行业软件的,
并且产品的口碑都相当不错,在web3d软件开发方面也是国内比较成熟的,
所以非常希望能够加入贵公司,在优秀的团队中提升自己,我的自我介绍结束,谢谢
离职原因
- 年轻外地公司:
- 出于个人职业规划考虑,因为当时公司节奏比较慢,觉得应该追求更具挑战的项目
- 看到了新的机会,可以接触到更前沿的技术和业务领域
- 本地传统公司:
- 工作地点搬迁,由软件园搬到了xx安全谷
- 原本在外地工作,因为家庭原因需要回到XX本地工作
- 通用:
- 公司团队解散
- 需要安排长期异地出差,个人不太能接收大幅度长期的工作地点调动
项目相关
可以介绍一下【高轨卫星态势】这个项目吗
答:
- 这个项目主要是面向航天指挥部门开发的一套军工软件
- 我在其中主要负责的是2d高轨卫星地图系统的开发
- 需要将后台实时推送的卫星轨迹,返显到2d地图上,
- 系统会根据这些轨迹,推算出可能发生的意外情况:比如会面卫星碰撞、卫星变轨,
- 并且进行预警,指挥员需要根据预警进行3d仿真,上报等一系列应急操作
- 这个项目使用Vue框架进行搭建、可视化地图使用ECarts渲染,3D交互使用Cesium实现,与后端和桌面端的联动使用Websocket实现
- 开发周期半年左右
可以介绍一下【徐矿集团人才中心一体化解决方案】这个项目吗
- 这个项目主要是为徐矿集团培训安全生产人员服务的
- 培训类型多种多样,比如有重工业机器操作、电气操作、煤矿挖掘
- 主要分为多个系统
- 首先有一个面向学员的门户网站(react),用于介绍课程相关信息,以及集团新闻
- 然后App端主要是面向学员的,支持线上教学、模拟答题、教师联系、考试报名缴费等功能
- 考试系统,则是考试时使用的机器,有一套考试界面,对用户进行视频监控
- 通过人脸比对,确保用户不会作弊
- 后台系统,面向几个主要角色:管理员、教师
- 管理员负责系统数据监控、新闻发布、数据清理等基本工作
- 教师负责课程管理、班级管理
- 被赋予线上考官身份的教师,还可以通过系统监控考试情况,防止考生作弊
- 最后还有展示用的可视化大屏,对教学数据进行统计展示。
实际开发中遇到了哪些技术挑战或者困难呀?
在徐州广联科技公司时,我是可视化开发组的负责人,
当时公司里有一个监控大屏项目,在即将上线时,发现了一个比较严重的bug
- 由于大屏页面需要同时展示8个实时监控
- 但是实际效果是8个监控只能显示6个
- 我和团队交流后,一开始以为是浏览器性能的原因
- 后面控制台调试过之后,通过监控network面板,发现当前8个网络请求发出之后,后面2个请求总是被置空
- 通过实际调试和资料收集之后,最终这是由于浏览器只允许6个异步请求并行发出,是网络协议的一种规则
- 监控视频是持续的数据流,会长时间的占用一个请求通道
- 那么要解决这个问题,就需要将http升级到http2.0,这样就没有并行通道数的限制了
- 找到这个解决方案后我们就立刻执行了,赶在服务上线之前解决了这个问题
- 之前因为公司也遇到过6路以上的监控出现bug,但当时没有从技术层面解决这个问题
- 从这之后,经过和技术团队的讨论,我们认为以后的项目尽量使用http2.0,提高网络性能
如何对学员的信息安全和数据进行保护
自动排课系统,是基于什么算法或者规则来运作的呢?
开放性问题
- 价值观:贴近公司文化、正直
- 稳定性
- 技术深耕
- 职业规划
- 潜力
- 学习能力
- 发展潜力
- 专业性
- 性价比
- 工作热情和能力
- 个人价值
回答要有条理,有逻辑,忌说罗圈话
- 用1、2、3点
- 首先、其次、最后
你的职业规划是什么
- 我的职业规划是成为资深的web3d工程师
- 短期内:
- 首先我们的项目是基于vue层构建的,并且使用的是面向对象编程模式
- 那么我就需要花半个月左右的时间去研究vue底层实现原理和面向对象编程模式
- 然后我们web3d使用的技术栈主要是babylonjs
- 那么我比较熟悉的3d库是threejs,这两个技术栈比较相似
- 我需要花1个月左右的时间去学习babylonjs
- 其次web3d开发对图形学算法方面的要求很高
- 这方面的学习也是最困难的,需要我花上半年的时间去上网自学、阅读这方面的相关书籍和源码
- 首先我们的项目是基于vue层构建的,并且使用的是面向对象编程模式
- 长期内:
- 能够在3年内全面的掌握web3d开发相关的技术
- 能够在5年内,成为web软件性能、优化、3d交互方面的技术专家
- 并且在未来能实时关注3d技术的发展方向,不断地学习
如何回答
- 使用具体的时间点,比如几年内的职业规划
- 技术层面深耕
- xxx时间点可以掌握xx技术到xxx层面
- xx时间点可以达到xx技术水平为公司作出更大贡献
- 我的职业计划是成为资深的高级前端开发工程师,
- 短期内:
- 首先我最大的兴趣点在于前端可视化领域
- (1年)为此需要继续学习webgl、canvas、svg等前端图形技术、以及一些图形学的基本算法
- 然后呢为了提高用户的使用体验
- 依旧需要花2个月的时间,学习js这门语言的深入原理
- 花半年时间深入了解计算机网络的相关原理,希望能更清晰地认识http协议
- 需要半年的时间去了解人工智能相关知识
- python语言的基础我是有的
- 人工智能是目前计算机领域的一个趋势,我认为花时间去了解这门技术是比较有必要的
- 长期内:
- (3年内)能够独立负责一款复杂软件的前端开发
- (5年内)成为web软件性能、优化、交互方面的技术专家
你还有什么想要了解的吗?
- 可以讲讲这个岗位的机会跟挑战有哪些吗?
- 这个岗位对员工的期待是什么呢?期待招一个什么样子的人呢?
- 可以再详细介绍一下这个岗位的具体职责吗?
- 可以介绍一下公司的团队组成吗
- 就前端而言用到的技术栈是哪些呢
- 试用期多长
- 岗位稳定性如何
工作到现在,项目中遇到的最难的问题(挑战)是什么?如何解决?
在参与【项目管理协同表格编辑系统】桌面软件开发的时候,
需要实现这样一个功能:
- 需要支持excel表格导入软件,解析成统一的内部模版
- 但是用户导入的表格无法统一格式
- 因为这份业务表格,不同省份有不同的标准
- 还有可能存在表格行列合并的格式不同、表头标记不同等情况
- 所以需要对几种不同的数据标准进行解析,从中提取有效的数据,输出为统一格式的数据
- 当时的解决方案是:
- 先使用sheetjs库将excel中的数据统一读入
- 分析各个省份不同的标准,写出一份解析的算法,能够对数据进行解析,花了一周的时间,才将各种情况进行兼容
- 当然,考虑到复杂性和政策的变化性,现在如果再实现这个功能,训练ai进行解析的可实现性应该更高一些
你收获到最多的一次经历是什么?
在北京国遥工作的时候,
做的第一个项目,一个知识图谱功能模块,
是项目中最复杂的亮点模块,在分工会议时,我自告奋勇要做这个模块,
拿到模块之后,非常兴奋,当时非常认真的在做这块内容,
也向前辈请教了很多知识,最终把这个模块开发完成,客户对此的反馈很好,
个人非常有成就感,对可视化技术的兴趣加深了很多
你在过去的工作中,最喜欢做什么,最不喜欢做什么?
你认为自己最擅长的技能是什么?举例说明
你是如何处理与同事之间的冲突的,青分享一次具体的经历
你最近与团队合作完成的一个重要项目是什么?你在其中扮演了什么样的角色
你最大的缺点是什么?优点是什么
你最近失败的一件事是什么?你有没有分析过失败的原因?有复盘过吗?
行为事件类/项目类问题
介绍一个你觉得很成功/很失败/感受很深刻/耗时最久的项目经历
STAR法则
- situation 情境
- task 任务
- action 行动
- result 结果
例子:
背景和任务:我在XXX期间,所负责XX项目遇到了一个XX问题
信息收集:在处理问题之前,首先我们需要了解是什么原因造成这种情况的发生
行动1:于是我做了XXX措施,与团队内人员进行交流,我负责的是XXX部分
结果1:调查到导致问题的原因是XXX
行动2:于是我们团队采取了XX措施,从XX部分做了工作
结果2:最终在XX期间实现了XXX目标,解决了XX问题
JD业务问题
SaaS
SaaS系统:软件即服务(Software as a Service)
通过互联网提供软件应用的服务平台,
通过订阅的方式获得对云端软件的访问权限,
SaaS平台提供商负责软件的部署、维护和安全性等方面的工作
CRM
- 客户关系管理系统
- 主要功能
- 客户管理
- 销售过程推进
- 售后管理
BIM
- Building Information Modeling
- 建筑信息模型
- 通过3d数字化技术,把建筑工程中各专业、各阶段与工程相关的信息纳入数据模型之中
- 通过BIM软件进行建模、分析、模拟、演示、检测等
- 对工程的进度、成本、质量进行管控
面试结束
追问面试结果
- 很高兴在上周二能参加贵公司的面试,与面试官沟通过后我对岗位有了更深的认识,我自己也是非常感兴趣的,方便问一下岗位招聘
- 这几天陆续收到了2家公司给我的offer,要我在这周进行答复,但我对咱们公司还是非常感兴趣的,所以一直在等您这边的回复