https://github/frank-lam/2019_campus_apply 这里面包含大佬总结的所有的知识点。
研发岗位考察知识点多,无论C++岗位还是java岗位,考察知识点除语言之外,都相同。笔者看过牛客网很多面经,收获很大总结一下几点 。复习重点从前到后递减。
1 数据结构与算法。 无论实习还是秋招,无论科班还是非科班,无论算法还是研发,都逃不过数据结构与算法,数据结构与算法作为程序员的基本功,是非常重要的。复习方法。剑指offer+leetcode。剑指offer66题的重要性已经不用多说了,剑指offer刷完两到三遍,再把书过一遍,熟记于心,无论笔试还是面试手撕代码应该没问题。推荐视频慕课网算法视频+牛客网算法视频。推荐书籍(算法第四版)。一般压轴常考题型(背包问题,矩阵链乘,最长上升序列,最长公共子串)
- 剑指OFFER的各个题目是最常见的,即使不是原题也是题目的变体,因为面试不像笔试,一般不会出特别困难的题目,所以剑指OFFER上小而精的题目就非常适合。建议手刷一遍。PHP的同学可以参考专栏剑指OFFER
- 二叉树相关(层次遍历、求深度、求两个节点距离、翻转二叉树、前中后序遍历)
- 链表相关(插入节点、链表逆置、使用链表进行大数字的加减,双向链表实现队列、寻找链表中的环)
- 堆(大量数据中寻找最大N个数字几乎每次都会问,还有堆在插入时进行的调整)
- 排序(八大排序,各自的时间复杂度、排序算法的稳定性。快排几乎每次都问)
- 二分查找(一般会深入,如寻找数组总和为K的两个数字)
- 两个栈实现队列。
- 图(深度广度优先遍历、单源最短路径、最小生成树)
- 动态规划问题。
- 深入
- 红黑树性质
- 分治法和动态规划的区别
- 计算时间复杂度
- 二叉树和哈希表查找的时间复杂度
- 栈和链表是面试算法的时候经常用到的工具,多考虑怎么用数据结构的性质解决,因为面试不像笔试,对基础数据结构关注的比较多一些,一般问题也比较简单。然后取模也是常用的工具(比如有一次问怎么让100个进程按规定的权重被调用,就可以用取模的方式)。
- 面试官一般会先出简单的问题,然后深入地问下去,最好是根据他的思路走,因为能听懂他的提示也是需要考察的能力。
2 语言,这里主要分java和C++,其他语言后台开发应该比较少(可能笔者见识少),这里讲讲java语言。java基础知识总结见笔者博客java基础知识总结,复习方法,保证基本语言功底前提下,多看博客,多刷题,多总结。推荐书籍 java核心技术卷I, java核心技术卷I,深入理解java虚拟机(必看),java并发编程艺术。
3 计算机网络 。计算机网络作为笔试常考题之外,面试也是被问及最多。推荐书籍 图解HTTP ,图解TCP/IP,推荐视频网站 中国MOOC。刷题:牛客网。常考知识点汇总。
- 基础部分
- TCP报头格式
- UDP报头格式
- TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚)
- HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个)
- HTTP协议(一些报头字段的作用,如cace-control、keep-alive)
- OSI协议、TCP/IP协议以及每层对应的协议。
- SESSION机制、cookie机制
- TCP三次握手、四次挥手(这个问题真的要回答吐了,不过真的是面试官最喜欢问的,建议每天手撸一遍,而且不只是每次请求的过程,各种FIN_WAIT、TIME_WAIT状态也要掌握)。
- 打开网页到页面显示之间的过程(涵盖了各个方面,DNS解析过程,Nginx请求转发、连接建立和保持过程、浏览器内容渲染过程,考虑的越详细越好)。
- http和https区别,https在请求时额外的过程,https是如何保证数据安全的
- IP地址子网划分
- POST和GET区别
- DNS解析过程
- 深入部分
- 13. TCP如何保证数据的可靠传输的(这个问题可以引申出很多子问题,拥塞控制慢开始、拥塞避免、快重传、滑动窗口协议、停止等待协议、超时重传机制,最好都能掌握)
- 14. 地址解析协议ARP
- 15. 交换机和路由器的区别
4 操作系统。常考知识点。
- 内存的页面置换算法
- 进程调度算法
- 进程间通信方式
- 进程线程区别
- 进程之间的通信
- 父子进程、孤儿进程
- fork进程时的操作,
5 数据库
推荐书籍 Msql必知必会,高性能Mysal ,
6 linux
推荐视频:鸟哥私房菜
7 项目
牛客网中级项目+高级项目+设计模式+spring技术内幕+深入理解java技术内幕
最后,在单项知识点个个击破之后,看面经,总结面试常考问题,总结五十篇面经,基本面试官的问题应该都会,常考的问题记忆加背诵加理解。当然不用忘记最重要的是剑指offer,刷题,刷题,刷题。提前复习,提前准备。提前准备。(笔者也是菜鸡,以上纯属面经总结)
更多推荐
计算机基础知识汇总 (java语言+数据结构与算法+计算机网络+操作系统+计算机网络+数据库+linux+项目)
发布评论