都是本人自己的想法,主要整理下自己的是如何面试他人的
本人面试前端的时候,提出的问题,被面试的人不需要全部说上来或说对,就算错了也没问题,态度和心态非常关键,是多个方面综合考虑的,不光硬技能(技术能力)非常重要,软技能(思维,心态和沟通能力)也非常关键。
心态方面
态度积极良好并且会举一返三
回答问题自信点,就算错也要说,同时不要通过扯开话题来回避问题,不懂就不懂,可以反问。
开发需要发散,你能举一返三,说明你愿意去想,很多东西,多想想就可以做出来的,而且现在互联网发展,查找问题和交流非常方便,所以态度和心态非常重要
很多时候,态度决定了一个人的高度,同时也决定了一个人是否愿意去挑战高难度的任务
个人所掌握的知识面
看的其实也是态度,你可能懂的都是片面,但是你既然能了解到这些,表示你经常关注这些,重要的不是知识的广度和深度,而是自己是否愿意去主动了解,技术的更新很快,你不愿意去主动了解,那最后可能很容易就被淘汰掉。
而且有时候项目中遇到问题,可能你了解到的东西就能帮上大忙。
对于工作的认同感和职业感
阅读源码,参与开源项目,深入了解技术背后的理论,或者突破语言和语法的限制,js 的很多语法也是借鉴其他语言的,这些都可以用来表示对自己岗位的强烈认同和职业归属。
是否愿意积极主动的学习和分享
这点不管是个人还是对于团队都非常重要,但需要注意的是分享不是强制的,不应该为了分享而分享。
分享是具有明确目的,特定话题和短暂时间的一种行为,是自愿并且主动发起的。
提问内容
会根据面试人员工作年限和简历来提问,总结起来就是 1~2年问基础和框架(使用方向),3~4年问思维和工程,5~6年问架构(有前端的 ui 分层管理和整体的技术架构中前端的角色定位等)和管理方面的问题
问题范围
- 语法基础
- 使用的框架
- 简历写的技能列表
加分项
- 编程思维
- 设计模式
- 自我驱动
- 自我学习
- 阅读源码
- 参与开源项目
- 是否有自己的主观意识,如:
- 站在用户的角度思考自己的功能是否满足其需要等等
- 站在产品经理的角度思考其中的流程是否可以优化等等
- 站在后端的角度思考,数据是否安全等等
- 站在 ui 的角度思考,界面,交互,动效是否合适等等
- 站在自己的专业角度思考,代码是否合理,中间的逻辑处理是否有更优的写法等
- 站在测试的角度,功能是否有缺陷,异常是否有覆盖到等
1~2 年的前端开发
新手开发,基础扎实就行
1. css 基础
- 盒模型
- css 布局:position, float, flex
- 做过移动端的会问下适配方面
- css3 动画会提下(不强要求会加分)
- 浏览器兼容(不强要求会加分)等
2. js 基础
- 基础语法
- es5 的常用 api,如 array.map,array.forEach
- es6 的 promise 等
3. 框架基础(如 vue,懂其他框架,简历写也问)
- 什么是双向数据绑定
- 什么是单向数据流
- vue 常用的组件选项都有那些
- 你是如何设计你的组件 (面的思维)
- 你对于 vue 是着么理解的等
4. 学习方面
这阶段有人带对以后的成长真的太重要了,入门容易精通难,但如果入门就有老师傅带着,可以少走不少弯路,而且成长有目标,不会感觉到迷茫。
- 学习渠道
- 每日学习花费的时间
- 个人成长和计划等
5 其他
比较随意前面答的好就问,主要是编程思维方面的。
3~4 年的前端开发
公司主力开发,大部分业务都是这部分人在做
1. 一些编程技巧
如深拷贝和浅拷贝,异步编程(不是异步 api,很多人都把这个等同。。。)等等
2. 框架的核心内容,也可能其他的
如框架的设计模式,原理等方面,主要面的态度,说错也没事,面的是你对于事物是否抱有一种追根到底的态度,3年可以有自己的想法了,问这个主要是看你是不是在积累经验,这时候应该要想想这么深入了。
3. 代码管理
工作习惯和代码管理,至少保证多人合作没问题,比如 每日上班 pull 下代码,下班提交代码,懂 git flow,还会解决冲突
4. 是否有过服务端编程
前后端任务拆解,不会交流会有障碍,前后端分离的项目,数据库不管,但 ui 这块前端才是主导。
5. 目录组织方式和工程搭建与部署会不会
再成长就是独立负责一个项目的人,现在不积累,后面压力会很大的。
5 年以上的前端开发
这时候已经可以决定以后的人生到底是走技术专家,还是技术经理的角色了,小公司里,这部分人已经是一个小的前端负责人了
大公司可能还没到,但是在小公司,5年已经不仅仅作为开发用了,很多时候都可以参与业务的讨论了。
团队招人需要注意的情况
都是个人的一些看法,如果人比较厉害那就另说
1. 项目没有3年以上的开发,不招新人
有3年以上后端开发也行,主要是让新人自己管基本不可能,甚至会打击到他的自信心。
2. 项目急,任务重,绝不招新人
项目急的团队招人,没时间带人,结果和没招人差不多,甚至会分散主力开发的精力。
3. 任务多,时间缓,尽量找刚毕业的
- 工作过的人,容易走
- 刚毕业的中间努力培养,新人成长快
最后附上我刚工作不久时给自己的规划
推荐去学习下 《okr 工作法》,给自己制订目标,这样的成长会比较快。
简单罗列下,下面的阶段可以同时进行
阶段一:打好基础
什么是基础,对于学生来说,课本就是基础,对于开发来说,api 文档就是课本,一个好的文档能带给人的成长是巨大的,比如 vue 的文档,对于新手来说,真的非常好,那里面的知识对于学习其他框架也是帮助非常大的。
计划
- 阅读完 javascript 文档
- 阅读完 css 文档
- 阅读完 html 文档
检验方式
- 常规的 api 可以使用
- 不常用的 api 有个印象
阶段二:学框架
计划
- 了解什么是路由
- 了解什么是组件
- 了解什么是生命周期
- 等等
检验方式
用一次
阶段三:学工程
计划
- 了解目录设计
- 了解工具使用
- 了解编译后的部署方式
检验方式
用一次
阶段四:学编程思维
计划
- 了解高级 api
- 了解函数式和响应式等编程模式
- 了解设计模式
检验方式
用一次
阶段五:学一门后端语言
计划
- 了解后端路由
- 了解后端请求处理
- 了解后端组织方式
- 了解数据库设计
- 了解渲染等
检验方式
用一次
本文使用 mdnice 排版
- END -