1.拿offer的自身准备主要包括三个部分:基础+项目+算法
基础和项目部分写到简历上,且与求职的岗位具有一定的匹配度,这一点特别关键。
2. 基础主要包括理论知识和编码能力两种
理论知识主要以 计算机网络, 操作系统, 数据库的理论知识为主,计算机网络主要是TCP/HTTP的知识, 操作系统主要是进程线程的知识,数据库主要是索引等知识。
当然也包括编程语言和设计模式,数据结构等知识。
编码能力对应的是上面理论知识的编程实现,以及基本的代码调试。但是这一块内容比较多,笔试面试中考察编码能力往往是通过算法题进行考察的。对于工程能力的考察,往往是结合项目进行考察的。
所以在时间不充裕的情况下,可以以面经中高频面试题作为必须掌握内容。依次为基础展开,在有余力的情况下,再深入展开学习相关扩展内容。这一点比较关键。
对于编程实现,则是与具体的项目结合,掌握查阅API手册的方法学习
基础知识是面试中的送分题,因为限于时间,有很大一部分题目是以口述为主的。如果基础题目答不上来,会让面试官觉得基础不够扎实,是很减分的。
基础知识的学习办法,就是反复背面经,遇到需要深入理解的知识,再结合书籍,视频深入理解, 同时学有余力,结合必要的工具项目实战演练。
3. 项目是一块比较难准备的内容,需要比较长的时间。
对于C/C++ 来说,性价比比较高的项目就是TCP/Web服务器的开发。这一块的内容比较底层,难度比较大。学有余力的情况下,准备一个含金量较高的。
Golang是一门非常简单的语言,对于使用C/C++的来说,建议在做一个Golang的秒杀系统的项目,结合必要的Web框架和数据库。
对于Java来说,涉及到较多的框架。可以做的项目比较多,但要注意项目的深度。
4. 算法题刷公司的笔试真题和Leetcode的题目(面试)即可。
相对来说,只要时间充裕,算法相对容易准备,只要刷题即可。