C++学习进程安排
[非原创,看到有参考价值,所以果断转来:原文链接]
第一阶段(Linux C开发) |
|
目标:能使用并管理linux系统,熟悉linux开发环境。熟练掌握C语言语法。掌握Linux下C开发方法。 |
|
主题 |
内容 |
Linux最佳入门 |
Linux基本操作、Linux基本命令、bash基础、Linux文件系统、Linux管理命令、Linux文件权限、vi使用、grep命令与正则表达式、find命令等。 |
Shell编程 |
Shell编程基础、输入输出、算术扩展、条件测试、条件与分支语句、循环语句、函数、sed、awk、Shell俄罗斯方块 |
Linux开发工具 |
gcc、make、gdb |
Linux C语言开发 |
数据类型、控制语句、自定义数据类型、模块化程序设计、指针 |
实战项目 |
餐馆点菜系统(文件版) |
第二阶段(Linux C深入) |
|
目标:对C语言进入深化,掌握Oracle数据库以及数据库开发。掌握Linux底下的数据库开发技术。 |
|
主题 |
内容 |
数据结构 |
链表、linux内核链表、栈和队列、树、哈希表、经典查找与排序算法 |
Oracle数据库 |
Oracle数据库基础、ER模型、数据库系统的开发流程、数据库设计、POWERDESIGNER工具使用、ORACLE体系结构、DDL、DML、PLSQL、存储过程、触发器、函数、游标 |
PRO C编程 |
PRO C程序设计、宿主变量、指示器变量、错误处理、游标处理、PRO*C调用PL/SQL程序块、PRO C调用存储过程、动态SQL |
实战项目 |
餐馆点菜系统(数据库版) |
第三阶段(Linux系统编程) |
|
Linux系统编程围绕Linux操作系统的三大抽象展开讲解(文件、虚拟存储、进程)。并配合一个小型的Shell程序minishell做为教学项目 |
|
主题 |
内容 |
Linux系统编程 |
Linux系统编程之文件篇、Linux系统编程之进程篇、Linux系统编程之信号篇、Linux系统编程之管道篇 |
实战项目 |
Minishell |
第四阶段(Linux网络编程) |
|
Linux网络编程基础知识,socket编程、消息队列、共享内存、信号量、线程的创建、线程的状态多线程编程、线程间的通信、线程同步、线程池等。通过这个课程的学习,实现一个小型的ftp服务器miniftpd。 |
|
主题 |
内容 |
Linux网络编程 |
Linux网络编程之TCP/IP基础篇、Linux网络编程之socket编程篇、Linux网络编程之进程间通讯篇、Linux网络编程之线程篇 |
实战项目 |
Miniftpd项目实战 |
第五阶段(认真学C++) |
|
掌握C++语法、掌握理解面向对象的编程思想与应用、初步掌握面向泛型的编程思想。 |
|
主题 |
内容 |
C++程序设计 |
C++面向对象,运算符号重载,模板,异常处理,资源管理 几个重要的练习: 大整数类、字符串类、ptr_vector实现、面向对象版的表达式计算器、面向泛型版的表达式计算器、俄罗斯方块的实现 |
OOAD&UML |
UML、面向对象设计原则、设计模式 |
敏捷开发实践 |
XP极限编程(结对编程、测试驱动开发、重构) |
实战项目 |
表达式计算器、俄罗斯方块 |
第六阶段(大并发服务器设计) |
|
综合应用Linux系统编程、Linux网络编程、学C++所学的知识编写一个大并发服务器 |
|
主题 |
内容 |
大并发服务器设计 |
Mysql编程、Winsock编程、Linux Epoll模型、网络编程基础组件封装 |
实战项目 |
银行储蓄系统实现为大并发、客户端Windows、服务器端Linux |
第七阶段(Windows编程) |
|
在Windows操作系统环境下使用MFC进行图形化界面编程,运用MFC中的GDI技术进行图形图像开发,学习常用的游戏开发技术。 |
|
主题 |
内容 |
Windows程序设计 |
MFC结构,文档/视图结构,消息映射,SDI,对话框,常用控件,图形绘制,常用游戏编程技术 |
实战项目 |
单机版连连看 |
第八阶段(Windows网络编程) |
|
深入学习Windows多线程、网络编程。 |
|
内容 |
|
Windows网络编程 |
动态链接库,内存管理,进程管理,多线程,进程与线程通信与同步(临界区,互斥量,信号量等),WinSock编程、完成端口等。 |
实战项目 |
网络对战平台(多人连连看) |
主要往三方面去努力:
(1)基础扎实。注重基础:语言、数据结构与算法、Linux、操作系统等等。
注重手写代码能力,有必要重点强化训练。
(2)课外知识。课外花时间学习了web服务器Nginx,虽然研究得不是很深入,了解基本的架构和重点模块。只要能保证对于服务器 模型有了基本理解即可。
(3)技术博客。多总结,多交流,多分享经验心得,相互学习,相互帮助。