杭电 “失败” 指南
前言
淋过雨的人,也想为别人打伞
毕业很久了,但是回望我的大学生涯,充满了很多遗憾,吃过很多苦头,收获了很多教训,我偶尔会回想,如果当初我如何如何,现在会不会不那么 “失败” 一些。于是,在某个晚上,有了这篇指南。
谢谢学弟学妹能够抽出时间看这篇 “失败” 指南,这篇指南以个人角度讲述了一个 CS 学生在上大学的时候收获到的一些经验和教训,或许没那么适用,但是也许可以让学弟学妹的大学生活不会像我一样 “失败”。
这篇文章尽可能少的讲故事,更多是实用主义的教训(杂谈篇除外)(里面有太多偏激的观点,说教色彩也很浓厚,仅供参考)。
如果这篇所谓的狗屁指南让你觉得
听过很多道理,依然过不好这一生
没关系,勇敢地去做自己热爱的事情就好。
杂谈篇
如果你是一个对 CS 充满热爱,怀抱一颗技术宅拯救世界的心,那你可以跳过此篇。(其他章节可以读读 (#^.^#)) 如果你像我一样,是一个明明从小热爱技术,但是有时候有些功利的矛盾人,又或者是大多数对大学充满迷茫,不知道该怎么办的人,或许可以继续看下去。
高考败犬:脱颖而出的心态修炼
我所在的学院每年都有或多或少一些学生,觉得自己是高考考差才来这里的,刚进来校的我也是这样。这种心态我非常能理解,但是问题是进来了以后,怎么在这所学校脱颖而出?(PS:前提是你想脱颖而出)
保持这份不甘心。太多同学在刚进大学的时候踌躇满志,最后四年以后可能也是泯然众人。当初的一份志气也被消磨在宿舍、游戏和无意义的社交中。为了让自己能够脱颖而出,首先要做的就是提醒自己,保持不甘心,保持自己的志气,不要甘心自己已经有的一切,永远觉得自己可以更强,更厉害。
充满野心,渴望成为这个学校最顶尖的那批人。老实说,杭电是一所双非,在未来会对你(大部分人)在很多地方都有些隐性限制,但是,每一所大学最顶尖的那批人,都能够冲破这些束缚。直白些说,即使它是一所双非,但是它在很多领域都有超越一些 211 和 985 的资源和实力。很幸运,CS 领域就是其中之一。不用怀疑,它能够提供你所想要的一切。但是资源是有限的,所以如果你想成为很厉害很厉害的人,那么就一定要尽可能去抓住它能够给你的一切资源。
攫取者:永远向厉害的人去学习
那么,杭电究竟能够给大家什么资源呢?浓厚的竞赛氛围?浓厚的 CS 氛围?我个人觉得不全是。杭电之所以成为 CS 强校,是因为上述氛围吸引和聚拢了一堆充满理想,热爱技术的人儿。或许你可能只是一名还在迷茫期的新生,但是没关系,去主动靠近和接触他们,永远向比你厉害的人学习,不断提高自己的技能和认知水平。特别是认知。
之所以强调这一点,是因为技能是可以自己通过时间去磨炼的,但是认知的话,如果你根本不知道有 "A",怎么可能去主动学习 "A" 呢?如果你不知道厉害的人他们平时在干什么,他们在学什么,在打什么比赛,研究什么先进或有趣的东西,你怎么可能去学习这些呢?我觉得进杭电的同学,其实 "天赋" 和 "聪明程度" 都差不多,关键在于信息差和执行力。(PS:hdu-cs-wiki 就是一种缩小信息差的工具)
那么,怎么才能认识到这么多厉害的人,以及向他们学习呢?说白了,就是混进大佬的圈子。作为新生,一个打开局面的方法是,先选择一个方向去钻研学习,结识这个方向的大佬,成为这个方向的大佬,然后认识其他方向的大佬。
问题就转化成,我该选择哪个方向成为我的起点。
迷茫中的选择:科研 / 竞赛 / 开源 / 学业 / 技术 / 工作
犹豫就会败北,世界不是非此即彼,热爱才抵得过岁月漫长
作为新生,我曾一度非常非常非常迷茫,当时最大的问题是,该选择哪个方向发展,是 CTF?还是 ACM?还是刷绩点争取保研?还是专注我热爱的技术,做有影响力的开源?
我犯过最大的教训有三个,一个是功利主义地拒绝了自己最热爱的方向,二是总在犹豫和后悔自己的选择,三是总觉得不同方向只能选择一个,无法兼顾。
经验谈:非技术因素在面试中的影响
之所以选择这个话题,一方面是因为这个东西很容易被大家忽略,另一方面这个也比较普适,无论做开发还是算法都可以参考。
面试前 - 个人介绍
在面试前应该准备好自己的个人介绍,除了老生常态的基本信息外,我觉得需要做到既要突出自己的亮点,但是别太过,同时也要根据不同的面试去修改。
先给大家看一个例子:
您好,我叫 xxx,是 xx 大学 xx 学院 xx 级学生。自从进入大学以来,我【省略一些内容】。在 xxx 地方实习期间做了 xxx 工作。在平时,xxxxx(主要讲自己的开源社区贡献、技术博客撰写、竞赛等)
第一就是要尽量介绍地比较 “多面”,不但要说自己在学校和实习中做了什么,还要说一些个人影响力的东西,比如开源社区贡献这一块。其实就是突出一些自己相对于其他候选人的亮点,相比于其他大部分人来说,你的特别在哪。
第二就是要建立 “投缘” 机会,在面试前,搜集到这场面试的部门和小组是做什么,甚至面试官是谁。【省略一些例子】。我想强调的关键是在自我介绍中,突出自己和这个部门,这个组的 connection,寻找尽可能多的共同点和缘分点。
面试中 - 项目准备
在面试前,还应该准备好自己的项目梳理笔记。实际上,在面试过程中,如果没有提前梳理好自己的项目的逻辑的话,很难在面试现场讲清楚以及让面试官及时 get 到你想表达的点。
一般而言,对于在校期间做的一些项目或者开源项目自己都能比较好地梳理清楚,但是比较难的是在实习过程中,特别是一份复杂的业务实习中梳理自己的产出。我个人认为面试官比较关注以下几个方面:一就是业务背景,也就是咱们的业务是什么,大概的架构,发展到哪种阶段,目前的瓶颈等。二就是本人负责的模块是什么,创新点是什么,以及特别重要的是:” 我为什么要做这件事!“,三就是这个模块最后的业务收益是多少,怎么去评判收益。可以参考这种逻辑去梳理。
面试前 - 好记性不如烂笔头
上文主要讲了个人介绍和项目梳理,我建议大家把个人介绍和项目梳理都放在一个 note 里面,每次面试前半个小时到一个小时回顾下自己的 note,以及根据面试岗位和小组来修改下。这样的好处在于每次都回顾下自己的项目和介绍,面试过程中有参考,不会慌。等面试次数多了,你就会发现,其实每场面试都是在重复介绍你 note 里面的内容。
面试中 - 换位思考很重要
面试过程中的一大禁忌就是不考虑面试官的感受,一股脑介绍自己的项目。一方面,面试官无法在短时间内吸收到你想表达的内容,另一方面,你一直噼里啪啦输出面试官听不懂的东西,面试官也会特别烦躁。
一个比较好的方式是:每次介绍完一段时,就停下来,反问面试官:您看您对这个项目的 xx 有什么疑问吗?比如说你介绍完项目背景后,就记得停下来,反问下,您看你对这个项目背景有什么疑问吗。
除了每次介绍完一段就停顿时,还有一个需要注意的点在于,不要梳理完项目以后,就完全按照项目梳理的内容去念,要注意观察面试官的反应,如果感觉他其实并不怎么感兴趣,就想办法赶紧结束。
面试中 - 反问阶段
反问阶段是一个及时获取信息的好机会。不同面试阶段有不同的提问。一面基本是你的同事或者你的 mentor,这个时候可以专注问一些工作内容,工作氛围等比较实际的话题。对于三面来说,一般是大老板,这个时候你要抓住机会和他交流下一些比较 high-level 的东西,因为以后很少有机会去和这样 senior 的人交流。话题诸如:职业发展路径、发展前景、绩效考核、我会被分配到什么具体组。
如果在每场面试的时候,你想知道自己大概的表现,你可以反问阶段,非常非常非常委婉地提问:您看我这次面试还有什么可以提升的地方吗?