1.“你不能告诉面试官什么重要什么不重要。在任何公司都不行。”
2.“当你不需要更多解释就理解了面试官问题是哪一大类的时候,很多面试官都会觉得满意。” 即说明问题的类别比解释问题重要。
3.一些需要学习的技术性备忘:
数据结构和算法方面
①算法复杂度;
②n*log(n)复杂度排序算法的细节,快速排序,以及合并排序,他在快速排序不适用的情况下会非常有用;
③平衡二叉树,无论是红/黑树,伸展树还是AVL树。不要回避他!
④图,图结构是非常非常重要的,在内存中表达图有三种基本形式(对象和指针,矩阵,以及邻接表),你必须尝试学习更潮的算法,例如Dijkstra和A*
⑤特别了解NP完备性问题中最著名的几类,例如旅行销售员问题和背包问题,能在面试官隐蔽地问到你这类问题时把它识别出来。
数学
①组合数学和概率论
操作系统
①进程、线程和并发问题
②解锁、互斥、信号和管程,以及它们的工作原理
③死锁和活锁以及如何避免它们
④进程和线程分别需要什么资源,context切换如何进行,它们在操作系统以及底层硬件是如何初始化的
⑤了解一点计划任务。世界正向多核系统迈进,如果你不了解现代并发架构的话,你很快就会变成落后于时代的恐龙。
最好最实用的书是Doug Lea写的《Java并发编程》
编程
①最好是C++或者Java
②你应该对你擅长的编程语言了解很多细节
“实际上,我谈及的内容大部分是警示性的:如果你不了解它那就大事不妙了。”
之后blog回答以上的问题。