C++知识体系

基础知识

推荐书目

C++

《C++程序设计》(课程教材即可,简而薄)  

《STL源码剖析》(对C++进一步深化,也是必备知识)  

《C++对象模型》(经典中经典,重点了解c++虚拟继承内存对象模型) 

《程序员自我修养-链接、装载与库》(了解程序编译过程,深入了解运行库,程序运作过程数据内存分布) 

更上一层楼:(Effective C++、More Effective、Exception、More Exception、高质量c/c++)

备注:书看了会忘记,关键是多加练习。看开源代码也是一种加深和提高,建议这个阶段阅读live555的源代码和阅读ACE中reactor中的源代码 

设计模式

学习方法:每个模式每天敲打一个示例,重复两次;耗时小成效大

算法

重复阅读一本算法设计的书,书莫贪厚,清华出版社《算法设计与分析基础》不错;  

基本(单独迅速敲打出来):  排序:插入(稳)、希尔(不稳)、快速(不稳)、选择(不稳)、堆(不稳)、归并(稳)  

树:遍历二叉树、线索二叉树、森林与二叉树转换  

图:存储结构(数组、邻接表、十字链表、邻接多重表),图的遍历(深度遍历/广度遍历)、最小生成树、拓扑排序、关键路径、源到所有点最短路径、点对最短路径  二叉平衡树、B-和B+树 

经典算法:  

动态规划----最大子段和 

分治策略----最近点对  

贪心算法----单源最短路径/最小生成树 

回溯法----n皇后问题  

概率算法----素数测试、产生固定概率事件 

网络流-----增广路算法 

经典算法案例: 0-1背包 

网络

网络理论知识

Windows 网络IO模型(5种)、Linux 网络IO模型(3中) Windows/Linux网络编程开发接口 P2P网络模型(4种)

了解:

 BGP/DHCP/DNS/FTP/HTTP/POP/RTP/RTSP/SDP/SIP/SMTP/SNMP/SOAP/SSH (应用层)  

TCP/UDP/SCTP/RSVP (传输层) 

 IP(ipv4/ipv6)/ICMP/ICMPv6/IGMP/IPsec (网络层) 

ARP/RARP/OSPF  (数链层)   

流媒体还要深入理解:  TCP/UDP/IP/RTSP/RTP/RTCP/SIP 

数据库

掌握数据库基础知识同时深入种数据库: 

深入oracle或者DB2或者SQL Server 重开发而懂管理 

例如  

C++涉入Oracle的  

掌握PL/SQL和Pro*c/c++,对oracle管理,例如内存,进程等要熟悉 

操作系统

《windows核心编程》(了解windows系统有哪些系统调用) 

《Unix/Linux Shell 编程》《Unix/Linux编程》  

熟悉Linux主要意思是你掌握一门Shell编程和一些系统编程接口,当然也包括想vi,gdb,gcc等的使用。但是,当你熟悉一门shell之后,你就可以大胆说你熟悉linux。学习应用shell最多不会超过一周。

你可能感兴趣的:(C++)