工作第四个年头,对于面试和薪酬有了一些心得,写下来帮自己整理思路,探讨虐与被虐的博弈。
抽样了解一个人编码技能存量,预估未来几年技能增量。这是我个人评估一个准同事的心法,被面试者要通过各种软的硬的技能来提高被评估的分数,而面试者要通过各种试探尽量压干水分还原这个人的真实情况。面试官要尽量放下自己的喜好和技术特长,准备的面试题最起码要能覆盖这个技术分支的各种的技能。针对不同级别和方向考察的技术点要有所调整,如果打算长期培养可以多问他擅长的,从他对擅长部分的认识深度来评估未来的成长潜力;如果是创业公司,需要招来就能用的人,我们就需要整理自己的产品用到了那些技术,需要面试者掌握那些前置技术就能上手开发。
先说说第一条,典型的不靠谱症状就是把前端的框架都罗列一遍,甚至加上 PS 和后端的一些东西,但给出的薪资范围明显不匹配。这种公司多数是创业初期,是那种你去了可能是第一个前端甚至第一个程序员的初期,职位是外行写的,技术栈还没有成型,新手最好不要进这样的公司,进去后东拼西筹的写东西,等到烂摊子无法收拾的时候对自己和公司都不好,如果想练练从无到有整一套东西出来的能力,可以放手搏一搏。靠谱的职位介绍应该包含两部分 -- 技术栈 和 团队文化。
投简历从面试者的角度来看有两个选择,一个是自己熟悉的技术栈,一个是自己看好未来发现的技术栈。从面试官的角度看区分这两者很重要,一个对是对存量的考察一个是对增量的预估。再说说简历造假这事,2016年这个现象太严重了,简直就是相互伤害,一份假简历会让面试官的对面试者的预判发生很大的偏差,多数面试官会比较善良,发现简历有很大的水分会重新调整预判目标,这时的面试者要放下简历上的包袱不要用谎言遮盖谎言,真实的反应自己的技术实力和学习能力是最好的应对方案。
薪酬的百分比,应届生的薪资倒挂现象,很多有潜力的应届生拿到的薪资比工作一两年的老同事要多,但是就技术水平和干活儿的速度与质量而言是不对等的,但是应届生在职业生涯开始的一两年内成长非常快,非常有可能成为某一方向的专家,这就是很多大厂给应届生丰厚待遇的原因。
处在不同的职业位置会有不同的侧重,一个有架构能力的资深前端工程师可能对 div 为什么不能放在 p 中没有很好的理解,甚至对 CSS 的掌握都经不起拷问。我经常在思考要成为一个资深前端有没有必要把这些基础都过一遍,是踏实的把基础打好还是直接搞框架和工程化或者更宽泛的学点其他的?我一直坚持前者,但是遇到越来越多的牛X的人他们的技能树大多都是后一种,不知道这是浮躁的风气还是本身就应该把有限的精力放在框架上。如果要在一个公司待较长的时间,可以选择自己看好的技术栈,忽略那些基础但是不是很关键的知识点;如果要出去面试就要准备的全面一点。很多技术leader都感慨如果现在自己出面试很多题都答不上来,其实轻骑兵和重装步兵都有用武之地,但是在前端这个飞速变化的行业中轻骑兵更受欢迎,具体怎么定位自己需要根据自己的特点来选择。我依然在两个方向上徘徊,只是稍微偏向重装步兵。
有一些题是要明确不问也拒绝回答的,比如:
var a = {n:1};
a.x = a = {n:2};
alert(a.x);
我打个粗俗的比方,
问:你对自己(JavaScript)了解吗? 答:了解一点... 问:那你拉的屎什么味?
这种题给我就是这种感觉。如果你非要尝尝,出门右转WC。
最近技术上有所拓展,和我领导进行了一次谈话,他的一句话对我挺有启发:有些东西虽然我现在不会,但是我知道他原理和边界,这个让我做我知道去哪里查资料,别人来问我怎么做我能给出研究方向和大致排期。
傅盛在一次分享中说 “认知,几乎是人和人之间唯一的本质差别。技能的差别是可量化的,技能再多累加,也就是熟练工种。而认知的差别是本质的,是不可量化的”。其实下降一个层次,就技术本身而言单点耕作对技术本身的认知提升远没有多角度多领域来的明显。
举个例子,Angular React Vue 用到其中一个们就把他学深入,如果没用到不用花太大精力去学习,有个对比了解就行;但是 Linux 这种比较大的领域要主动去学,在工程化上,开源系统会给我们很多启发。
最近新找到一个方向,开源届的包管理和淘宝 iconfont 平台给了我们多启发。