对大部分公司来说,招聘技能人员这种工作,管理层就应该甩手交给技能团队,只要他们才能够精确地判别应聘者的技能实力。假如你恰巧是应聘者,你也是早晚都要去面试的。不论你是哪边的,都让大哥来教你几招。
以人为本
在 How to Build a High Velocity Development Team 一文中,我提出了一些观念,我觉得这些观念很重要,所以在这里再重复一遍:
优异的团队才是决议公司业绩的要害,一家公司要想于窘境之中仍能有所建树,最重要的便是得先培养出一只优异的团队。
就像 Marcus Lemonis 说的,有三点(3 个 P)最重要:
职工(People),流程(Process),产品(Product)。
在创业初期,你招来的工程师有必要是能够独立自主的大神队友。他最好能够帮着招聘工程师,能辅导其它工程师,还能帮初级和中级工程师处理各种问题。这样优异的队友,不管何时都多多益善。
要想知道面试应聘者时,有哪些常见的注意事项,能够读读 Why Hiring is So Hard in Tech这篇文章。
要评价一个应聘者的实在水准,最佳方法便是结对编程(pair programming)。
和应聘者结对编程,一切都听应聘者的。多调查、多倾听,看看应聘者是个怎样的人。用微博的 API 抓取音讯并显现在时刻线上,便是个很好的调查应聘者的面试项目。
不过结对编程再好使,也没办法让你彻底了解一个应聘者。这个时分,面试也能帮上许多忙——但是千万别浪费时刻去问一些语法(syntax)或许言语上的细节(language quirks)——问些高端的问题吧,大兄弟。问问项目架构(architecture),编程范式(paradigms),这个层面上的判别(the big desicions)能够在很大程度上影响一个项目的胜败。
语法和言语特性(features)这种小常识,Google 一搜一大把,谁都会。而工程师在工作中所堆集的软件工程方面的经历,以及个人常用的编程范式及代码风格(idioms),这些可都是很难 Google 到的宝贵财富。
JavaScript 很共同,它在各种大型项目中都起着至关重要的效果。那是什么让 JavaScript 如此异乎寻常?
下面几个问题,或许能帮你一探终究。
1. 能说出来两种关于 JavaScript 工程师很重要的编程范式么?
JavaScript 是一门多范式(mulTI-paradigm)的编程言语,它既支撑指令式(imperaTIve)/面向进程(procedural)编程,也支撑面向目标编程(OOP,Object-Oriented Programming),还支撑函数式编程(funcTIonal programming)。JavaScript 所支撑的面向目标编程包含原型承继(prototypal inheritance)。
面试加分项
原型承继(即:原型,OLOO——链接到其它目标的目标);
函数式编程(即:闭包(closure),一类函数(first class funcTIons),lambda 函数:箭头函数)。
面试减分项
连范式都不知道,更别提什么原型 OO(prototypal oo)或许函数式编程了。
深化了解
The Two Pillars of JavaScript Part 1:JS 两大支柱之一:原型 OO
The Two Pillars of JavaScript Part 2:JS 两大支柱之二:函数式编程
2. 什么是函数式编程?
函数式编程,是将数学函数组合起来,而且防止了状况同享(shared state)及可变数据(mutable data),由此而发生的编程言语。发明于 1958 年的 Lisp 便是第一批支撑函数式编程的言语之一,而 λ 演算(lambda calculus)则能够说是孕育了这门言语。即便在今日,Lisp 这个宗族的编程言语使用规模仍然很广。
函数式编程但是 JavaScript 言语中非常重要的一个概念(它但是 JavaScript 的两大支柱之一)。ES5 标准中就增加了许多常用的函数式东西。
面试加分项
纯函数(pure functions)/函数的朴实性(function purity)
知道怎么防止副效果(side-effects)
简略函数的组合
函数式编程言语:Lisp,ML,Haskell,Erlang,Clojure,Elm,F#,OCaml,等等
说到了 JavaScript 言语中支撑函数式编程(FP)的特性:一类函数,高阶函数(higher order functions),作为参数(arguments)/值(values)的函数
面试减分项
没有说到纯函数,以及怎么防止副效果
没有供给函数式编程言语的比如
没有说是 JavaScript 中的哪些特性使得函数式编程得以完成
深化了解
The Two Pillars of JavaScript Part 2:JS 两大支柱之二:函数式编程
The Dao of Immutability
Composing Software
The Haskell School of Music
3. 类承继和原型承继有什么区别?
类承继(Class Inheritance):实例(instances)由类承继而来(类和实例的联系,能够类比为修建图纸和实践修建