LinuxC/C++学习路线

目录

  • C++优劣势
  • 适配行业
    • 目标岗位(c/c++和一门golang)
    • 35岁
    • C/C++语言

C++优劣势

C++劣势在于他不是做业务开发的
不能与golang、python、java这种gc语言相比
用C++来写业务,如果没处理好,会使得整个进程退出
而使用java这些语言,很难把整个写崩溃
C++适合写基础架构,C++的后端并不是做业务开发。拿C++与Java相比本身就是耍流氓的行为。而C++就适合一直做技术,但是java这些不得不面临必须得去理解业务。

适配行业

量化、安全、高性能、CDN、游戏服务、自动驾驶(一辆车上的N多个sensor的通信)、基础架构、虚拟化、网络开发、存储、推荐算法、流媒体服务器、金融业务

目标岗位(c/c++和一门golang)

量化:C/C++,PYTHON
安全:
高性能计算:(gpu、网络)
cdn:
游戏服务:
自动驾驶:
基础架构:
虚拟化:
dpdk网络开发:
(不区分c/c++,语言只是工具)
存储:
(越往上走越靠近gc,越往底层越靠近c/c++)
流媒体服务:
推荐算法:
嵌入式:
桌面开发:(适合毕业前几年)

35岁

找一个垂直领域(网络开发、存储),qt开发做十年,包括业务开发做十年,只懂业务,不懂底层。

C/C++语言

1、数据结构/算法:哈希、红黑树、列表链表、B树B加树
2、设计模式:单例、策略、观察者、工厂模式、迭代器模式、过滤器模式
3、标准库:STL、C++新特性
(写的C式的C++,用上新的东西反而成为一种负担,要以解决问题为目的)
Linux工程管理:makefile/cmake、git/svn、htop/top、netstat、tcpdump(tcp抓包)、iperf

每一家公司代码框架都会一样,可能业务不同,但是底层的东西相近。学的时候不要倾向于某一个框架。要当做计算机素养去学
网络:网络编程(select、poll、epoll)(多线程多进程)(阻塞非阻塞)(同步异步)(业务、实现网络框架(且不能仅仅停留在框架上,))、网络原理(eth、ip、udp/tcp、http、实现tcp协议栈(自己实现的对代码理解是不一样的))

能够有积累的(业务、C/C++设计的风格、计算机素养)。换一个公司底层设计开发是不一样的

4、基础组件:内存池、线程池、数据库连接池、请求池、原子操作、ringbuffer、无锁队列、定时器方案、死锁检测、内存泄露、日志、网络块、共享内存、probuf

做C和C++的一定要有造轮子的能力,轮子:软件设计的固定模式,如果有20-30个轮子,水平不会太差,看很多源码,就很相似,会有本能知道要怎么做。

5、中间件:mysql、redis、nginx、grpc、mq(消息队列)
(mysql这些自己本身就是一个进程),慢慢形成自己的技术栈。不要以工作的要求耽误自己对技术的追求,工作肯定以业务为主
6、框架(适配行业):比如游戏开发skynet、从前面内容再去看待框架就很好理解、openresty(cdn/waf)、dpdk(网络)、spdk(存储)、cuda(gpu)、workflow(网络编程范式)。而这些需要以前面为基础,很多代码内容也都是似曾相识
7、devops:运维和部署、docker、k8s。站在整个产品上看开发。
8、性能分析:kernel(磁盘、网络、内存、内核)、分析问题的时候就取决于计算机素养,本身对计算机的理解。bpf/ebpf、火焰图、中间件、gtest(测试用例)
9、分布式:分布式数据库TiDB、分布式文件系统ceph、分布式协同etcd

技术能力:随着年限开发,能不能进这家公司看开发能力,在这家公司走的多远取决于软实力。在没有开发能力,开发能力不扎实时,软实力就没用。所以基本功扎实,软实力也很重要(组织能力、沟通能力、管理能力)。软实力需要多看(历史、哲学、人物传记、小说),运气只是时间的问题。考虑整个职业

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19275.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot汽车世界:资讯与技术的交汇

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

算法--“找零方案”问题

def main():d [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0] # 存储各种硬币的面值d_num [] # 存储每种硬币的数量total_money 0 # 收银员拥有的总金额# 输入每种硬币的数量temp input(请输入每种零钱的数量(以空格分隔):)d_num0 temp.split() # 以空…

【UGUI】Unity 背包系统实现02:道具信息提示与显示

在游戏开发中,背包系统是一个常见的功能模块,用于管理玩家拾取的物品。本文将详细介绍如何在 Unity 中实现一个简单的背包系统,包括道具信息的提示和显示功能。我们将通过代码和场景搭建来逐步实现这一功能。 1. 功能需求清单 在实现背包系…

java基础概念31:常见API-Runtime

一、Runtime类常用方法 Runtime:表示当前虚拟机JVM的运行环境,只能有一个。 【注意】: 获取Runtime对象,只能通过getRuntime静态方法。 好处:不管在哪个类中调用Runtime方法,获取的都是同一个对象。即&…

SpringBoot 之整合gRPC

父工程中引入基本的依赖&#xff1a; <modules><module>api</module><module>client</module><module>service</module></modules><parent><artifactId>spring-boot-starter-parent</artifactId><group…

高性能linux服务器运维实战 运维深入实践

用户权限管理 用户与用户组 用户与角色分类 用户是根据角色定义的。可分三类用户角色&#xff0c;root用户&#xff0c;普通用户&#xff0c;虚拟用户 虚拟用户实际不存在&#xff0c;只是为了方便管理&#xff0c;满足进程或文件的属主需求 用户和组配置文件 /etc/passw…

景联文科技:以全面数据处理服务推动AI创新与产业智能化转型

数据标注公司在人工智能领域扮演着重要角色&#xff0c;通过提供高质量的数据标注服务&#xff0c;帮助企业和组织训练和优化机器学习模型。从需求分析到数据交付&#xff0c;每一个步骤都需要严格把控&#xff0c;确保数据的质量和安全性。 景联文科技是一家专业的数据采集与标…

上市公司企业研发操纵数据集(2008-2023年)

一、数据介绍&#xff1a;参考《财会月刊》苑泽明&#xff08;2020&#xff09;老师的做法&#xff0c;具体模型如下所示&#xff0c;TA 为总资产&#xff1b;RD 为研发支出&#xff1b;MV 为企业市值取对数&#xff1b;TBQ 为企业托宾 Q值&#xff1b;INT 为营业利润&#xff…

Maven的下载安装及配置

一、下载Maven 1、访问Maven官网&#xff1a; 打开浏览器&#xff0c;访问Maven的官方网站&#xff1a;Download Apache Maven – Maven 2、选择Maven版本&#xff1a; 在下载页面上&#xff0c;选择适合您操作系统的Maven版本。通常&#xff0c;Maven提供二进制zip归档和tar…

ISCTF 2024 web

ISCTF 2024 web 小蓝鲨的冒险 源码&#xff1a; <?php error_reporting(0); highlight_file(__FILE__); $a "isctf2024"; $b $_GET["b"]; parse_str($b); echo "小蓝鲨开始闯关&#xff0c;你能帮助他拿到flag吗?<br>"; if ($a…

Loopy为何成为IP联名新顶流,如何赋能品牌营销新高度?

在当今竞争激烈的市场环境中&#xff0c;跨界合作已成为品牌营销的重要策略之一。一个成功的跨界合作案例&#xff0c;便是Loopy IP与多个品牌的深度合作。这只来自韩国动画片《小企鹅Pororo》中的配角&#xff0c;凭借一套打工人表情包在中国社交网络迅速走红&#xff0c;并逐…

Mendix 创客访谈录|Mendix 助力西门子原生数字化工厂精益高效

本期创客 向宇轩 西门子数控&#xff08;南京&#xff09;有限公司 数字化工程师 大家好&#xff0c;我是向宇轩。专业背景是计算机科学与技术&#xff0c;毕业后加入西门子数控&#xff08;南京&#xff09;有限公司&#xff08;SNC&#xff09;担任数字化工程师的职务&#x…

C++ —— string类(上)

目录 string的介绍 string类功能的使用介绍 constructor —— 构造 介绍使用&#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;4&#xff09; &#xff1a;构造、拷贝构造、带参构造 介绍&#xff08;3&#xff09;&#xff1a;拷贝string类对象的一部分字符…

关于Qt C++中connect的几种写法

目录 1. 传统的槽函数写法 2. 使用函数指针的connect写法&#xff08;5.0&#xff09; 3. Lambda表达式作为槽函数&#xff08;C11&#xff09; 4.使用QOverload选择重载信号的写法 这connect函数就像是编程世界里的“茴”字&#xff0c;千变万化&#xff0c;各有千秋。咱们…

(二)PyTorch简要教学

文章目录 PyTorch教学一、训练一个神经网络二、用PyTorch是怎么去做的&#xff08;一&#xff09;Dataset & DataLoader&#xff08;二&#xff09;Tensors&#xff08;1&#xff09;Tensor是什么&#xff08;2&#xff09;怎么获得Tensor&#xff08;3&#xff09;Tensor相…

GRPC实现

1.首先下载对应编译插件&#xff0c;这里不再提供下载 2.编写proto文件 3.编写完成用命令生成go文件 protoc --go_out. --go-grpc_out. *.proto --go_out. 其中的. 是说你要编译的 .proto 文件目录为当前目录&#xff0c;按需修改 --go-grpc_out.&#xff0c;其中的. 是说你生…

Path does not exist: file:/D:/pythonProject/spark/main/datas/input/u.data

出现标题中的错误原因可能是&#xff1a; 1.文件路径书写错误&#xff1b; 2.文件本身不存在。 从图中可以看出&#xff0c;数据源文件是存在的&#xff0c;但是读取不到文件&#xff0c;说明代码中的文件路径写错了&#xff0c;从报错的结果可以看出&#xff0c;python在D:/…

Wallpaper壁纸制作学习记录01

导入图像 打开wallpaper软件&#xff0c;找到下方的播放列表&#xff0c;选择壁纸编辑器。 弹出下列界面&#xff0c;在创建壁纸处可以选择图片拖入。 在开始导入任何图像之前&#xff0c;请首先确保主背景图像表示实际屏幕分辨率。展示示例图像是 1920 x 1080&#xff0c;这…

【知识科普】统一身份认证CAS

什么是CAS 综合概述一、CAS概述二、CAS的组成与工作原理三、CAS的特性与支持四、CAS的应用场景 示例展示场景设定CAS认证过程 其他认证细节CAS认证过程的细节CAS认证过程的特性 参考文献 综合概述 统一身份认证CAS&#xff08;Central Authentication Service&#xff09;&…

计算机网络-MSTP工作原理

前面大致学习了MSTP基础概念与组成&#xff0c;今天来了解MSTP的工作原理。 一、MSTP拓扑计算&#xff1a; MSTP可以将整个二层网络划分为多个MST域&#xff0c;各个域之间通过计算生成CST&#xff0c;域内生成IST&#xff0c;CST和IST构成了整个交换设备网络的CIST。 域内还可…