今天是2014年9月26日,来到实验室已经三个月了,几乎还是没有做什么事情,本来是很排斥做网站前端开发的,不过对于当下LAMP架构的流行,还是打算安心在实验室把这个搞搞,把这个架构搞明白,在课余时间还是希望剩下一些时间来进行看书,
a) 面试所问重点是数据结构(严蔚敏版本的数据结构),要对里面的一些基本操作非常熟练,能熟练的编写各种程序,链表,栈,队列,树的递归和非递归算法,AVL树,红黑树, hash,各种查找和排序,kmp算法
b) 算法设计与分析(递归,回溯)
c) 操作系统,linux方面的,对于一些很重要的命令要相当了解,对gcc,gdb,vi,vim,makefile有会用,对操作系统原理熟悉,进程 线程的区别等等,linux的select函数原理,gdb调试的callback文件。生产者消费者问题,分页分段, 进程间通信(几种方式,实现方法,我是看的 APUE),进程和线程的区别,守护进程的创建,gdb 的常用指令,socket 的一些基础东西
d) C/C++ 对STL要相当了解,vector, malloc函数的原理
e) 对实验室项目认真做,对自己负责的模块要熟悉,遇到难点的解决方法,对整个项目的结构了解
f) 计算机网络,网络第三章(tcp三次握手的过程,accept发生在三次握手哪个阶段?Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?
redis和memcache区别
g) 个善于总结和反思
h) 数据库(笔试)
由以上面试经验和师兄们的面试经历来看,我主要还是多多编程,多多熟悉数据结构,平时没事的时候用gcc进行编程,gdb进行调试,数据结构和算法很重要,
在操作系统层面,应该以linux为主,熟悉linux的进程间通信,内存管理,文件系统,进程和线程区别,僵尸进程等,熟悉linux的基本命令,gcc ,gdb调试的基本参数
C/C++层面应该懂得一些机制实现的原理,STL源码解读和编写,vector
计算机网络应该熟练掌握TCP/IP协议,ISO 7层结构,tcp三次握手的具体实现,运输层对TCP流和UDP数据报有明确的了解
没事多看看人家写的博客