今天讲一讲程序员面试准备工作。当我们决定要跳槽的时候,首先要把心态摆正,找工作是个苦力活,一定要有心理准备,对身体和心理都是一种挑战。
第一步,准备好简历。
第二步,温习和补充自己的计算机方面的知识。
1. 主要语言和特性
如果C++是你的主要语言,那你就准备C++方面的知识。推荐以C++ Primer为基础。把C++ Primer看完了,基本上对于C++的面试问题,就没什么问题了。
顺便这里也讲一下,C++中很容易被问到的几个问题。C++的三大特性是封装、继承、多态。封装,很容易理解,就是类,把一些不想被外界访问的东西隐藏起来,只有通过对象调用特定的方法才能访问到。继承,就是子类可以继承父类(基类)的方法。多态,是面试官问的最多的问题,怎么理解多态。多态,最关键的地方在于,可以将子类的指针赋值给基类的指针,基类指针调用的方法,是可以调用到子类的同名函数的。实现多态,要求在基类定义该函数为虚函数。
以防会有面试官喜欢问一些语言方面的细节问题,以及有的公司会安排笔试。建议还是把剑指offer刷一遍,这样对一些C++的关键字也有一些理解。比如static、const、指针和引用的区别、sizeof某个class的大小(考察虚函数表、空类大小、static变量等)、C++和C的区别等。
2. 算法题准备
首先,一定先把经典排序算法掌握好,能够随时写出来。有的公司还是会问排序算法的。如果连经典的排序算法都写不出来,那基本上黄了。冒泡排序、选择排序、快速排序等。
在时间允许的条件下,建议刷一刷leetcode上的题。还是挺有意思的。而且有些面试官甚至会直接面到里面一抹一样的题。尽量动手写代码,通过leetcode的测试。不要着急看答案。
时间允许的情况下,能够把算法导论这本书看完当然是最好的。
3. 相关知识储备
这个就是计算机相关知识的储备,当然是越多越好。如果没有时间的话。这个可以根据应聘的职位,简单准备一下:
a. TCP协议的三次握手、四次挥手协议。
b.线程、进程的关系和区别。多线程的锁的概念。
c.设计模式。
d.数据库的简单知识。
第三步、工作项目准备
整理好自己过往的工作经历和项目。
提前想好面试官可能会问的问题。
挑一到两个自己觉得还不错的项目,并构思好怎么介绍这个项目。
第四步、对要应聘的职位准备
首先,要了解应聘的职位是什么。
其次,针对这个职位,做一些相应的准备。
常见的面试问题(欢迎大家集思广益)
1. 为什么要换工作?
2. 对于自己的职业规划是怎样的?
3. 找工作更看重哪一点?平台?工作内容?薪酬?
4. 面试完,面试官一般都会问,你还有什么问题要问的吗?
可以稍微跟面试官了解一下,这个招聘的职位,具体是做什么产品。还有可以聊一下未来的发展方向。
晚了,有人感兴趣的话,晚点再跟。欢迎交流技术问题,找工作中遇到的问题,都可以私信或者留言。