白板技能

Posted bluechip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白板技能相关的知识,希望对你有一定的参考价值。

本文所谈所有资源可以在 自身素养 分类 中找到,这里就不放链接了。

对白板的拙见

老实说,我觉得甄别优秀和普通的标准,并不在于看了多少源码,掌握多少框架,而在于相关人员的是否 足够聪明。(这么说可能有些人很难受,因为付出了很多精力学习啊,练习啊,做项目啊)

我很难说服不认同的人,但能听得进去反驳。

我的观念依据是: 优秀的人具备从0到1,从无到有的创造能力,而与熟练运用技能无关。

当然如果您没有应聘过大厂,世界一流企业,那么我很难和您谈之后的许多标准,也没有必要。

总而言之,真优秀 这个定义下,所有付出只是表象,关键是内在的思维方式,逻辑能力是是否被改变了,提升了。(勤劳能补拙,但只是一定程度上;关键是结果,即弥补的程度是否足够赶得上真聪明人)

刷过一段时间题的人,明显在写代码方面,会有更多的考虑,也更加谨慎。这一点我想接受过正规军训练的同学都不否认吧。(工作年限越久,写东西越小心,越是初学者,初阶段位的选手越胆大无知和相对粗心)

白板到底是要甄选聪明人,还是甄选有良好素质(训练过)的人,我也很难说清。

好比 Google 这类,他们希望在海外招进来一个 bar raiser 类的人来拔高团队的整体水平,此时白板可能,可能就是要选真聪明人。(或许他们本土招人没有这么严格)而普通一点的,具有精英属性的团队或者给的起钱的公司,可能只是想要一个素质良好(当然技能熟练也附加上)的candidate(螺丝钉)。

到这里,做到知己知彼,然后再往下看对策。

如果白板测试是要一个真聪明人,我这里谈不了技巧,因为聪明人不需要这么多训练(或者需要的远比普通人少,这个时候看学历就可以省事儿不少)。如果白板测试要的是一个素质良好的,那么请耐心花时间,花精力,做好超越专业、超过正规军的训练即可,简单说,赤果果的说,如果对方学历压你一节,什么斯坦福,麻省理工毕业的,OK,你可能需要几倍超过别人的训练。(不解释,你看看普通的、第一学历是清华的、同龄人的日常即可)

还有不要走错圈子,有些圈子根本不需要这些努力;那时候你的三观可能会上升到权术、谋略发展的层面,而不屑于这些基础层次/阶段的工作;当我没说?

下面说说可能的准备方面。


白板准备论

其实就两类,基础素养类 以及 设计类

数据结构和算法类

这部分可能也没有想象中的好准备,难点在于要掌握常规的出牌 套路规则(明规则)。

就好比武术中的,侧踢,鞭腿,勾拳等等基本型,套路;就好比打比赛/街斗时的优劣势衡量,规则审查。(当然街斗没有什么规则,其实也算是了解规则)

套路和规则不是一个东西,套路是基本元素,基本构成,此时要了解每种套路是什么,优缺点。还要记牢,因为这就是乘法口诀或者心算基础算式;而规则则是运用场景和前提。

相对来说,后面的反复练习,适量且重复的练习 + 总结,相对上面可能会难一些。

这也是有些老师傅一上来不教你真本事,而是让你先挑一年水,把身体素质先提上来。(外加去掉你的浮躁心态,了解尊师的重要,师门规矩)。

我个人不成文的拙见,这里列举出来供您参考(FYI):

  • Level 1: 自己完全能实现相关的数据结构 (纯数据结构,不掺杂算法)
  • Level 2: 自己实现相关基础的算法(不管好坏,知道思想,并能写出来),能根据数据规模选择算法
  • Level 3: 能完成基本的训练题 (对应 leetcode 中 esay 类)
  • Level 4: 能完成中高级训练题及其简单变形

(据我所知,Level 2 其实就可以吊打不少现在中国大陆互联网企业的技术员工了)

(越来越多非科班过来抢饭碗,但一上来就是刷题,所以马步一般不会很牢,不信你可以试试他/她)

够了,再往下已经超过范畴了,那是 专业算法 领域,比如 图论 就可以作为一个专门的领域去研究(注意是研究,即有相关的证明、计算的;人家可能会要穷举各种情况下的结果值,而不仅仅是我们工程领域常用的`均摊复杂度),毕竟这里只是为了白板而存在,有这般基础素养,个人觉得OK了。

我的博客里面都有相关的记录,可以参考 自身素养 分类,太多太冗杂,懒得推荐

(有任何错误,遗漏也欢迎指正,批评)

设计类

这里面都是丰富的经验,阅历的凝萃,一般会有专门的技能培训组织,面试培训组织,有偿教授

但我想说的是 如果对方要整死你,很难让你活着,所以,掌握常规的即可。

我的经验是: 去找一个 P7/P8,最好是 P8, 即架构师级别的大佬,老乡,熟人,没事儿多关注他的发言,多和他吃饭,喝茶,座谈。(和优秀的人为伍,不管你将来是否要成为或者有机会成为架构师)。

原因,别问。(这里应该放个插图的)

这东西是要依赖前辈领路的,别自个儿瞎琢磨,瞎练,小心闭门造车练成残废(意思固执、定型后,再难改变)。(这些内容真不是那什么某框架,可以从其官方文档了解真相)

如果真觉得自己特别有才华,可以去看源码。前提是,你真的 基础素养工程素养 良好。
(我一般看源码,只在公司有足够的时间财力支撑研究,或者确定需要性能优化/流程加载优化,或者已经定位需要修改源码fix某个bug, issue)

BTW: 自古自学成才者不是没有,但是少;个人其实很怀疑你在没有平台资源佐助,没有大厂项目经验的眼界时,可以自己从源码中看出门道。(不服的人,不在此列,因为他们可能没有遵守 最小代价 原则,花了 X 年的时间精力,自己摸索出来的。。。或本来就是大佬)


一己之见,欢迎争议;论道不诛心,谢谢。

以上是关于白板技能的主要内容,如果未能解决你的问题,请参考以下文章

如何自我介绍

C语言技能树测评

Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量

一个MMORPG的常规技能系统

java专业技能?

高层管理者的必备技能