硅谷是如何培训软件工程师面试官的(系统设计篇)

我在之前的文章(https://zhuanlan.zhihu.com/p/84925006) 中讲述了硅谷如何培训优秀的编程面试官。这篇文章的侧重点是系统设计面试。通过阅读本文,希望读者对硅谷培训程序员系统面试官的方式有更多的了解。

硅谷大部分公司(FB、 Amazon、 Uber 等)会有专门的一场面试考察候选人的系统设计能力。一些公司(如Google)会时常把系统面试和编程面试或者行为面试混在一起考察。无论是哪种形式,过硬的系统设计能力都是优秀程序员必备的能力,所以系统设计则是面试中的必不可少的一个环节。候选人等级越高,对候选人的系统设计能力要求也就越高。根据候选人的等级(初级,中级,高级,staff等)和岗位(比如产品,infra等),面试官需要对系统设计题目的内容和难度做出一定的调整,在下面的文章中会做出详细说明。本文不会涉及具体某个系统,而是把重点放在面试方法上。因为技术更新的很快,而面试题目也会因为被用的次数太多而被抛弃,但是面试的方法和思路是很少改变的。

所有的问题解决方案都应该从问题本身出发

开发系统就是为了解决问题。那么在设计系统之前就要分析问题的本身。我发现越是有经验的候选人,越是会在开始设计前弄清楚要解决的问题是什么。比如:”我们为什么要设计这个系统?“, ”我们具体要解决什么问题?“。这就好比一个人管你要锤子,帮助这个人的最优的方式不是给他一个锤子,也不是问他要什么样的锤子,而是问清他到底要做什么?如果这个人的目的是开核桃,给他一个核桃夹子更能帮助到他。有些候选人会认为问题的本身不言而喻。然而在现实中,开发的系统不解决用户问题的例子比比皆是。我们在面试中要寻找那些会从用户角度出发思考问题的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部