hyyou2010
2019-03-27 11:38:29 +08:00
说说我的想法,不一定对。
首先问几个简单的技术点,热身,让面试者先放松。再次问几个通用的,难度略加的,类似进程线程协程,同步异步。
然后问对方最熟悉的项目 1~2 个,在里面可以小小发掘一下。
最后也是最重要的一步,是问新项目的设计,以 Android 为例,问一个控件一步步怎样实现,特别留意面试者是否漏掉了关键的,将来可能产生实现阻碍的步骤,比如面试者可能说某一步添加一个跟随手指滑动的图标,那么立即追问怎么写一个图标并令其追随手指,如果他说系统有提供这样的组件,那么立即问他系统内部是怎样实现的,不知道不要紧,可以猜测想象,而这猜测想象恰恰是最好的东西。
再举个例子,我曾经问面试者断点续传怎么实现,如果面试者说不知道,我就会让他想象一下应该怎样实现,有哪些步骤。如果一个面试者能够对自己的实现步骤从逻辑上自圆其说,那就足够了,不需要跟真实系统的实现一致(实际上真实系统咋实现的我也不知道)。
总之,考察逻辑实现能力,这是最重要的,避免问一些时间久了就容易忘记的,或一查就知的东西。
另外,有代码洁癖的就一定是好程序员,围棋水平不错的也一定是不错的程序员。