<span>Linux C/C++方向开发(13周学习路线)</span>

第一阶段(C语言及项目实战)
Week1
  • 学习C语言的目的,C的基本数据类型,整型(各种进制变换及补码),浮点型,字符型等
  • C语言的13种类型运算符及表达式
  • 选择循环结构程序设计
  • 一维二维数组存储原理及灵活使用
  • 指针的本质,指针的偏移与传递,一级指针(基本类型指针,数组指针,函数指针等),二级指针
  • 函数的使用,函数内不同变量的作用域及有效期等
Week2
  • 结构体,链表的增删改查,联合体,枚举,从链表延伸各种高级数据结构等
  • 基本排序算法(冒泡,选择,插入,快排,堆排)等,对比不同排序算法掌握时间复杂度,理解空间复杂度等,掌握常用排序接口qsort,同时实现索引式排序,理解索引本质
  • 文件的打开,读写,偏移,关闭等
  • 学生管理系统项目实战(通过学生管理系统掌握用户登录,文件中链式数据结构的初始化,程序的结构化设计,文件的新建修改存储等)
第二阶段(Linux服务器开发及项目实战)
Week1
  • Linux概述,为什么学习Linux系统编程,掌握操作系统的三层结构,POSIX标准,准确把握学习方向等
  • Linux常用命令,通过命令能够在Linux下熟练进行各种操作(用户创建配置,文件及目录新增删除查找,权限改变,文件内容查找,磁盘内存查看等)
  • VIM编辑器,能够熟练编写代码,自动对齐,联想,批量替换等操作灵活掌握
  • GCC编译器,掌握预处理,编译,汇编,链接每个过程文件实际变化,动态库、静态库编写,生成,调用、GDB调试
  • Makefile工程管理器,能够编写通用性强的Makefile
  • Linux文件操作编程,通过Linux的文件操作接口实现文件的打开(多种模式均需掌握),读写,关闭。Stat文件状态获取,DIR系列接口能够自行实现目录深度优先,广度优先遍历,文件空洞设计,mmap文件映射高效操作文件,使用管道文件通信掌握select多路复用等
  • 通过Linux一系列文件操作,掌握VFS文件系统原理,解析iNode与Dentry存储原理,B+树存储结构等,为以后理解各种文件系统,数据库,大数据框架的实现做好准备
Week2
  • Linux多进程机制,进程的调度,进程的创建,退出,资源回收等,通过对进程RSTZ等状态变化的把握,理解调度本质,队列思想,并发与并行,负载均衡等
  • 进程间通信、标准流管道,无名管道,有名管道编程,能够通过管道灵活实现各种情况下的进程间通信
  • 共享内存创建,连接,使用,删除等,掌握虚拟地址到物理地址的转换原理,理解共享内存与Mmap的差异
  • 信号量原理解析,原子操作分析,能够使用信号量保护共享资源,计数信号量理解生产者消费者模式
  • 信号的产生,处理,阻塞等操作,能够熟练进行信号处理行为设定,充分理解异步原理
Week3
  • Linux多线程原理,线程的创建,退出,资源回收等
  • 线程的取消,取消失败分析,异步取消的资源清理等
  • 线程互斥锁mutex、线程条件变量同步机制,深入理解同步及异步编程等
  • 可重入函数,不可重复函数
  • 网络编程模型解析,网络协议解析等
Week4
  • Socket编程基本原理讲解,通过Socket实现TCP、UDP通信
  • Select,epoll多路复用讲解,实现原理,并发处理等
  • Socket结合epoll实现即时通信,文件传输等
  • 进程池模型讲解,通过进程池实现文件的并行下载
  • 线程池模型讲解,通过线程池实现文件的并行下载
Week5
  • Mysql安装配置,数据库及表的创建删除,表的增删改查,销毁等,C连接Mysql进行增删改查
  • Mysql索引讲解,索引是什么,为什么需要索引,目前索引的类型及索引的内部实现原理
  • 单元测试方法(等价类,边界值,因果图,判定表,状态机,正交分析法等测试方法讲解)
  • 通用加密算法解析,散列算法,对称加密,非对称加密算法等
    文件服务器项目实战(功能匹配百度网盘)
  • (包括用户注册,登录验证,文件查看,上传,下载,删除
  • 下载具备下载提速,断点续传,多点下载等功能
  • 服务器文件系统升级,实现不同用户相同文件秒传功能)
  • 文件授权查看功能,类似百度网盘分享
第三.一阶段(C++语言基础4周)
Week1
  • Git版本控制系统
  • Vim编辑器IDE化
  • C++与C语言的差别,字符串类型std::string
  • 类的定义,三种访问修饰符,对象的创建和销毁
  • 设计模式之单例模式
  • new/delete表达式扩展
  • 容器之vector
  • C++输入输出流
  • 日志系统log4cpp的学习
Week2
  • 友元函数、友元类
  • C++运算符重载
  • 全局类,嵌套类,局部类;
  • 设计模式之Pimpl,Singleton变种
  • 写时复制(COW)技术详解
  • 设计模式之代理模式
  • xml文件解析(开源库TinyXml2)
  • 正则表达式匹配字符串(开源库Boost.Regex)
  • 泛型编程,模板,函数模板,类模板
Week3
  • 标准模板库STL总体概述
  • STL六大组件:容器、迭代器、适配器、算法、函数对象、空间配置器
  • STL迭代器源码剖析
  • STL容器适配器、迭代器适配器、算法适配器
  • STL空间配置器底层源码剖析
  • 实现自定义Vector类
Week4
  • C++11新特性之移动语义
  • 资源管理之RAII技术,智能指针
  • 数据格式之JSON字符串解析
  • 面向对象之继承,基类,派生类对象的创建和销毁,基类与派生类对象间的转换,派生类对象间的转换
  • 面向对象之多态,虚函数的实现原理,虚函数的访问,纯虚函数,抽象类
  • 面向对象设计原则,UML,类图,序列图
  • 设计模式之工厂模式,观察者模式
第三.二阶段
(C++进阶)
Week5
  • 使用C++封装POSIX线程
  • 生产者-消费者问题,互斥锁,条件变量,线程
  • 线程池封装
  • 并发服务器模型详解,socket编程
  • TCP协议,同步/异步,阻塞/非阻塞
  • IO复用模型,网络IO模型
  • Reactor模式、Proactor模式特点
  • 网络库TcpServer框架实现
  • Linux下timerfd/eventfd封装
第四阶段(C++项目开发)
Week6
项目一:文本纠错
  • 使用IO流创建词典和索引文件
  • 将线程池与网络库结合起来搭建服务器框架
  • 根据业务逻辑响应客户端的请求
  • 为了提高程序的查询效率,实现缓存系统
  • 使用分词库cppjieba处理中文
Week7
项目二: 基于RSS的内容定制化搜索引擎
  • 搜索引擎概述
  • 使用开源库log4cpp处理日志
  • 基于RSS文件建立网页库,网页偏移库
  • 采用TF-IDF算法建立倒排索引库
  • 采用余弦相似度算法对网页进行排序
  • 根据查询词自动生成文档摘要
  • 将计算结果打包成JSON数据报返回给客户端
最后(就业及面试)
Week1(2天)
  • 就业指导
  • (常见面试题讲解,面试准备,简历制作,简历修改,面试辅导等)
全部评论
什么意思
点赞 回复 分享
发布于 2021-09-11 00:57

相关推荐

也不算完全0offer,感谢迪爷给我的点击就送,但base深圳+测试岗+可怜的薪资实在不想去就拒了。手上还有四五个流程,一面的二面的,面完没消息但不挂的,走完这些也不想再投了。十一月份把毕设题目的事情搞定以后就拿实习攒的几千块钱去好好玩一玩。回想大学这几年好像都没有好好体验过什么所谓大学生活。要么是在埋头赶学校的一些作业,要么是闲下来就臭打游戏。不喜欢社交也没交什么朋友,家里也没什么钱给到处玩,看着别人那多彩的生活都觉得离自己好遥远。从投第一个简历到现在也过了两个月,从九月份无尽的笔试但看不到面试到十月份面了十来家,越来越怀疑自己是否真的要在计算机这条路上走下去。我觉得我还算是喜欢计算机的,从...
大拿老师:以前有一个南大的计算机系研究生过来面我们公司的产品经理实习生 但是产品的能力非常差 我就问他说本硕都是计算机,做开发岗优势很强,你为啥要转产品岗? 他说的意思跟你的很像,就说他不像那些大牛,能够把技术钻的很深,然后听说产品经理要懂点技术,还喜欢沟通,所以就试了一下 我说你知道技术发展有两条路线吗?一条是专家路线,钻研技术;另一条是管理路线,到技术经理,技术总监,需要沟通,技术也不用特别深 然后他就自己主动的回去了,说这个才是我的方向 没必要想太多,更不要怀疑自己,大部分业务场景也不用你钻的太深,只是很多时候对工作的情况不理解而已
点赞 评论 收藏
分享
顺丰 开发岗 (n+1)×14
乐趣使然:犹豫一点都是对团子的不尊重😋
点赞 评论 收藏
分享
今天 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
3 8 评论
分享
牛客网
牛客企业服务