知乎看到的一篇关于计算机就业文章,分享一下吧。
能做到以下几点,绝对可以在北上杭深拿到15K以上:
撒比算法题,各大公司笔试面试基本都考这个,别的不说,《剑指offer》所有题目背下来,leetcode刷个四五百题起码的吧。搞过ACM也可以,反正刷个四五百题是必须的。我也觉得考这些撒比算法题很撒比,但是大家都这么考,你不准备,那不挂你挂谁?
数据结构,不说要彻底给面试官手推各种数据结构的均摊复杂度,也不要求你手写红黑树,至少AVL 哈希表 堆这些简单的数据结构得自己实现过;链表、线性表必须熟悉到不能再熟悉,比如vector为什么要用加倍扩容而不是每次增加一个固定的扩容容量;BBST各种都能扯一下,达到这个程度就差不多了。
计算机组成原理, 至少《深入理解计算机系统》得过一遍吧?配套实验也得做一下吧?
计算机网络,这个最简单了,随便找本书,把应用层、传输层看完就行,我看的《计算机网络 自顶向下方法》。关键在于搞懂TCP协议为什么要这么设计,为什么是三次握手,四次挥手?书中的其他rdt模型为什么不实用? 我面快手的时候还问了wireshark抓包遇到三次快速重传会怎么样,不过这本书的配套实验也有抓包内容,老老实实跟着做就是。
操作系统,这个部分我还在学习,采用的是跟着MIT 6.828做的方法。知乎上陈硕有一个关于学习操作系统非常好的回答,大意是要抓住重要部分,不要沉迷于技术细节,我觉得很对。具体的,内存分配、调度、多线程 这几个点,都得深入理解一下吧。如果不想具体去研究操作系统的实现,那么怎么用操作系统提供的接口这个是必须的吧,APUE了解一下?
数据库:sql得会写吧,几个范式有没有正式运用过? 在做项目的时候,数据应该如何组织,才能够使得每次查询的开销最小? 如果想深入,数据库的实现也是很好的一个方向。
编译原理:深入研究编译器,去钻研llvm当然很难,但是作为一个普通开发人员,编译器的各种选项,不同的优化级别具体优化了哪些,这些总得了解一些。最关键的,动态链接,静态链接,头文件,gcc的 include选项、link选项、define选项(-I, -L, -D)怎么用,makefile/cmake怎么写,clang icc gcc到底真的用起来有什么区别,这些坑作为一个开发人员迟早会遇到,越早遇到,以后碰到坑的时候就能越轻松一些。
编程语言:总得擅长一门语言吧?C++的话,那几本书(Effective三部曲,对象模型)看完了吗? Java的话,JVM虚拟机理解的怎么样了?大厂就喜欢问这些,不好好准备那就挂喽。
具体岗位需求:别的岗位不了解,后端开发还需要熟悉网络编程,UNP得好好看。
项目:说句实话,学校里接触的项目能有多高大上?如果只是用几个框架的那种,我建议不要写到简历上,不如去github上参与开源项目,GSOC了解一下?当然如果你的实验室很厉害,跟导师做的项目很牛逼另说。还有一条路就是上面的5,6,7,任何一个花上半年时间去实现一个简陋的原型(比如实现一个简单的内核),都是非常好的简历加分项。事实上,国外名校这些课的最后的project都是让你实现一个原型。
英语: 这个面试一般不会涉及到(除非是英文面试),但是我仍然认为英语是很重要的能力。具体的来说,就是“遇到一个撒比问题不去打扰同事自己谷歌或者bing从stackoverflow找到回答并且独立解决” 或者“老板让我去接触一个没搞过的东西我硬着头皮点开文档看了两天两页终于能解决问题” 的能力。
信息采集能力:对于学校不太好(非C9)的同学,这个能力其实是最关键的。最优秀的同龄人在学习些什么?我想去的公司想招聘什么样的人才?面试会问什么?春招秋招到底是什么,如何投递?实习真的很重要吗? 这些问题,你去百度,去知乎搜索,去牛客网搜索,其实都有回答。为什么说这个能力重要?举个例子,BAT热门岗位留给秋招的坑寥寥无几,因为坑都被实习转正的同学占了,如果你之前不知道春招,没有去实习,能去BAT热门岗位的机会自然就很渺茫了。又比如,秋招各家公司笔试难度都明显高于面试难度,原因一方面是筛人,另一方面是笔试作弊现象很严重。如果你知道春招、秋招提前批是不用笔试的,是不是你的机会又多了几分?
社交能力:几个关键字:头条白金码 组内直推 自己去牛客搜索吧。
以上是对本科研发岗的要求。算法岗和研究生的要求我不太清楚,想必只会更高。
当然,我上面说的这些要求,对于绝大多数同学来说都非常遥不可及。但是,如果你在一个很普通的高校,不拿最高的标准要求自己,那你的结局就是和你的那些学长学姐一样,去个普普通通的公司,过普普通通的一生。取法乎上,得乎其中,取法乎中,得乎其下。
请允许我在这里引用《上海交通大学学生生存手册》中的一段话:
相比宝贵的青春,我们在上学期间所需要的学费和生活开销几乎可以忽略不计。我们真正投下的有价值的筹码,是时间。面对着足以改变你人生轨迹的黄金时间,你是否感到了它的沉重?你又是否想过要如何计划这笔巨额投资?
如果你是一名乖孩子,每天从早晨开始好好上课,好好做作业,好好预习、复习,直到熄灯时间好好睡觉,过着这种积极健康,平稳中庸的生活,但是缺乏有效自我支配的生活(如果按照学校的规划,你会发现你可以自由支配的业余时间少得可怜)。那么,你这样退守下去,无异于把自己的青春放在保险箱里让他随着时间而凋谢。我们必须牢记这样的黄金规则:
平庸的生活方式是麻醉药。他只会束缚你,让你没有作为,甚至没有出息地度过大学的四年。
引用知乎,作者:匿名。