Welcome to Pandora's Box(Why)

Keep It Simple, Stupid!

Fork me on GitHub

找工作的一点经验和教训

| Comments

转眼参加工作已经四个月又半了,虽然也还算是初入茅庐的小菜,不过也有自己的一些思考,结合之前找工作的经历,在这里简单谈一些“经验和教训”吧。

找工作还是得突出在“找”上,且大多数情况下是人“找”工作,极少数的情况下会出现工作“找”你(这里我们不考虑猎头社招之类的,特指校招)。首先可以明确的,找工作的时候其实就是匹配你的skill和工作内容的匹配程度,以及你的品性和未来同事的匹配程度,明确了这一点其实准备起来还是可以非常有针对性的。不要太考虑自己的专业背景,专业院校,“英雄不问出处”,问一下自己,想做什么样的工作,哪些公司自己想去,他们需要什么样的人,需要具备怎么样的技能,我目前水平怎么样,匹配程度如何,如果想顺利去这些地方工作,应该怎么做,是不是需要有一个计划,具体又如何实施,如果这一系列的问题你都可以回答自己,或者通过跟他人讨论得出相对明确的答案,那么恭喜你!找工作你已经成功了一半了!

拿我个人举例,本科读的是机械工程,无奈真的对这个学科提不起兴趣,个人觉得计算机科学真的很有魔力!在ACM集训队经过半年不成功的尝试后,加入学生团队向周围相关专业的人学习,通过实际的项目学习。兴趣导向,基本上确定了未来一定是进入IT行业了。不管是进公司也好,还是创业也好,甚至读个PhD出来,我几乎从来没有对未来想要进入的行业怀疑过。这里的IT,我想说是“信息行业”,不特指软件行业。根据个人经历,可以印证“功夫不负有心人”这句话,中间有大量的迷茫,彷徨,不知所措,痛苦,可正是在这些阶段,是自己飞速成长的时候。真正进入研究生阶段后,才算是转来了一个“跟计算机严重相关”的专业,也是从研究生阶段开始,通过对开源的学习和交流,自己的计算机水平才开始真正走上正轨。说实话,一开始面临找工作的问题,自己心里也不是那么有底的,非CS科班出身,一些知识点很散,不太成体系,导致知识面也许够宽,但蜻蜓点水的情况偏多。这也是非CS专业的人找工作的时候表现出来的一个通病。

俗话说,“预则立,不预则废”,硕士阶段两个大目标其实也挺清晰的-毕业&找工作。这两条主线贯穿始终,借用一位同学的话,你需要花两年的时间,认认真真地去“填”你的简历。所以,找工作真的不是那么一两个月的事情(水平很高的人请忽略),更多地把它当成一个系统的项目来做,往往最后会得到自己满意的结果。接下来简单从几个方面谈一谈如何去做准备工作(特指IT行业),希望能给大家一些启发(更多内容请参考我的slides – 找工作的一点经验和教训)。

时间表

这里给出我个人认为比较合理的一个时间安排。研二的寒假开始梳理找工作事宜,推荐《程序员面试金典》的前面几章,思路很清晰。开始制定技术准备的计划,要看的书,要刷的题。基本上3-5月份默默修炼就好,6-7月可以寻找一些实习面试的机会,一来检验自己,二来找面试感觉。8月差不多开始正式战场(有的在7月份,比如去年的FB,这个大家注意留意就好),这时候基本就是笔试面试,总结,准备,再笔试面试,这一阶段有的时候挺微妙的,你可以发现自己前所未有的可以看清楚自己的内心活动,不管是喜悦还是沮丧。这个阶段,你的情绪也会变得更加敏感,突然的一个Offer,冷不丁的一个拒绝,都会在你内心荡起波澜。我是比较好的开局,之后陷入泥潭,后来又慢慢爬出来。虽然面试的进行,心态也会慢慢发生变化,长时间找工作的一大好处就是这个体验了,有很多认真深入思考的机会(有的时候是不得不思考了)。基本上10月的时候高峰期就过去了,这个时候,主战场基本结束了,但是不要过早地撤离,经过浴血奋战,你已经很有战斗的感觉了,所以可以权衡下手里的Offer,学习并体验一下“谈判技巧”,然后再看看有没有更好的机会。顺利的情况下,这是一个丰收的时刻,但难免很多纠结,这个时候注意不要跟身边的人做太多比较,追求自己想要的就好。

技术储备

基础的《数据结构》和《算法》个人认为最重要,值得花大时间,因此校招考查很难逃出这个范围(《算法导论》足矣)。我之前没上过这方面的课程(其实有相关课程,但跟没上过基本等效了,有点后悔当时没有认真跟着课堂走,否则可以省不少时间),所以花时间过了一遍《数据结构C语言版),后来花时间看了一部分《算法导论》,感觉十分有用!《操作系统》一定要有基本的了解吧,至少对“线程/进程”有个清醒的认识,《计算机网络》至少了解TCP/IP的基本概念,三次握手,etc。语言层面如果不是特别偏Java,建议用C/C++练习写算法,现在考察的时候这个比较主流的样子(当然这可能是我的主观感受)。C++的《深入理解对象模型》,《STL源码剖析》强烈推荐。其他的书籍参考slides吧。

如果面“机器学习”,“数据挖掘”的岗位,那要把相关课程过一下,然后基本概念一定要清楚。这里经验不太多,不过多讨论了。总结来说就是,根据你想找的工作岗位,除了基础知识(数据结构和算法),针对性地准备,不要觉得这样功利,遵守游戏规则而已。

临场表现

心态第一,笔试面试第二。注意沟通,随机应变。跟人感觉的话,首先是自信,然后是态度端正,绝对谦虚,给面试官足够的尊重。不要过于沉默寡言,该问的要问,该表达的想法要适当表达,但也切忌话太多,言多必失,且太多话真的容易招人反感(个人观点)。

好好做题目,做到自己能够做到的最好程度。面试的过程就是表现自己的过程,把你的思维,思考方式都给面试官看,最好把你好学的一面也表现出来(真切的,不要装)。对于你来说,你是在争取一个Offer。而对于面试官来说,他在寻找一位同事,一位他愿意一起共事的人,知道了这一点,该如何表现其实变得容易了,不是吗?

知己知彼

这里特指谈Offer阶段吧,每年都有special啊,白菜价之类的,其实在找工作的过程中,少不了和周围同学的讨论,每年的行业也相对明朗。你自己的水平如何,面试表现如何,开了什么价位,是否匹配,自己完全可以判断的。这里的核心还是手里要有过硬的Offer吧,否则谈起来也不太容易。

继续跑

以为找完工作就结束了?Totally wrong!找完工作之后,即使拿到了还算不错的Offer,也真的觉得自己有太多的东西可以加强!So,努力提高自己的市场价值吧,努力的你会拿到自己应得的价的:–)

No pain, No gain. Good luck, a great job is awaiting:–)

Comments