c/c++linux后台服务器开发如何提升?(路线图已备好)

2023-11-03

随着业务市场的不断壮大,更便捷的开发语言也越来越受到市场的欢迎。Java,python还有新贵golang。
那c/c++语言的开发者市场在哪里。虽然说没有活干说的可能过于夸张,但是面临的事实就是比不了。可能初学一点Java,python等等就能找到一份不错的开发工作,但是如果你只会一点c,又不是校招的话,能找到哪些工作呢?

C,c++不同于Java。Java的技术路线是比较固定的,学好技术栈等待新技术的更新,并学会它,那在薪资上至少不会少。
而c/c++的话,不得不说,路子比较广。选择的方向比较多,这里就不一一说明,只讲Linux后台服务器开发。个人看来,它是市场相比于单片机/嵌入式/音视频等方面的说的话,还是更大一些的。

这里会从几个模块分享(资料的话自行下载)

源码分析

1.常用的数据结构
2.常用的设计模式
3.Nginx
4.ZeroMQ

数据结构与算法的重要性的话不言而喻。
新老结合:《数据结构与算法分析》+《啊哈!算法》
链接:https://pan.baidu.com/s/1EHFdvfvR6C3t0nQn9Z8cQQ 密码:nrni

Nginx
主要是掌握
1.nginx基础架构
2.http架构
3.进程间的通信机制
4.nginx高级数据结构
5.slab共享内存
6.upstream机制设计

电子书:《精通nginx》,《nginx开发从入门到精通》,《深入剖析nginx》
链接:https://pan.baidu.com/s/1dzp0EfrhWeRjLObavP1r2w 密码:3ejg

视频:
nginx源码-线程池的实现
链接:https://pan.baidu.com/s/1GFcfdlK1fcg1E6PW9q3mLQ 密码:eo8o
手把手实现nginx模块开发
链接:https://pan.baidu.com/s/1d3O9-6CRbI-K5fW39_9JsA 密码:cpoc

ZeroMQ
1.消息模型
2.通行协议
3.性能分析与经典mq对比
4.底层网络通信实现机制
5.系统架构与实现原理
电子书:《zeromq教程》
链接:https://pan.baidu.com/s/12Le05HyW2gESnCDQMPBWxw 密码:bcxl
视频:《zero down-time更新服务程序》
链接:https://pan.baidu.com/s/1VG3t3apQctbBzjvZuOgl2A 密码:8i3c

sdk开发

要有造轮子的能力,也要有不造轮子的觉悟,sdk是高级开发必须要有的封装能力。

高性能组件
1.如何设计内存池
2.高并发场景下的消息队列
3.协程框架的实现
4.手写线程池
5.异步请求池
6.链接池

高并发网络IO
1.select,poll和epoll模型的区别
2.Linux系统IO模型
3.理解Linux服务器高并发编程
4.网络接入层架构设计

网络协议栈
1.tcp/udp/ip/eth
2.多线程实现高并发
3.滑动窗口
4.延迟确认
5.定时重传
6.流量控制
7.tcp握手挥手
电子书:《sdk开发手册》
链接:https://pan.baidu.com/s/1IE9MLCBWQsDci9f5VNKDsw 密码:7nqh
视频:《深入剖析tcp/ip协议栈》+《epoll实战揭秘》
链接:https://pan.baidu.com/s/1hTwcaFjxoynFW8xZUMQhgA 密码:2err

集群

必须要有的产品技能

1.mysql集群
2.redis集群
3.fastdfs集群
4.nginx集群
5.mongoDB集群
6.zookeeper集群

电子书:《Linux系统案例精解》,《高可用Linux集群实现》,《阿里Hadoop集群架构及服务体系》,《mysql集群》
链接:https://pan.baidu.com/s/1qYmE8yLu3qHmWBb-8BVL9Q 密码:1zj9

Linux系统

Linux是每一个工程师都会讨论的话题

1.环境编程
2.系统运维
3.内核编程

电子书:《Linux入门教程》,《鸟哥的Linux私房菜》,《Linux内核设计与实现》,《深入分析Linux内核源代码》
链接:https://pan.baidu.com/s/1Qcm1QZEZyI8e9b3klRxZrg 密码:c9vh
视频:Linux入门教程系列,Linux内核教程系列
入门:https://ke.qq.com/course/444655?taid=3884084955105519&tuin=37cd5811
内核:https://ke.qq.com/course/431590?saleToken=1746506&from=pclink

性能优化

高手与菜鸟的分水岭

1.mysql调优
2.Linux调优
3.gcc调优

电子书:《高性能mysal》,《mysql数据库性能监控与诊断》,《mysql技术分享:一步到位实现mysql优化》
链接:https://pan.baidu.com/s/1pJNjzRG2U9GqsXpd80G1OQ 密码:rjke

视频:《服务器性能优化-异步的效率》
链接:https://pan.baidu.com/s/1TE-qTFcnvCkq5mNm7EFs3g 密码:mkzf

Git

1.git的工作原理
2.远程仓库
3.标签管理
4.分支管理冲突解决
5.GitHub与码云

电子书:《git版本控制管理》,《git权威指南》,《git入门到精通》
链接:https://pan.baidu.com/s/10SMPuGjj3oxV7OQXbtqCbA 密码:f3e3

视频:《git入门到精通》系列,最近会完结。
部分视频:链接:https://pan.baidu.com/s/1kuYnZNlMN4AjLlYVnY6RXQ 密码:csfr

分布式架构

互联网一线产品的技术架构,提升自我视野,全面提升技术的一步

电子书:《架构之美》,《易懂互联网技术架构及其发展》
链接:https://pan.baidu.com/s/117jVwPMh9Ww1QYGaYB32nA 密码:5dp2

视频:《0~100亿pv的网络接入层架构》
链接:https://pan.baidu.com/s/1eRqaYQmvJnalB2KXb_5qkg 密码:hitg

推荐和大家一起讨论交流Linux后台技术的聚集地
欢迎大家一起学习交流~
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c/c++linux后台服务器开发如何提升?(路线图已备好) 的相关文章

  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实

随机推荐

  • 03.1 使用普通表单向Spring控制器提交数据

    03 1 使用普通表单向Spring控制器提交数据 场景 由前台jsp网页 表单 向数据库中添加一条信息 前台jsp
  • IDEA的import类和pom文件头被标红,但可以正常编译打包(四种解决方案)

    IDEA的import类和pom文件头被标红 但可以正常编译打包 四种解决方案 问题背景 方案一 方案二 方案三 方案四 心得 Lyric 雨点从两旁划过 问题背景 昨晚回家没有关电脑 也没关IDEA 今早看IDEA的时候 居然莫名其妙出现
  • 写1清0与写0清零:单片机中断服务函数为什么要用写1清零中断标志位?

    前记 第一次使用risc的单片机 照着datasheet和demo边研究边写 因为之前使用51单片机基本都是照着demo CTRL C V 然后自己改改逻辑 这样一个项目也就差不多了 很多原理其实没搞太清楚 借着这个机会 好好补一补 原理搞
  • Maven安装教程

    一 下载安装包Maven Download Apache Mavenhttps maven apache org download cgi 二 配置maven环境 1 将压缩包放到自己想要存放的目录 2 复制Maven的根路径 注意不是bi
  • Raki的读paper小记:RWKV: Reinventing RNNs for the Transformer Era

    Abstract Introduction Related Work 研究任务 基础模型架构 已有方法和相关工作 RNN CNN Transformer 稀疏注意力 Beltagy等人 2020年 Kitaev等人 2020年 Guo等人
  • GLES3.0中文API-glGetProgramResourceName

    名称 glGetProgramResourceName 查询程序中已索引资源的名称 C 规范 void glGetProgramResourceName GLuint program GLenum programInterface GLui
  • 接口api 之Swagger 一次实战探索

    今天我们来说说什么是Swagger 就是把相关的信息存储在它定义的描述文件里面 yml或json格式 再通过维护这个描述文件可以去更新接口文档 以及生成各端代码 而Springfox swagger 则可以通过扫描代码去生成这个描述文件 好
  • 问题 E: [蓝桥杯2016初赛]交换瓶子

    题目描述 有N个瓶子 编号 1 N 放在架子上 比如有5个瓶子 2 1 3 5 4 要求每次拿起2个瓶子 交换它们的位置 经过若干次后 使得瓶子的序号为 1 2 3 4 5 对于这么简单的情况 显然 至少需要交换2次就可以复位 如果瓶子更多
  • STM32 基本定时器实验

    1 基本定时器简介 时钟源 时钟挂载在APB1总线下 中间有一个倍频器 sys stm32 clock init时钟已经设置APB1总线时钟频率为36M 预分频器分频系数为2 所以挂载在APB1总线的定时器时钟频率为72Mhz 图中对应的时
  • node mysql 连接 时区_Nodejs Date 保存到mysql中时区问题,处理方法

    nodejs中mysql用法 1 建立数据库连接 createConnection Object 方法 该方法接受一个对象作为参数 该对象有四个常用的属性host user password database 与php中链接数据库的参数相同
  • ArrayLIst、HashMap

    底层维护了一个Objec的数组 创建对象时 初始大小是0 第一次新增元素时扩容为10 再次扩容为1 5倍 扩容的时机是内部数组满了之后 再次add才会扩容 非线程安全 线程安全的Vector HashMap jdk7以前为数组 链表 搜索的
  • 数据结构知识点汇总

    1 用链表表示线性表的优点是 便于插入和删除操作 2 单链表中 增加头结点的目的是 方便运算的实现 3 栈和队列的共同特点是 只允许在端点处插入和删除元素 4 栈通常采用的两种存储结构是 线性存储结构和链表存储结构 5 队列具有 先进先出
  • Lamport 逻辑时钟

    分布式系统中按是否存在节点交互可分为三类事件 一类发生于节点内部 二是发送事件 三是接收事件 注意 以下文章中提及的时间戳如无特别说明 都指的是Lamport 逻辑时钟的时间戳 不是物理时钟的时间戳 如果a在进程Pi中 b在进程Pj中 Ci
  • 今日分享积累的5个AI绘画网站,好用且免费

    AI绘画即基于人工智能的绘画技术 让设计师能够以全新的方式创作出惊人的艺术作品 而随着AI绘画技术的发展 市面上也多了很多能免费使用的AI绘画网站 可以为我们提供更多的绘画灵感和创作可能性 接下来我将为大家推荐5个能免费使用的AI绘画网站
  • ngrok搭建服务器(超级详细)

    前言 我一直都在usr local文件下操作 有不懂的同学给我留言 我没有修改源码 只是测试能否生成服务端文件 有需要的同学可以修改源码 使用 ip 做域名时 随机生成的子域名导致地址错误解决办法就是改源码 去掉随机生成 在ngrok目录下
  • WAIC2023:图像内容安全黑科技助力可信AI发展

    目录 0 写在前面 1 AI图像篡改检测 2 生成式图像鉴别 2 1 主干特征提取通道 2 2 注意力模块 2 3 纹理增强模块 3 OCR对抗攻击 4 助力可信AI向善发展 总结 0 写在前面 2023世界人工智能大会 WAIC 已圆满结
  • python insert插入新一列

    mydata insert 1 date data 日期 mydata 原有数据 1 插入第几列 data 插入列名 data 日期 插入列内容 原有数据插入一列 mydata insert 1 date data 日期 mydata 原有
  • 快速构建Kubesphere 3.0并设置Kubesphere 多集群联邦

    这里我们Host选择使用单节点All in One安装模式 可以零配置快速部署 KubeSphere和Kubernetes 我们安装联邦集群需要有一台节点进行管理 Member需要在Kubernetes中安装Kubesphere当作Memb
  • 目标检测pytorch版yolov3五——解码过程和可视化以及predict预测过程

    本篇博客是我学习某位up在b站讲的pytorch版的yolov3后写的 那位up主的b站的传送门 https www bilibili com video BV1A7411976Z 他的博客的传送门 https blog csdn net
  • c/c++linux后台服务器开发如何提升?(路线图已备好)

    随着业务市场的不断壮大 更便捷的开发语言也越来越受到市场的欢迎 Java python还有新贵golang 那c c 语言的开发者市场在哪里 虽然说没有活干说的可能过于夸张 但是面临的事实就是比不了 可能初学一点Java python等等就