面面俱到很难,一个领域钻研的很深也很难。我认识的大神里有把C++语言吃的很是透的,也有实验室就是搞分布式的,拿offer都很是轻松。前端
博客(C++后台/基础架构)
http://www.linya.pub/java
web服务器开发
直接看muduo的代码去学习吧,但你能够看看我markdown里总结的东西,看一下我作了什么,另外这个也只是帮我应对了春招实习招聘,做为一个例子供你们参考。mysql
腾讯员工写的,据说评价不怎么样,能够看成cpp后台面试提纲。c++
当析构函数遇到多线程──C++ 中线程安全的对象回调(最新版见《Linux 多线程服务端编程》第1章)git
多线程服务器的经常使用编程模型(最新版见《Linux 多线程服务端编程》第二、3章)github
《Linux 多线程系统编程精要》(第4章)web
Muduo网络库使用手册(2012-06-26更新,最新版见《Linux 多线程服务端编程》第六、7章)面试
《Linux 服务端网络编程精要——Muduo 网络库的设计与实现》(第8章)redis
《分布式系统的工程化开发》(第9章)
C++ 工程实践(2012-04-20更新,最新版见《Linux 多线程服务端编程》第十、十一、12章)
网络编程学习经验(2012-02-13更新,最新版见《Linux 多线程服务端编程》附录A)
从《C++ Primer 第四版》入手学习C++(2012-07-11更新,收入《Linux 多线程服务端编程》附录B)
https://github.com/hoshinotsuki/documents
https://blog.csdn.net/Solstice/article/details/6206154
2019/2/25 更新
面试考点集中在虚函数、虚继承、vector等容器的底层实现以及一些c++新特性上。
这本书足够应对全部面试了,主要考点在TCP和UDP区别,TCP三次握手、四次挥手。
个人经验是有时间就看书,没时间就看网上博客,由于操做系统的书通常都讲的比较晦涩难懂,不如一些好的博客讲的更容易让人理解。面试题主要集中在文件系统、进程线程、进程间通讯、线程同步、程序内存空间这几个方面。
二叉树和排序相关算法考的最多,其次是深度优先遍历、回溯和动态规划。排序算法比较常考的是快排、堆排、归并排,还有基于快排和堆排思想的topK算法(这些都要会手写)。二叉树主要是树的前、中、后序遍历(递归和非递归,最好能手写),层次遍历,树上两个节点最远距离、树和有序链表互相转化,两节点最近公共父节点,其余还有许多,暂时想不起来了。深度优先遍历(dfs)、回溯、动态规划主要是笔试题用的多,不过最好可以手写一些经典算法,好比01背包、最长公共子序列以及其推导公式。若是感兴趣的话能够了解一下dfs、回溯、贪心以及动态规划以前的联系和区别。
这本书主要是能够多了解一些概念,包括socket编程、各类同步锁。除此以外能够看看博客学习一下io多路复用、负载均衡、一致性哈希、线程池、对象池、任务队列等等。
c++面试对于数据库的要求没有java高,我遇到的面试题主要是,redis的5种数据类型、redis的单线程实现、redis集群高可用;mysql引擎、索引、事务特性、隔离级别、脏读、幻读等。
这两点只是面试中的加分项,时间充裕的话能够了解一下,在面试中若是有相关经历,面试官会以为你是一个很全面的人,适合之后培养。
春招前后在百度和腾讯各实习了3个月,3月份先去了百度的互联网数据研发部,作一些页面特征的提取策略,包括文章评论量、收藏量等;后来6月份去了腾讯的兴趣阅读产品部,作的是推荐系统架构和一些前端的东西。实习对秋招的帮助主要体如今,实习经历是不少公司秋招提早批的优点条件。面试官会关注你在实习公司的工做表现,在面试时是个很不错的加分项。同时,实习还能扩展视野,从产品和技术两个方面理解一个实际项目是如何构思以及落地的。 关于实习,个人建议是能去就尽可能去吧。不过我身边也有许多没有实习经历也能拿到大厂offer的,这个仍是要看我的。若是可以去实习的话,个人建议是不要频繁的更换实习公司,必定要把本身的实习内容理解透彻,否则面试的时候反而会不利。
1. 一个月学习语言
2. 两个月学习算法加刷题
3. 两到三个月学习操做系统、数据库以及其余知识顺带刷博客和面经,半年时间差很少就能够找个比较不错的工做了。
根据我的实际状况,能够调整本身的学习计划,我在这里只是一个很初步的建议。对于想要拿到BAT级别以及更好的offer的同窗能够在在本身感兴趣的方向深挖一下,面试的时候主动引导面试官往本身擅长的方向提问。
我对于offer选择的建议是部门 > 平台 > 薪水,在薪水相差不大的状况下,尽可能去大厂或者核心部门吧。
鹅厂。