面临读研,找工作杂感
大三了,这个学期的我过得有点和前几个学期不同,面对着即将步入大四,突然感受到了找工作的压力。
刚开学的时候,我感觉到自己有点迷茫,在我面前的有两个选择,一是继续学习,即读研究生;二是开始准备面试的内容,投简历准备去实习。
内心有点迷茫的我,去找了专业的老师了解研究生的相关信息。当今社会,找工作的基本都是研究生,很多国企要求招收的都是研究生或以上的学习,记得一个老师说的一句话,还是挺有道理的话,"当前的世界是一个看文凭的世界,没有文凭的‘装扮’,你很多事情干不了"(拼爹拼不了,还是自己发奋吧,骚年),显然,一个研究生的起薪和发展前景显然也比本科生要高的多。然而,找工作也是一个不错的选择,俗话说得好,“社会是最好的大学”,在实践中,我们学到很多课堂里面学不到的知识,而且了解得更加的透彻,更何况等到三年或者四年的研究生读出来,原来本科的同学也许已经成为了某个公司的管理层、也许已经创业成功,有了自己的的公司,请人帮自己赚钱(也不是都能成功!!!)。显然,两种选择都有成功与失败的。
好像扯得有点远了,最终的我还是更偏向于找工作多一点,然而由于前期的犹豫不决,复习的成果并不佳,投了一些大公司进行了一些尝试,结果并不理想,深知自己和企业的要求还有一定的距离,开始不断的预习、复习、深入学习。对于我们搞IT的人,面试问的最多无非是项目经历,项目经历并不多的我,稍显略势,很多东西是实现了,但就觉得自己做的东西并不会很难,和别人谈的时候有一点不是很自信。就我觉得让我介绍一个项目我会简单的介绍一下这个功能模块的功能。这些模块我是怎么实现,中途实现的思路是怎么样的?遇到困难的时候我是怎么解决的?这些功能中有什么难点或者闪光点?我有什么收获?介绍的时候应该尽可能的全面,自信很重要,谈谈自己的小小思考也是一个不错的选择。虽然说项目有挺重要的,然而我前几次的面试中都没有提及到项目的内容(和其他同时面试的人有所不同),大的公司(像BAT)要求相对会高一些,不仅要要自己的想法,同时你的理论知识要求也很高,可能他们觉得对于一个人的发展潜力来看,一个能把一样东西了解得很透彻很明白,比能实现要重要得多的多。记得当时面试的时候我有问过一个面试官,他们想要的人是什么样的人?他的回答是理论学得比较好的人,只有理论过关了,你做东西才能得心应手,理论基础对于我们的以后的发展可能更重要一点。(所以骚年,开发的过程中了解他底层的实现也是很重要的)。
理论知识哪些重要呢?高数?大物?电工?离散?……貌似我们这些对于我们搞IT的来说,这些课程好像对我们没什么用处,面试不考,生活中用不到,马克思、思修更不用说,文科类的课程,可逃就逃,根本都没有是没用,虽然说我也不反对这种想法、做法。因为我们真正用到的毕竟很少,但是我觉得学这些还是有一定用处的,潜移默化中,通过学习高数、大物、离散等课程时,我们已经由高中初中的记住公式,转变为了知道它是什么原因导致了这样的结果,简单来说,高中时老师教我们怎么用,大学的老师启迪我们这个结果是怎么得出来。不知道你们有没这种感觉,我是觉得有这种质的转变,而这种思想也会对我们以后学习东西有了一定的影响,改变我们学习的一种方式,是知道它是怎么一回事了,而不是仅仅知道他是怎么用的。而像马克思、思修这种文科类的课程,我觉得也是挺重要的,在大学,比别人多了几年的学习时间,技术肯定是要学的,但同时,大学也是一个修生养性的时候,技术上去了,品质跟不上同样也是不行的,通过课程的学习我们也会有一些体会,老师一般会通过这种方式传达一种思想,虽然说因人而异,可能不一定适合你,但至少能从老师多年自身经历中汲取到一些对我们有用得东西,吸收成为我们自己的东西。不管哪一科,虽然说不一定能知道他是否有用,不管喜欢与否,学好他就对了。
IT面试会问哪些方面的问题呢(除了项目)?数据结构、数据库、操作系统、编程语言(Java/C++/object-c/C)、计算机网络、计算机组成原理、算法【后台开发】,对于后台开发入门比较容易,但学精有点,问题范围不算很大,但相应的也可以问得比较深入,对于编程语言我们不仅要知道他们有哪些比较常用的类,及其方法。我们还应该了解一些,这些类这些方法底层是这么实现的,遇到类似的算法的时候,如果他的实现思路比较要,可以学习他的实现。而对于像数据结构,我们要了解不同存储结构带来的不同的实现效率,他们使用的场景,有什么优缺点,有哪些典型的结构?栈、队列、数组、树……在实现某个功能之前,考虑一下哪种存储结构能更加容易实现我们要实现的功能?哪种效率更加高?对于操作系统,无疑我们要了解一下比较底层的东西,数据以什么形式存储在了磁盘上,我们是怎么获取的,以什么方式获取的,怎么实现文件共享。怎么实现通过一个文件名来获取磁盘上面的数据?通过学习算法,我们要学会对一个算法进行算法效率的分析,已经实现的算法他的效率怎么样?使用上面算法才能让我们的效率变得更加高?如:N大排序算法,基数排序,快速排序,希尔排序,冒泡排序,选择排序,堆排序……遍历树的递归非递归方式(层次遍历、先序遍历、后序遍历、中序遍历),通过这些算法的一些延伸的算法题目,如何获得大量数据中的最大或最小数,我们可以通过(大、小顶)堆来实现。
总得一句话,世上无难事,只怕有心人,有想法,有梦想我们就大胆的奋斗,不一定能成功,但至少别让自己留下遗憾!!
思维有点混论,不好意思,可能是我的胡思乱想,假如和你们想法不同,求原谅!!!!