面经(转)
首先我认为:找工作,应该要明确自己想干嘛,能干嘛.不过这些问题,我也帮不了,自己解决吧.然后就是深入学习了.接下来以我这学渣为例.我投的是后台开发.
项目:因为没项目,所以自己弄个项目,上网看视频跟着做也行,临时抱老师大腿跟着做也行,我就是给老师的项目小小地升级下就拿去扯了...不过不是单纯的扯,我是把整个项目的架构思路,设计原理,中间件的原理和部分中间件源码给看了.比如项目里面用到了Nginx,我就在网上把Nginx负载均衡的原理和代码给弄明白了.然后面试的时候说源码和原理,讲负载均衡的时候,再把里面的epoll的原理和数据结构说下,就这么弄,然后项目就算过去了...
语言,算法,数据结构:语言会问一点,但不深入.我用的c++,所以我就看了一些STL的源码,还有一些C++常见的坑,其实看完efftive c++和c++prime这种我感觉就差不多了,然后算法和数据结构呢,算法我是刷牛客的,数据结构我是看STL然后就融会贯通一下感觉都差不多.面试的时候就问了const是怎么实现的;在STL库里面,那些数据结构是怎样实现的,map,set,list这些,把原理讲一遍就好;还有个红黑树,b树,b+树的原理,什么插入删除啊这种,弄懂了就差不多了;当时还问了我STL里的sort函数用了哪几个排序,什么时候用;还好机智的我看过,不然就黑了...数据结构会上面那几种结构就差不多了,面试的时候我被问的最多的就链表...树都很少问.算法就是字符串匹配,排序这种,也不算很难,手写也不难,看看就行了.
网络和操作系统:网络部分我重点准备HTTP,TCP这两个,然后再加上别人的面经里的经典问题,有能力的看看TCP/IP详解就更好了;操作系统我是先看了下书(就那本老师推荐的教材),然后照着别人的面经准备的.网络是滴滴1面问的多,别的就问个HTTP和HTTPS的不同;HTTP1.0和1.1的区别;TCP和UDP;cookie和session这种东西的一些基本的问题,好好看看书就会了.不过当时滴滴问的多点,比如网络粘包产生的原因和解决方法;session的实现方式;cookie的安全性;访问网页突然变慢了,让你找原因;DNS欺骗的原理和防御;这种感觉还挺难.操作系统就问了些基本的,fork和exec的区别;进程线程的区别;进程间通信;死锁这种基础的.
以上就是我技术上的东西了,感觉找工作就这么几块知识点语言,网络,操作系统,数据结构和算法,再加个项目,全部弄懂那太厉害了,不过你总要有个深入的点,能达到面试官的要求,能怎么问都问不倒就更厉害了.要是你之前像我这么菜的话,那就得多学多看了,别想着天上掉馅饼,脚踏实地地学.努力就好,尽人事,待天命.
现在网络这么发达,网上一搜就能找到很多有用的知识,多看多学多用,免费的这么好的东西,不用就有点可惜了.最后祝大家都能找到满意的工作.
原:
作者:林家花美男
链接:https://www.nowcoder.com/discuss/18855
来源:牛客网