在当前很多科技公司的面试中,系统设计类型的面试比重越来越大。相对于考算法,考系统设计会让面试官对一个同学的了解更详细更深入。而面向对象作为系统设计的一部分,不仅逐渐成为Amazon,Google ,Bloomberg,Uber等公司的必考环节,更成为大厂Package 定级的试金石。这是因为同一道题,不同大厂不同面试官会考出不同的维度,没有一个标准的答案,更容易看出一个人的综合能力。
警惕!如果你还在沉迷刷题,却忽视了准备OOD ,那么今年春招上岸拿高薪的几率很渺茫!
图片来源于求职论坛
为什么要学习OOD ?
经历了疫情期大厂缩招裁员,求职难的情况下,还有几个逐梦大厂的同学没有刷过几百道题,面试官早已无法从算法的角度去筛选毕业生。既然大家水平都差不多,那最后会以什么标准区分呢?
对于New Grad 而言,那就是意味着面试难度提升,OOD是甄别Onsite 轮次实际工作能力的筛选器。对于在职跳槽的同学来说,OOD 与实际工作设计能力直接挂钩,是SDE 方向升职加薪必备的核心能力。
图片来源于求职论坛
OOD面试要点有哪些?
不少同学拿到OOD题目时无从下手,不知道面试官的考察要点。因此回答问题时毫无头绪,缺乏大局观,浪费大量时间去抠一些无关紧要的细节。但其实,你只需要牢记以下几点:
1.面向对象设计是一个玄学,非常像语文里的命题作文,没有一个标准答案。因此,只要你能言之有物,自圆其说,你设计的这些类,能够满足面试官需求的功能即可。
2.不一定需要一个完美设计,能实现一个可行解即可。在面试的短短45分钟中,你只需要从一个大体的框架上去实现设计中的基本功能,至于你是用Hashmap ,还是用List,这些细节都无关紧要。关键是把面试官中想要问到的use case 都能正确的实现。
3.Design Pattern。设计模式是无数前辈工程师们在日常编码过程中总结出来的一些经验,它告诉你在某种具体的需求场景下该用什么样的方式编写代码才会最好,写出来的代码扩展性和可维护性才会更强,代码更高级,解决的是具体的需求。 如果你在面试时,能说出特别适合这个题目类型的Design Pattern,则是一件锦上添花的事情。
OOD 和System Design有何区别和联系?
拿到面试题目你知道考察的是OOD 还是系统设计吗,你知道面试官的考察关键点是什么吗?《上岸面向对象设计小班》的雷欧老师用一张图表简单阐明了二者在面试中的区别。
此外,雷欧老师还总结了OOD 面试中的禁忌和误区,对标大厂OOD的面试类型及要点,将在1个月内带领大家学习:图书馆设计/租车系统设计/餐厅管理系统设计/电影院系统设计/航空预定系统设计/ATM 设计/实物类设计/游戏类设计,并总结了7种常见的Design Pattern,套用独家快速通关的解题模板和面试技巧,秒杀OOD面试。
在OOD面试中,正确的打开方式是要和面试官讨论交流,澄清需求,确定设计的范围,与面试官达成共识,列出题目设计的核心类,明确设计所需cover 的例子,确定面试官需要的 uese case,最后实现类图和者代码,将思路转化为具体类。
然而缺乏项目经验的new grad和新手工程师往往并不知道如何与面试官正确的交流,常常陷入误区和陷阱而不自知,因此一遇到OOD就挂。而雷欧老师将通过实战演练,手把手的教你如何和面试官确定需求和目标,轻松拿下OOD面试.
如果想知道如何通过OOD 面试,可看完整视频:www.youtube.com/watch?v=4vf…