面试的时候,要提前做好充分的准备,不仅仅是技术方面,还有项目经验、语言表达能力、价值观、职业规划等等。在这之前,我曾经写了一篇面试评价表:https://beat-the-buzzer.github.io/2020/05/27/interview-set/,总结了面试的一些考察点。
简历
关键点:联系方式、技术栈、项目。
联系方式,手机和邮箱格外重要。一般发offer都会发给你的邮箱,面试结果、重要通知,基本上都会电话通知;
技术栈是在简历筛选阶段起到重要作用。HR会看技术栈是否和公司现有的技术匹配,毕竟是社招,很少给你时间去学习一段时间,大家都是成熟的开发者了,该学会独立工作了;不过要理解什么是技术栈,我之前看了一些简历,里面写了很多第三方插件的使用,mescroll、swiper、axios等等,我个人觉得这些不该出现在技术栈这一栏。
项目经历也是其中的一个重点,因为现在的产品种类特别多,webApp、PC、PC客户端、微信小程序、支付宝小程序等等,我们的项目经历也是极其重要的。
简历亮点:从大千世界中脱颖而出
阅读框架源码,永远比用过N中不同的框架强太多;
源码候选:flexible、clipborad、Vue、React
阅读源码有哪些收获?
封装组件的通用方法,立即执行函数,减少变量污染;
如何兼容处理,比如我经常需要兼容App和H5,我可以从中学到一些兼容类的技巧,比如优雅降级和渐进增强的思想。支持复制粘贴的那个方法的,就是用这个方法,如果不支持,就退而求其次,选中文字,然后弹出提示:按ctrl+c复制;
Vue和React的源码我都仔细看过了,包括一些衍生的Vuex,Vue-Router,React-Redux,Mobx,React-Router-Dom等等。我们的目的不仅仅是使用框架解决实际问题,更大的目的是深入原理,举一反三,从而解决更多的问题。
GitHub、个人博客,技术岗位的必备之选;
其实最完美的学习方法,就是把一个技术或者知识点,讲述出来,让别人听懂,自己温故知新。
读书,任何方面的书,技术,非技术,通识课程。
自我介绍
技术栈、工作经历、项目经历、遇到的问题,解决方法
工作成果介绍
技术等级的提升
面试新员工
新员工入职指导
公共组件库的维护
分享会的组织
参与和执行项目重构
项目介绍
- 投资堂App
这个是公司自己的产品,主要包括了股票行情交易的基础业务,这些业务可能会作为证券公司的参考。是原生和H5的混合开发,我负责的模块主要是交易柜台的兼容修改;旧模块的重构,jQuery重构成Vue;新需求开发,股转改革和创业板改革;增值业务的开发,会员中心、积分系统等等;主要用到的前端框架是Vue;
- PC行情交易
这个是Vue开发的PC端项目,主要有行情和交易两个大模块,行情模块就是展示股票的价格、走势等等,有分时图、K线图等等;交易模块就是股票的买卖、查询、持仓、转账等功能;用到的技术是Vue和ElementUI。
- 自动化编译平台
这个是公司内部使用的自动化编译平台,可以编译C++、Java、Python、Android、iOS、H5、UI图等等。我主要负责的模块,就是写一些Gulp方法去处理对应的文件,比如ES6转ES5、CSS自动新增浏览器前缀、HTML/CSS/JS压缩等等。读取.gitlab-ci.yml里面的配置,比如,PC端项目和移动端项目的CSS前缀不一样,这个可以通过读取配置的方式选择不同的browserslist。
- TZT-UI
这个是公司内部使用的UI框架。平常负责对公共组件进行一些升级、维护。比如,把按钮、弹窗的样式改成公司通用的UI样式;对组件进行二次封装,比如封装起止日期的组件;新增平常开发中会用到的公共组件;对现有组件新增新的功能,比如对按钮新增放重复提交的配置;维护一个Demo项目,一方面是给UI测试效果,另一方面是提供一个文档和调用方式,就和antd-design类似。
- 外汇管家系统
公司自营产品,jQuery转React Mobx,正好经历了新技术选型重构,jQuery 转 React Redux。使用 WebSocket 来推送改变的外汇牌价信息。
- X-Funds
银行类外汇、期权基础业务的集合项目,公司自营产品,jQuery 转 React Mobx。
职业规划
职业规划也是面试过程中非常常见的问题。未来几年的计划,可以看出一个人的稳定性和成长性。
技术方面:
前端基础深入学习
源码解读,了解代码思想
前端工程化
node学习
其他方面
语言表达 沟通协调
提升工作效率
情绪管理
规范制定
一般我们的职业都是:前端开发工程师,Java开发工程师等等,我们最终都要用工程师的思想去做事:编写可维护的代码,参与规范的制定来提升团队的开发效率,熟练了解业务,遇到的问题可以提出合理的解决方案,面试、指导新员工,技术分享与提升等等。
任何一个开发岗位,其实都是一个综合性很强的职业,不仅仅是写代码而已。可能在实习阶段,做的东西有限,但是随着经验和技术的提升,我们最终做的事情,本质上都是为了更好地解决实际问题,所以我的职业规划就是一直为了这个而努力。
最后还有什么问题
For技术
公司现有的开发技术框架有哪些,是否会根据开发趋势和业务需要对项目进行重构?
对于一些老项目,是否有重构的计划,比如jQuery项目,Vue 2.0之后会出3.0,会不会进行重构?
其实我觉得重构的不是技术,而是逻辑。就算是jQuery项目,我们依旧可以写出可维护的代码。代码最后难以维护,主要原因不在于框架本身,更多的是在于代码质量。为了提升代码质量,做了哪些事情?是否审查代码质量?是否审查代码结构,实现方式。是否监督代码?之前我们每周都会有代码评审环境,但实际只是走个形式,没有实质上的变化。
For提升
我们在平时的工作中可以获得哪些方面的提升
是否有技术分享,除了自己的专业技术,是否有其他方面的技术分享,例如,我参加过一些UI设计思想的分享会,UI会讲述他们的设计思路。因为有的时候,UI图不能完全反应出设计思路。
是否有业务培训
对一些开发阶段的痛点问题,是否会去想办法解决以及如何解决。比如第一家公司的主管让我减少使用ES6、ES7语法,因为担心实习生看不懂。