软技能
软技能是和工作相关,和技术关联性不大的一个问题,但是每次面试都会问到那么一到两个问题,不会很多,而且每个公司问的可能都不会一样。如果你面试问到这个问题了,就说明技术没问题了。这个问题是最后的考察。
为何要考察呢?考察工程师的综合素质和未来可塑性,一般公司招进来不会说只是把你当做工具式的使用,而是看你能不能成为公司的核心技术人才。核心技术人才不仅仅只是技术,还有其他方面。
考察重点有:沟通能力,学习能力,项目参与能力。
例如几个面试题:
- 是否看过红宝书
- 如何做Code Review?review哪些事项?
- 如何学习一门新语言,应该关注什么?
是否看过红宝书?
这本书是JS经典书籍,里面有很多基础和DOM相关的内容,看这本书的人基础都比较扎实。如果你看过,就再次回顾总结一下,比如大体说一下内容,第一章讲什么,第二章讲什么。如果你没有看过,就去看看它的目录,搜一下其他人的读书笔记。其次要注意学习积累,例如看博客、看书、看视频等学习方式。浅层学习看输入,深入学习看输出。
如何做Code Review,要考虑哪些内容?
Code Review就是代码走查,一般是领导或架构师对下属做代码走查,或者同事之间相互代码走查。代码走查是项目研发流程中非常重要的一个领域,但是执行情况不容乐观,在大厂中执行依靠制度,但是在小厂基本上就不执行了,自己写完代码就上线了,老板也不管。
那么Code Review都看哪些内容呢?
- 代码规范(eslint不能全检查,如变量命名、代码语义)
- 重复的代码要抽离、复用
- 单个函数内容过长、需要拆分
- 算法复杂度是否可用,是否可优化
- 是否有安全漏洞
- 扩展性如何?(不用为了扩展而扩展,不封闭即可)
- 是否和现有的功能重复了
- 是否有完善的单元测试
- 组件设计是否合理
Code Review的时机
- 提交PR(或MR)时,通过代码diff进行Code Review
- 每周例行一次集体Code Review,例如周五下午
每次Code Review的问题要记录下,归纳整理,形成自己的代码规范体系,新加入的成员要提前学习,提前规避。
如果你之前没有做过Code Review的话,可以记住以上内容,能回答出一个大概。其次也可以作为一个跳槽的理由,想去进步,想去流程规范的团队。
如何学习一门新语言,需要考虑哪些方面?
- 它的优势和应用场景
- 语法(常量、变量、数据类型、运算符、函数等)
- 内置模块和API
- 常用的第三方框架和库
- 开发环境和调试工具
- 线上环境和发布过程
你觉得自己还有哪些不足之处?
最好跟面试官和HR聊技术方面的不足之处,不要聊其他内容,容易掉进坑中。
不足不要乱说,范围限定在技术方面,例如自己爱睡懒觉,不要说。非核心技术栈,不要说Vue学的不太好,那完了,Vue是很核心的技术栈,可以说node学的不好。说一些范围小一点的容易弥补的,后面才能翻身。
反转话题,通过说不足之处,可以说自己正在学习,过两天能学完,有学习态度,进步的精神。例如,我觉得自己在xxx方面存在不足,但我已经意识到,并开始学习xxx,记住一定要说技术方面的。