求职简历笔试题目

技术笔试的备考经验

本文已影响 2.91W人 

就说说对技术笔试的看法。多数公司考的很基础,在参加笔试前,问问自己:你对线性表、二叉树、堆、栈、散列这些基础数据结构有多少了解?你能迅速的写出常见的各种排序的一般实现么?你对算法的时间和空间复杂性有概念么?你对c的了解有多深?你看过《c专家编程》或者《c和指针》么?你的c++经验有多少?你至少完整的看过一遍《c++ primer》或《the c++ programming language》么?你看过effective和exceptional系列么?你对标准库的理解是什么?上面的这些问题如果你都可以做出肯定的答复,那你已经基本可以应付技术笔试了。
也许有人问,有这么多东西要看,我该怎么准备?个人认为可以分四块:语言、数据结构、算法和其他知识:
语言:我熟悉c/c++,就拿它说事。语言的基础不难,不过是变量、函数、表达式、流控制等等。谭老师的教材和林锐的书都是很好的入门材料。尤其是林锐,着重突出容易犯错的地方,象sizeof(char*)和sizeof(char[]),都是容易考到的,而且对一些高级话题,比如,vtable、vptr等都有涉及,可以让人对c++里让人比较迷惑的东西有个直观的认识。有人把他的书和《inside c++ object model》比,骂的一文不值,我觉得没必要这样,不是每个人都要成为lippman、stroustrup这样的大师,科普读物会让更多的人对科学产生兴趣。
对编程经验在1w行以上的同学,语言基础已经是小case。c高级编程系列,《c++ primer》,《the c++ programming language》,effective和exceptional系列是你应该熟悉的。比如adobe考试中的设计不可继承的类这种技巧基础课本里是不会提到的。你也应该熟悉标准库,对常见的容器、迭代器、算法应该有所了解。我个人觉得《generic programming and stl》、《thinking in c++》2e的下册和《effective stl》是很好的教材,当然边看还要边练练。
数据结构:对数据结构我没什么特别深入的研究。本科时候用清华严老师的教材,学的一塌糊涂,研究生自己把图书馆的数据结构书差不多都翻了一遍,感觉是大同小异。基础的数据结构《algorithm in c++》里讲的很好,实现也很优雅。高级数据结构,象红黑树、b树、二项堆、trie之类的《算法导论》里有所涉及。
我认为应付一般的笔试/面试《algorithm in c++》已经足够,如果想去百度之类对基础知识要求比较高的公司,你就需要对avl,b树,trie这些高级结构有比较深刻的了解。因为查找和排序是百度最看重的技能之一,就拿百度今年在北邮的海笔说,那道ip地址的题可以用区间树或者基数排序解,而另一个查找子串的题目无非是kmp(我当时写了一个朴素查找依然过关)。数据结构的复习强调多练习,难度以《数据结构》考研题目为准,这方面的书很多,我不多说。
算法:算法是我最没信心的部分,找工作前狂补了几个月也没什么成效。我个人的经验是《算法导论》确实好,但它里面过多的证明确实影响算法菜鸟学习的积极性,第一次阅读时建议跳过。我更加推崇的书是《algorithm in c++》,knuth的学生写的。里面不但有很多的图示也有精巧的实现,不管是数据结构还是基本算法的学习都是相当好的教材。主要看第一本,即《基础、数据结构、排序与查找》。看完一个算法合上书,看看自己能不能写出来。
看了书还要做题,我没做过多少算法题目,直接导致被有道、emc鄙视,其实现在看来他们考的也都是很基础的东西。我这里推荐《算法设计与实验题解》,里面对递归、分治、dp、greedy这些经典常考的算法给出了很多题目和解答,几乎包含了笔试可能考到的一切。比如有道高级编程题中的区间覆盖问题,即是其中的原题,而另一道凸包问题是计算几何的经典问题,只要涉及到计算几何的书都有讲。

技术笔试的备考经验

猜你喜欢

热点阅读

最新文章