C++学习进程安排
C++ 学习
本人本科不是计算机,不是软件专业出身的,研究生阶段学的是软件,基础很一般。我最近制定了一个学习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)技术博客。多总结,多交流,多分享经验心得,相互学习,相互帮助。
阅读(1348) | 评论(0) | 转发(0) |