假道于仁
1、知道自己要什么如果人的一生中所经历的世界真的有像天堂一样的地方,那么大学一定是唯一的那个自由和宽容的天堂,大学可以充分包容你的任何想法,让你可以尽情做自己想做的事情。但我觉得最困难的部分在于你不知道自己要什么,这就会让自己陷入迷茫,最终人云亦云,看着别人去读研,你也要去保研或者出国读研,看着别人找工作,你也准备找工作。当然,大部分人都是这么过来的,但我今天想说的是如何找到自己的位置,知道自己要什么,并且有针对的去做准备,当我们毕业后回头看自己的学生岁月时,少一些遗憾,多一些成就感。说到未来的方向,无非是继续深造或者毕业工作两个选择。我们从小学到大学,经历这么长时间的学生生涯,我相信我们都会对自己的性格会有一个基本的判断,如果觉得自己喜欢并且能够静下心来搞科研,善于挑战自己,去发现问题和解决问题,那么可以选择继续去深造,去读一个PHD。如果觉得自己动手能力很强,并且对枯燥的科研论文毫无兴趣,想做一些实际的事情,那么就应该直接去工作。在刚刚读研一的时候,我发现自己对科研不是很感兴趣,反倒觉得自己很喜欢敲代码,做项目,很享受编程的过程,而且自己的英语很烂,跟那些本科就开始接触科研的同学相比,我没有任何优势,因此研一就觉得自己毕业后应该去找一份工作。在知道自己想要什么后,那么未来的一切都变得明朗了。2、准备好自己,培养核心竞争力我始终相信天道酬勤,看书就会有看书的结果,编程就会有编程的结果。当我知道自己的目标是毕业直接工作后,我决定培养自己的工程方面的能力,为将来的工作做准备。a)多动手写代码在学校的时候,我在想如果我跟别人同时去找工作,我的优势在哪里,我的核心竞争力是什么,后来我想到自己应该在研究生期间多做一些项目,多一些项目经验,多培养自己动手的能力。因此读研期间,我的工作确实也都是偏工程方面的,我积极参与了实验室各种偏工程类的项目,不放过每一个提升自己动手能力的机会。在实际投入应用的系统方面,我参与了锦江集团财务管理系统的开发,以及复旦大学附属儿科医院网站的建设和维护。在研究型项目方面我参与了实验室上海科委和国家863的两个项目系统的开发。除此之外,我还会自己动手写一些有意思的爬虫程序、小网站和微信公众号开发等项目。兴趣是最好的老师,想要提升自己的编程能力无非是多动手,做一些自己感兴趣的项目。b)永远保持学习的能力,多看技术类书籍本科的时候除了上的专业课内容外,我看的技术类的书籍很少,因此除了计算机的基本理论知识,其他的编程相关知识了解的很少,而且掌握的内容都不成体系。所以我会要求自己多看一些技术书籍,了解最新的技术动态和趋势。我研一的时候因为某个项目的关系,接触到Node.js技术,对这方面非常感兴趣,我发现可以用JavaScript这一门语言就可以完成前后端的开发,这是件非常有意思的事情。因此我深入看了JavaScript相关的书籍,比如《JavaScript高级程序设计》、《JavaScript语言精粹》、《Node.js实战》、《深入浅出Node.js》等等。并且正是因为深入了解JavaScript的关系让我在工作面试中加分不少。当然我也看了一些其他的技术类书籍,如Linux系统编程相关以及网络协议相关的书籍,弥补了自己的一些知识面的欠缺。由于计算机专业的特殊性,新技术层出不穷,我们需要永远保持自己学习的能力。拥有一个综合全面的计算机知识背景会给自己的面试大大加分。c)培养自己的表达能力光练不说傻把式,有再好的产品,但是不会推销也是没有用的。良好的表达能力在任何时候都是非常重要的,要学会表现自己,让别人了解你,看到你身上的闪光点,这样别人才会认同你。很多时候知道是一回事儿,但能够说出来让别人听懂又是另一回事儿,所以在学校的时候就要注意培养自己的表达能力。我读研期间,在课程大作业的汇报和实验室讨论班的技术与论文介绍时,都会努力的去准备PPT,在Presentation前反复的去思考整理整个Presentation的思路以及每个点表达的方式并反复的计时试讲,通过这样的方式我觉得自己做Presentation的能力以及口才都有了很大的提高。这些过程让我在面对工作面试的时候,能够准确的表达出自己想表达的思想,给面试官留下一个良好的印象。另外一个培养自己表达能力的方式就是写技术博客,如果可以坚持写原创技术博客不但是对自己所学知识的总结,同时也会对自己表达能力的提高大有裨益。总之,在学校里不要放过任何一个可以锻炼自己的机会,只有经历的磨练,的准备,才能比别人成长的更快。3. 如何找到理想的工作a) 分析自己的优缺点,找准工作岗位我16年3月份开始找实习的时候,一开始想找一个后台开发工程师的岗位,而自己比较熟的后台开发语言是C++,所以面试BAT基本都是面试C++的岗位。但是我的算法能力一般并且已经很久没有用C++去实实在在地写一个项目了,与其他同学相比我没有任何优势,所以面试基本都折戟沉沙了,最终只拿到了腾讯阅文,Intel,ebay等公司的offer。吸取实习的经验教训,我开始想我与别人相比,最大的优势在哪里,我的核心竞争力是什么?我发现我最擅长的还是JavaScript语言,我研究生阶段最大的技术积累就在JavaScript方面,而这一方面对应的岗位就是前端工程师,因此我找工作选择的岗位主要就是前端工程师,并且针对这个岗位的技术要求做了相关的调研和准备工作。结果证明这样选择是正确的,最终拿到了BAT的几个满意的前端工程师的Offer。综上所述,大家在找工作时,由于每家公司在选择面试岗位的时候只能选择一个岗位,所以大家应该清楚自己的定位,了解自己的优势在哪里。比如你一直在写Java很擅长Java,就可以去面阿里、爱奇艺等公司的Java工程师的岗位,如果你很擅长PHP,就可以去面腾讯和百度的PHP工程师的岗位。b)多跟那些成功的师兄师姐(offer收割机)交流,了解差距在哪里,争取内推对于一开始找找实习或工作的你,一定很迷茫,所以向那些成功的师兄师姐询问经验,打听情况是必须的。你应当关注的内容是你所要面试的岗位要求是什么,面试会涉及哪些方面的内容,然后针对自己的欠缺去突击和弥补。大家也可以多去知乎,另外,特别是让师兄师姐帮你内推,争取内推面试机会,像BAT这一类公司,基本都会有内推的机会,内推的好处在于让你有两次面试机会,即使内推失败了,还可以走正式的笔试面试流程。这一点非常重要,可以说内推占据了BAT校招的很大一部分名额,真正留给正常流程的名额有限。c)关于找工作前的准备工作,多刷Leetcode如果想找编程类的工作,刷题是必须的,无论是Google、微软这样的外企,还是BAT都非常重视面试者的算法基本功。从我自己的面试经验来看刷一遍Leetcode就够了,如果时间不够可以只刷Leetcode的easy和medium部分,面试中很多算法问题都是Leetcode上的原题,或者能够在Leetcode上找到类似的题目。不同类型的公司对面试者的要求和侧重点都不一样,像Google和微软这样的外企,只要求算法能力,笔试和面试基本都是算法相关的内容,要求能够快速的写出解决问题的代码,所以想去外企的同学刷题是最好的准备方式。同时,大家可以看一下算法相关的书籍,如《剑指Offer》等等。而像BAT这样的国内公司在笔试中和面试的第一面中一般会涉及算法问题,但对算法的要求没有外企高。如果大家想进BAT除了准备算法外,还需要针对自己面试的岗位所用到编程语言做详细的了解。比如面阿里的Java开发工程师的岗位,就需要了解Java语言的各种特性和框架,JVM一些机制以及Java性能调优的知识。在这里推荐牛客网,牛客网上有非常多的各个公司笔试和面试的经验帖子,大家可以经常去看一看。另外,大家也可以经常去知乎上看看找工作相关的问答。总之,知己知彼,才能有备无患,拿到自己想要的Offer。最近,我也从学弟学妹那看到阿里招聘团队官方出版的书《技术之瞳》,是一本非常难得的求职准备指南,里面涵盖了多数技术类岗位的考察要点分析,如果大家有看到官方出的书请优先选择,比各种野路子来的更接近一手信息,也可以让大家少走弯路。其次,我想说一下简历的制作。对于一个成功的面试来说,简历可能占了百分之五十的功劳。面试官和HR在看到你本人之前最先看到的是简历,如果你的简历不够突出,没有亮点,面试官和HR连面你的兴趣都没有。所以如果简历做的很烂,你再优秀也是没有什么用的。在准备面试前,做一份合格的简历应当参照以下原则:1. 核心原则:突出自己的亮点简历上的所有内容都需要去斟酌,是否可以表现你自己某方面很突出,很优秀。2. 简洁简历上的内容不能突出你的亮点,那就去掉,比如我见有的同学写主修课程,我觉得完全没有必要,面试官不会care你学了哪些课程,只关心你的技术能力。3. 围绕一个中心针对不同的岗位是应该调整自己的简历内容的,如果面试的是前端工程师,那么就应该突出你当前拥有的前端工程师相关的项目经验,突出你掌握的前端工程师相关的技能,围绕一个中心点去写简历。4. 避免假大空你简历上的内容应该都是你熟悉并且能够脱口而出的,实际上面试官对你考察的内容基本都是你简历上出现的相关内容。所以如果你某一方面不是很熟悉,那就尽量不要写到简历上。面试官主要关心的是你的某项技术掌握的深度,而不是广度。关于面试的技巧首先,面试时是最重要的一点就是自信,任何时候都要自信地去应对面试官的提问,这会给面试官一个很好的印象。对于需要思考的问题,可以不用急着回答,跟面试官说明需要思考一会儿再回答,不要因为紧张随便给一个答案,乱回答往往会造成面试扑街。另外,对于确实不会的问题,不要打肿脸充胖子,可以明确的跟面试官说不确定,但是可以给一个自己思考后可能的答案,给出自己的想法。另外,如果确实不会,又没有想法,可以往自己擅长的方面去引导面试官的提问,比如面试官问你HTTP的302状态码表示什么意思,你可能不知道,但是你知道403和404状态码,这个时候你就可以回答你知道的内容,并且说一些自己熟悉的HTTP其他的相关内容。