面试准备(ZZ)

复习基本知识。 《LC C++ 数据结构与算法》、《操作系统原理》、《计算机网络》、《Linux程序设计》(因为我自己做的就是Linux和网络方面的东西); C推荐大家看三本书:《C陷阱与缺陷》、《C专家编程》、《C/C++高质量编程》。对于C,你这样准备就足够了。我的项目主要是C,自己也很喜欢。另外 我C++也还可以,就看了钱能的那本。如果一些公司考C++,你最好看一下《C++ Primer》,主要看一下里面的STL。 数据结构也是重中之中,链表、栈、队列,主要是里面的算法、查找(折半、平衡树、红黑树、哈希);排序(快排、shell、堆排,还有外部排序),对这些 算法要完全掌握,包括具体的代码。我最喜欢哈希和堆排,真的很经典!数据结构很多大公司喜欢考,比如百度、华为也考一点。如果你搜百度的面经就知道了,数 据结构和算法有多重要。多看看百度面经,了解怎么运用这些算法解决大量数据的处理。如果想让自己的水平提升一个档次的话,建议把微软的《编程之美》看一 遍,非常好的一本书! Linux操作系统我推荐陈莉君老师的《Linux操作系统原理与应用》。 计算机网络,这是我的研究方向,要掌握的最好,最重要的就是TCP,对TCP的连接管理、流量控制、窗口 其原理、算法完全理解透彻!面试一般会问TCP、UDP、IP的头部结构、TCP实现原理等,主要是谢希仁的那本书,看了无数遍了,现在再复习加深理解。 另外我还把Linux内核协议栈代码也看了几遍。最后一个,《Linux程序设计》,这本书是自己买的,主要是shell、多线程、多进程、IPC、 Socket方面的编程知识,这是为腾讯准备的,因为腾讯做的东西就是这块,虽然我的项目不涉及这些,但我知道一定要准备一下,但《Linux程序设计》 讲的不是很深,算入门级。九月份的时候看到腾讯面经,突然醒悟,看了一些较深的socket编程,把《UNIX网络编程》里面的select、poll、 线程池等看了,还有在网上搜一下较新的epoll,看了几遍。果然腾讯二面有问道select与epoll的区别。首先声明自己没做过这方面的东西,但喜 欢Linux编程,也就看了一些这方面的知识,然后就说了一下它们的区别 嘻嘻~~

你可能感兴趣的:(linux系统,面试,数据结构,linux,编程,算法,linux内核)