写写最近吧,关于读研、找工作
刚刚又被朋友问到为什么要选择读研的问题了。已经好多好多人问过我这样的问题,我何尝不想问问自己到底为什么要读研呢。前段时间,每天在睡觉之前都我要想出无数个理由劝服自己要坚持读研,而每天早上第一件事又是再问自己为什么要读研。
我觉得,是否要读研的确要分专业的,有些专业读研是必须,而像我们计算机相关专业的,读研未必是件好事。曾经请教过一个我非常尊敬的老师,她给我的答案是,要看自己的人生规划,如果想走核心技术路线,读研是有必要的,如果想走业务技术路线,读研就是浪费时间,毕业后工作两年绝对跟本科生没任何区别,而且一般可以在工作之后考虑读个MBA,从而去从事管理方面的工作。 我当时没有不是很理解,但是实习之后,我渐渐理解了。 我工作的部门是淘宝的业务安全部门,每天与业务方打交道,每天的核心工作不是怎么写高效的算法、不是做如何内存优化,也不是做如何做分布式存储,如何搭建云计算平台,而是又有哪个PD提了需求,又有哪个客服反映了问题,又要添加一个什么新功能。。。 而这些完全不是我的兴趣所在。
所以,在淘宝实习这段时间,我一直都感觉自己在打酱油,我实在是没有办法静下心来,去学习那些JAVA框架和了解业务,再就是去读别人写的代码,一个完全没有文档的代码,我非常郁闷。期间,我经常去淘宝技术大学那边上课,几堂课让我收获很大,我知道了什么是分布式计算,怎么使用hadoop,怎么做分布式数据库的切分和集群,怎么做负载均衡,如何优化web系统。 我每次听到这些东西,就很兴奋,我就想好好学习,而每次听完课,回到部门里来就很不爽。 那时候,我就发现什么是我想要的,我终于找到了我的兴趣方向,我随即就买了几本书开始进行学习。再后来,去核心部门去面试,被委婉地拒绝了。数据平台的大牛图海,面试的我,跟我聊了很多,也是那时候,我有了读研的想法。 我觉得工作实践经验很重要,但是理论基础也同样重要,读研可以是一个很好的进行理论基础提升的阶段,可以利用研究生阶段进行大量先进计算机技术的深入研究和学习,比如目前比较热得云计算、分布式存储、数据挖掘等等。读研以后,目标就要与本科不一样了,一定要去核心部门,一定要去做核心技术,如果研究生毕业还去做业务相关,那研究生等于白读了。
是否要读研,我的确犹豫了很长时间,我不知道两年半研究生学习时间能否抵得过两年半的工作经验。 在读研的人当中,很多人不知道为什么要读,很盲目的去读,也有很多人则是因为想逃离本科生就业的压力,而选择读研,再有一种就是明确知道自己想要什么,明确知道自己想从研究生阶段获得什么的人。我觉得,我应该属于最后一者,其实我不是拿不到好的offer,事实上我已经拿到了研究生水平的薪水,但是我觉得读研之后可能会使我有更强的底蕴,更好的发展。但这只是“可能”,我不清楚我选择读研的决定到底是对是错,也许明年的这个时候我会后悔,但是人生不就是要有很多的决定吗。 有些时候,人生就是很多个分岔口组成的,所以怎么走,都是一种赌博,没有人知道到底谁对谁错。
再写写最近找实习和工作的一些体会吧。
如果搞过ACM的人,找工作的确很好找,基本微软、百度之类都可以很容易拿到offer,我不是算法牛人,没搞过ACM,没拿过什么奖,没进过什么实验室,水平一般,所以更能代表大众吧。
总结一些常出现的面试题:
1、网络编程问题 ,Socket通信的连接过程,具体到使用什么函数。建立连接的三次握手和断开连接的四次挥手是怎么进行的。服务器端的多线程、多进程问题,服务器端处理大规模连接如何处理。还有就是进程同步、锁、和进程通信应该怎么实现。这些在《Unix网络编程》都可以找到答案。
2、算法的题,就是经常会出些动态规划和查找相关的,dp基本都是最基本的经典题目,比如最长公共子序列、最大子段和、最长不降子序列、背包什么的,稍微了解算法的人,都应该会的。查找,考的最多的应该就是从一个很大的集合中,找出前K个最大的数,用快排中的Partition思想或是用堆结构应该都能解决。二分查找有可能面试的时候,让你在纸上写出来,注意考虑一些边界情况,可以用Assert处理。
3、数据结构的题 。链表(单向、双向、循环)的增删改查,利用队列和栈的特性的一些题目。树貌似考的最频繁,二叉树的遍历(递归和非递归),最大或最小堆,赫夫曼树,红黑树(阿巴巴里的面试就悲剧在红黑树上了),B树和B+树的特点,使用场景。还有就是Hash,这个也是常考的。
4、各种排序,稳定和不稳定要做好区分。
5、语言方面的问题,c++主要就是考指针,虚函数、继承、sizeof啥的。
6、大规模文件数据的题目和分布式计算的题目。
面试前要做的准备:
复习:一定要复习,必须要复习,有些问题不是你不会,而是记不起来了。
我觉得比较好的复习顺序是《c++Primer》+《操作系统》+《Unix网络编程》->《数据结构》+《算法导论》->《程序员面试宝典》+《编程之美》+“何海涛的163博客”+网上的各种面试题、笔试题。
准备:一份简洁、重点突出的中英文简历,一份中文自我介绍、一份英文自我介绍、一份自己简历上的重点项目的介绍(一定要具有技术难度或是有创新点的项目)。
PS:如果是电话面试,一定要找一个安静的地方,然后带着笔和纸,跟面试官慢慢聊。自信很关键。
写在最后:
最近心情一直不好,迷茫、无助,压力很大,一直高兴不起来。
下周我就要从淘宝离职了,实在是不太想做现在的东西,也实在是对我们部门的部门文化不敢恭维。回学校安静一段时间,写写技术博客,把最近学到的东西好好总结下。然后去上海大众点评去实习段时间,可能有些人会认为像大众点评这样的公司,比较小,看不起,但是我要说,这样成长型的公司是最有发展潜力的。也是新人能很快成长的地方,所以大家不要一味地只去百度、阿里、腾讯之类的大公司,这样的成长型公司也是不错的选择,如果哪天上市了,你就爽了。
最近,大家都在为自己未来的路程而拼搏和努力。 保研的、考研的、找工作的、出国的,希望大家都能获得成功。 一眨眼,大四了,再一眨眼,我们也到要离别的时候了,希望大家能够珍惜这段时间吧,以后总有些人、有些事就不会再出现了。
明天,跟杭州几个朋友出去吃个饭,也算是告别吧。但是杭州,12月3号,我还会回来的,五月天演唱会。
2011年10月15日
写于杭州 淘宝 华星现代产业园