软性问题
学习
通常用什么的方式去加强自己的基础能力? 遇到比较大的困难是怎么解决的? 压力最大的事情是什么? 什么会让你有成就感?
生活
有什么兴趣爱好吗? 应对过哪些挑战,怎么克服的? 你通常如何处理別人的批评? 怎样对待自己的失敗?
你是怎么学习的?
工作比较忙,因此每天给自己提 5 个问题。 晚上尝试解决。
分几种场景:
- 没有方向,看看新奇的东西,感兴趣,并且没有业务的压力的情况下。新奇的东西一般都会是刷掘金、开源中国等网站看到的。我会看官网的一些介绍和文档,如果有社区,一般也会注册一个账号,并且看看别人分享的内容,有一些是学习笔记,或者坑,这会让我少走一些弯路。
- 有业务需求的压力。比如马上着手要做一个功能,但是我不了解。这种时候我一般会以完成业务为第一位。一般都会第一时间看官方文档,民间文档,着手先自己做一个 demo 出来。个人学习部分自然是重要的,但是我一般会放到下班之后小总结,周末大总结。
- 有方向,空余时间的自我提高。视频、书籍相结合,同时也会看别人的博客和社区。我有做笔记的习惯,如果时间比较充裕,我一般会手写笔记,这种方式更容易消化知识。不然的话,不管发不发到博客上,我都会用 markdown 记笔记
总的来说,我会时刻关注行业内的新的业务和技术,对于我在做的技术也会不断的做总结和沉淀。
周末一般会有三种状态:
- 和朋友一起去做做运动,也会聚会聊天,探讨下新技术之类的;
- 也会看一些书籍充充电,比如我最近看的 xx,有什么的想法;
- 有时候会闷在家用最近比较火的技术做个小项目或者实现个小功能之类的。
之前尝试过阅读 jquery,underscore 等源码。主要的顺序是阅读 readme,看相关介绍文章,看源代码目录结构,看 issues 等。可以从整体解决了什么问题(readme),设计架构(readme && 相关文章),模块划分(目录结构),最后选择按模块去深入看(结合源代码和 issues)。
和生活一样,单纯的读代码是很枯燥的,最好办法是带着目标是读。
使用开源项目过程中遇到不满足自己需求的点,为了解决问题需要动手 PR,是不是读代码就成了一件顺理成章的事情呢? 遇到自己不懂如何实现的功能,但是开源项目实现了,我想学习一下,是不是就得去读代码呢? 如果不是为了源码解析出教程, “从头到尾”读代码不是一种好方式。
怎么平衡工作和学习?
在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?
- 原则上我会尊重和服从领导的工作安排;同时私底下找机会以请教的口吻,婉转地表达自己的想法,看看领导是否能改变想法;
- 如果领导没有采纳我的建议,我也同样会按领导的要求认真地去完成这项工作;
- 还有一种情况,假如领导要求的方式违背原则,我会坚决提出反对意见;如领导仍固执己见,我会毫不犹豫地再向上级领导反映。
当你被分配一个几乎不可能完成的任务时,你会怎么做
这种情况下,一般通过下面方式来解决:
- 自己先查找资料,寻找解决方案,评估自己需要怎样的资源来完成,需要多长时间
- 能不能借助周围同事来解决问题
- 拿着分析结果跟上级反馈,寻求帮助或者资源
突出的软技能: 分析和解决问题,沟通寻求帮助。
现在你的领导给你了一份工作,要求你一个星期完成,但你看了需求以后估计需要 3 周才能完成,你该怎么办?
开发一个功能,多次被修改,上线之后马上下一个迭代又会修改了,此时会怎么办?
分析出现这样的原因:
- 产品、设计换人了
- 产品没有将需求考虑清楚
解决方案:
- 及时进行复盘
- 对于一些交互,一些页面提前进行埋点操作,上线之后,分析收集到的数据情况,拿着数据做一个分析。
前后端沟通后,各自开发,发现接口不一致怎么办?
前端做了两年多,都是在写业务,如何进阶,提高自己的技术水平?
学习方法很多,而且不同的方法因人而异效果也会差异巨大。从我自己成长和这几年带人的经验看,我讲两点我觉得重要但往往容易被忽视点的点。
- 业务技术学习,每个业务其实都有他的技术领域范围和做得好的业界标杆,多看看他们是怎么架构和设计他们的系统,复盘如果自己重新搞会怎么设计,有哪些是可以做得刚好的。
- 前端技术学习,如果是两年工作经验的同学,建议能把自己学的技术向下看三层,以做一个业务系统为例看,第一层看你如何基于先有技术做架构设计的,第二层看你对目前有的技术原理的理解,第三层先有技术它底层又可能依赖哪些更底层的技术以及他们的原理。第一点让大家更往上看,让人知道怎么能做得更好,做事也更有方向感,第二点是让大家往下看,知道现状并打好根基,支撑你走得更远。