关于过去:参与项目至关重要
- 项目经历和项目中遇到的实际问题
- 你遇到的印象中最深的bug是什么?
- 面向对象
- 设计模式
- 网络相关,安全相关,内存相关,高并发
- 系统设计
通过过去了解你的思考行为方式
- 遇到最大的挑战?
- 犯过的错误?
- 遭遇过的失败?
- 最享受的工作内容?
- 遇到冲突的处理方式?
- 做的最与众不同的事儿?
准备合适的问题问面试官
- 整个小组的大概工作模式是怎么样呢?(团队合作开发)。
- 整个项目的后续规划是怎么样的?
- 这个产品遇到问题是怎么样解决的?
- 为什么会选择xxx技术?(技术选型)。
- 我对xx技术比较感兴趣,在这个小组我会有怎样的机会深入学习这种技术?
高级数据结构和算法(被问概率低)
- 红黑树
- 计算几何
- B树
- 数论
- 斐波那契堆
- FFT
基础数据结构与算法(经常问)
- 各种排序算法
- 基础数据结构与算法的实现:如堆、二叉树、图...
- 基础数据结构的使用:如链表、栈、队列、哈希表、图、Trie、并查集...
- 基础算法:深度优先、广度优先、二分查找、递归...
- 基本算法思想:递归、分治、回溯搜索、贪心、动态规划...
当没有思路的时候
- 自己给自己简单的简单测试用例,测试一下
- 尝试暴力解法
优化算法
- 遍历常见的算法思路
- 遍历常见的数据结构
- 空间和时间的交换(hash table)
- 预处理信息(排序)
- 在瓶颈处寻找答案:O(nlogn)+ O(n^2); O(n^3)
实际编码
- 极端条件判断(数组为空?字符串为空?数量为0?指针为NULL?)
- 变量名(模块化,复用性)
网友评论