心态决定一切-----《程序员笔试面试宝典》

1.抛砖引玉

找工作的过程是综合实力较量的过程,一个好的offer背后凝聚着无数辛勤的汗水,需要勤奋、坚持、积累、付出。这里介绍一下自己找工作的经验,希望对师弟师妹们有所启发。需要注意的是,完全做到了这里提到的几点并不意味着你一定可以拿到一流的offer,我仅是抛砖引玉而已,如果想在找工作时得心应手,需要平时不断积累和总结,领悟其中的真谛。

2.心态决定一切

对于找工作,心态很重要。找工作之前,一定把心态端正。20年寒窗苦读,最重要的一个目的是找一份理想的工作,从而实现自身的价值,因而我觉得,我们至少应该像准备高考那样,全身心地投入到找工作的准备中,将之前所学的知识重新温习整理,以便将所有能力能够最大限度地发挥出来,进而向面试官充分展示自己、推销自己。

3.冰冻三尺非一日之寒

关于找工作前的准备,有两个因素直接决定着你是否能最终被录用,一个是项目,另一个是基础知识,这两者中任何一个被面试官相中,均可能拿到offer。

对于项目,不在多而在精,一般的项目,如普通的管理系统、网站等,面试官几乎不用耗费脑力,一眼就能看到底,没有什么好讲的,最切合也最能引起面试官兴趣的项目往往是与他现在的领域相同或相近,解决的问题的确具有一定的难度且提出的解决方案具有一定的创新点。但遗憾的是,对于大部分毕业生,项目的深度往往不够,毕竟想在研究生短短的两三年时间里成为这方面的专家,还是比较有难度的,所以这个时候就全靠你的基本功了。

基本功大致可分为以下几个部分:编程语言,数据结构与算法,操作系统和其他小知识点。对于编程语言,个人认为C语言是必须掌握的,很多公司把C语言作为必考项。另外,要在C++和Java两种面向编程语言中选一个,主要知识点是面向对象编程中的一些基本概念,如虚函数、构造函数、析构函数、拷贝构造函数等。有一些题目已经成为经典,是必须、一定要掌握的。例如,(C++语言)虚函数是怎么实现的?构造函数可以是虚函数吗?为什么鼓励将析构函数设计成虚函数?对于数据结构和算法,这是面试的重点,很多公司基本上只考算法与数据结构,这就需要大家平时多积累、多练习。尤其对一些基本数据结构和算法,要非常清楚,如单链表反转、Trie树、两个数组交并差集等。对于操作系统,主要掌握Linux里的一些基本概念,如线程、进程、内存管理、文件管理等,这些也会在面试中出现,一定要好好复习。最后是一些其他知识点,如设计模式(单例、工厂模式等)、编译原理(程序从编译到运行要经历的几个过程)等。

4.修炼程序员之“葵花宝典”

找工作的过程中,一些经典的题目,一定要反复推敲,很多题目来自固定的几本参考书,大家应该好好琢磨一下这几本书中的题目。

(1)《编程之美》。这是一本实战书,任何找过工作的人都知道,很多笔试面试题直接来自该书,值得各位找工作的应届生认真地阅读和讨论。此外,该书中有些题目难度过大,从找工作的角度考虑,可暂时不看。

(2)《编程珠玑》。该书主要介绍软件设计思想,书中的例子已经成为百考不厌的经典题目,如数组循环移位、随机采样算法等。

(3)《算法导论》。该书对各种常见算法有很深入的讲解和详尽的证明,并对每个算法的起源、动机和求解过程有较多的涉及。

(4)《深入理解计算机系统》。该书从程序员的视角介绍了计算机系统。几乎囊括了计算机的各类技术,包括数据表示、C程序的机器级表示、处理器结构、程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程等。该书中提到的一些知识点,常作为面试题目出现,如Linux信号量、虚拟内存管理等。

5.八面玲珑

关于找工作的技巧,主要介绍两点,一是回答问题的技巧。对于项目,主要回答点应该是遇到的挑战和解决问题的思路,对于算法问题,要从复杂度高的算法逐步向复杂度低的算法过渡,第一眼见到题目,可先将自己想到的思路说出来(如O(n2)复杂度),然后不断优化(如O(nlogn)复杂度),最后尽量得到一个最优的算法(比如O(n)复杂度),这时候可能要在纸上写出来,一旦没有了思路,应该主动要求面试官加以提示。另一个是交流技巧,这里指的是面试者之间的交流,这一点非常重要,每当前一个面试者面试完后,应该主动跟他交流,主要询问一些个人收获和心得,尤其是别人的失误,应该尽量避免,因为面试官一天要面试众多的求职者,很可能会对不同的求职者提出相同的问题。

6.多多益善

最后是offer的选择。offer尽量多拿一些,以便给自己留一些选择的余地,至于怎么选择offer,这是个人的问题,每个人的侧重点不一样,因人而异,但我觉得适合自己的就是最好的,没必要和别人进行比较。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章