从毕业到现在已经工作了快三年了,作为一名CPP的开发者,感觉自己还是很菜。从今年开始,希望使用一年的时间来进行学习,系统的掌握相关的开发的知识,让自己更有竞争力。
制定一下自己的学习计划,希望能够坚持,加油,共勉。学习分为两个部分,实践和书籍。
实践部分
完成vidFactory的开发,将前两年在datadom公司学习的媒体处理知识整合起来。
项目描述
这是一个在线的媒体处理网站。提供图片,音视频,文档的各种操作以及网站的基本功能。
媒体处理模块
视频转码,视频裁剪,视频拼接,视频添加水印,视频截取关键帧,视频模板,特效;
图片转码,图片裁剪,图片旋转,图片添加水印,多张图片合成视频;
文档转码,PDF文档添加水印,PDF获取缩略图;
在线直播
用户模块
- 用户注册;
- 用户登录;
- 用户信息;
任务中心
- 任务管理;
文件管理
- 文件管理;
- 文件上传,下载等;
项目要求
需要有一个可重用的项目架构,不止用于此项目,以后任何的开发都可以使用这个架构的框架,只需要更改api的实现就好,相当于搭建一个自己可以使用的可持续开发的平台。需要具有以下的功能:
- 日志管理;
- 健康检查;
- 支持容器部署;
- 高可用,高并发;
- 分布式;
- 数据备份和恢复;
项目时间
- 开发时间:2021.03.01 ~ 2021.11.01
- 实际时间:4x2x8=64天(周末全勤)
开发计划
详细参考Tower
书籍部分
理论知识的学习分两个部分,一个是对CPP语言的整体的学习,主要学习语言的应用,另一个是开发使用中其他知识点的学习。github上比较优秀的学习项目。
学习时间
- 开始时间: 2021.03.01 ~ 2021.12.31
- 实际时间:上下班地铁,周末
语言学习
- C++编程思想[第一卷]
- C++ Primer;
- Effective C++;
- More Effective C++;
- 深度探索 C++ 对象模型;
- 深入理解 C++11;
- STL 源码剖析;
其他学习
设计模式
- 21种设计模式学习
系统
- 深入理解计算机系统;
- Unix 环境高级编程;
- cpu;
- 进程;
- 线程;
- 内存;
网络
- Unix 网络编程;
- TCP/IP 详解;
- UDP;
- websocket;
- mqtt;
- 并发
数据结构和算法
中间件
- 消息队列
- 消息总线
- 消息的顺序
- Rabbitmq
- redis
- ZeroMQ
- 定时调度
- rpc
- grpc
- 日志系统
- 日志搜索
- 配置文件
- API网关
评论