C++学习进程安排

本人本科不是计算机,不是软件专业出身的,研究生阶段学的是软件,基础很一般。我 最近制定了一个学习C++的学习安排,现与大家分享一下,不足之处,欢迎指正!

第一阶段(Linux C开发)

目标:能使用并管理linux系统,熟悉linux开发环境。熟练掌握C语言语法。掌握LinuxC开发方法。

主题 

内容

Linux最佳入门

Linux基本操作、Linux基本命令、bash基础、Linux文件系统、Linux管理命令、Linux文件权限、vi使用、grep命令与正则表达式、find命令等。

Shell编程

Shell编程基础、输入输出、算术扩展、条件测试、条件与分支语句、循环语句、函数、sedawkShell俄罗斯方块

Linux开发工具

gccmakegdb

Linux C语言开发

数据类型、控制语句、自定义数据类型、模块化程序设计、指针

实战项目

餐馆点菜系统(文件版)

第二阶段(Linux C深入)

目标:C语言进入深化,掌握Oracle数据库以及数据库开发。掌握Linux底下的数据库开发技术。

主题

内容

数据结构

链表、linux内核链表、栈和队列、树、哈希表、经典查找与排序算法

Oracle数据库

Oracle数据库基础、ER模型、数据库系统的开发流程、数据库设计、POWERDESIGNER工具使用、ORACLE体系结构、DDLDMLPLSQL、存储过程、触发器、函数、游标

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)技术博客。多总结,多交流,多分享经验心得,相互学习,相互帮助。

                                                     欢迎交流,相互学习!QQ:1540754159

                                                               小王  2013.11.07  长沙


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