C/C++如何快速学习?少走3年弯路

news2024/11/24 14:19:35

于我而言,最开始学习就是 C++,除了计算机专业,其他专业可能学习的第一门编程语言为 C 语言,还是谭浩强爷爷那本,当时想着有点 C 基础,无外乎就是 C 语言的升级版,于是开启了 C++ 的路程。

语言这个东西,可能过后你会发现,它真就一工具,你如果想做个爬虫或者数据分析,那多半会选择 Python,无论是接口还是开源社区都非常的完善,如果想做一个快速迭代的 CRUD 项目,也可以选择 Python 的 Django 框架或者 Java的框架快速完成开发,如果是内核驱动,那老老实实的用大哥 C,如果玩儿数据库,搜索引擎就整 C++,如果是分布式或者 Devops那一套,自然就是 Golang,有轮子直接上手就好,先保证完成任务,其次是优化。

不过在找工作的时候,不同的岗位确实有一个大家公认的语言,比如测试开发,多半就会涉及到 Python 的知识点考察, 毕竟需要一些自动化的开发工作,如果是服务端开发,多半就会涉及到 Linux 的知识点。

研究生期间,实验室很严格,几乎没有实习的时间,专硕,导师的项目又比较紧凑,就只能挤出时间去准备,所以如果大家是非科班的,也不要担心,时间一定是可以挤出来,静下心去积累,结果不会差。

大厂到底喜欢问啥

计算机基础,包含计算机组成原理,操作系统,计算机网络,数据库,设计模式,算法与数据结构。那么最容易被刷掉的就是算法,每一年的招聘中,简历去掉一部分,算法还要去掉一部分。

我当时复习的时候,边学算法导论边抄代码,后面要找工作的时候采取Leetcode 练习,加上剑指 Offer 的复习,几乎三轮左右。

不管你是什么技术栈,都是需要稳扎稳打的,大厂=基础+算法+项目。如果有拿得出手的项目,而且能把项目的背景,目的,干什么的,都能表述的非常清楚了,那可能距离 offer 更进一步。这些每个环节都不能疏漏,进大厂就需要培养自己的大局观,大厂思想,你就是牛逼,别人不会的你就会,你就有机会拿下 offer。

就业方向

既然要选定方向,就需要先了解学了这个方向以后可能从事什么岗位,自己喜欢或更加适合哪些岗位。

选择 C/C++ 的同学需要酌情考虑这个问题,它的门槛比 Python,Java 的路线高一些。不过道理是一样的,技术毕竟都相通,Java,Python工作岗位机会多,学的人也多一些,竞争自然也就大。

国内大厂如阿里,腾讯,头条,百度,京东等都有招聘 C/C++ 的岗位,其核心搜索,腾讯的底层架构等机会都是 C++ 写的,所以没必要担心找不到工作,薪资也是杠杠的。

越接近底层机器,其效率越高,各有各的优势,想深入了解计算机系统,选择 C/C++最好不过。有些同学这个月学 C++ 的路线,下个月学 Java 的路线,这是兵家大忌,不管走哪个路线,一定要沉稳,稳扎稳打。学习的过程是枯燥无味的,学习的苦痛是暂时的,未学到的痛苦则是终生的。

那一般都有哪些方向呢?

服务器方向、网络安全方向、音视频/流媒体/SDK、嵌入式方向、测试开发工程师、游戏引擎开发工程师、数据库开发工程师、客户端/桌面开发工程师、网络传输协议优化工程师、Linux 内核开发工程师、存储开发等

这里以服务器开发方向为例,服务器方向包含Linux服务器开发工程师,Linux后端/后台开发工程师。下面我们看看腾讯对于服务端开发工程师而言的基本要求(其它方向可以到各到招聘网站查看岗位要求)。

再来看后面还有一句话是,对 Python/shell 等脚本有一定的了解,如果对分布式系统,负载均衡等知识能有了解则可加分。

关于这一块内容更加强调后端知识的运用,在学校期间基本上是没法涉及的,需要实习或自己学习其他的资源来弥补对这方面知识的空缺。

下面分享一个c/c++后台开发/服务器开发的学习路线(摘自零声教育课程大纲,直接对标腾讯T8技术栈)

以下试听内容

2024年c/c++程序员如何提升自己的核心竞争力?这套linux c/c++后端服务器开发技术教程不要错过!icon-default.png?t=N7T8https://www.bilibili.com/video/BV1CF4m1L7hU/

直播地址:Linux C/C++后台开发/服务器开发成长体系教程试听地址

完整学习路线

1、精进基石专栏

1.1 数据结构与算法

1.2 设计模式

1.3 C++新特性

1.4 linux工程管理

2、高性能网络设计专栏

2.1 网络编程 异步网络库zvnet

2.2 网络原理

2.3 自研框架:协程框架NtyCo的实现

GitHub - wangbojing/NtyCo: 纯c版本的协程实现,汇编切换,调度器实现,包含服务器端案例,客户端并发测试案例

2.4 自研框架:基于dpdk的网户态协议栈的实现

GitHub - wangbojing/NtyTcp: 单线程用户态TCP/IP协议栈,epoll实现,包含服务器案例,并发测试案例

2.5 高性能异步io机制

3、基础组件设计专栏

3.1 池式组件

3.2 高性能组件

3.3 开源组件

4、中间件开发专栏

4.1 redis

4.2 mysql

4.3 kafka

4.4 微服务之间通信基石gRPC

4.5 nginx

5、开源框架专栏

5.1 游戏服务器框架skynet

5.2 分布式API网关

5.3 SPDK助力mysql数据落盘,让性能腾飞

5.4 高性能计算CUDA

5.5 并行计算与异步网络引擎workflow

5.6 物联网通信协议mqtt的实现框架mosquitto

5.7 ZeroMQ

6、云原生专栏

6.1 Docker

6.2 kubernetes

7、性能分析专栏

7.1 性能与测试工具

7.2 观测技术bpf与ebpf

7.3 内核源码机制

8、分布式架构专栏

8.1 分布式数据库

8.2 分布式文件系统

8.3 分布式协同

8.4 分布式监控prometheus

9、上线项目实战

9.1 kdvstore实现

添加图片注释,不超过 140 字(可选)

9.2 图床共享云存储(零声图床mediahub)

添加图片注释,不超过 140 字(可选)

9.3 微服务即时通讯项目(零声教育即时通讯项目-首页)

9.4 零声教学AI助手(零声教学AI助手(公测))

9.5 魔兽世界后端TrinityCore(C++ 游戏后端开发课程-首页)

以上就是c/c++后台开发/服务器开发全套系统学习课程内容,需要系统学习请扫码添加贝贝老师VX:baby602878196(备注123)领取专属大额优惠券。

适宜的工程师人群(共分为8大群体)

  • 1.从事业务开发多年,对底层原理理解不够深入的在职工程师

  • 2.从事嵌入式方向开发,想转入互联网开发的在职工程师

  • 3. 从事Qt/MFC等桌面开发的,薪资多年涨幅不大的在职工程师

  • 4.从事非开发岗位(算法岗,运维岗,测试岗),想转后台开发岗位的在职工程师

  • 5.工作中技术没有挑战,工作中接触不到新技术的在职工程师

  • 6.自己研究学习速度较慢,不能系统构建知识体系的开发人员

  • 7.了解很多技术名词,但是深入细问又不理解的工程师

  • 8.计算机相关专业想进入大厂的在校生(本科及以上学历,有c/c++基础)

配套书籍资料

  • 1. MySQL: 《高性能MySQL 第3版》

  • 2. Nginx: 《深入理解Nginx: 模块开发与架构分析(第2版)》(陶辉)

  • 3. Redis: Redis设计与实现 (黄健宏)

  • 4. Linux内核: 《深入理解Linux内核架构》 (郭旭 译)

  • 5. 数据结构与算法:《算法导论》(第3版)

  • 6.性能分析:《性能之巅洞悉系统、企业与云计算》

  • 7. MongoDB: 《MongoDB权威指南》

  • 8. Ceph: 《Ceph分布式存储学习指南》 (Ceph中国社区)

  • 9. Docker: 《Docker容器 与容器云(第2版)》

  • 10. TCP/IP: 《Tcp/Ip详解卷一卷二卷三》

  • 11. Linux系统编程: 《Unix环境高级编程》

  • 12. 计算机: 《深入理解计算机系统》

  • 13. DPDK: 《深入浅出DPDK》

  • 14. k8s: 《Kubernates权威指南》 龚正等编著

  • 15. bpf: 《BPF之巅洞悉Linux系统和应用性能》

学习成果检验

  • 腾讯offer比例15%

  • 知名企业offer比例73%

  • 最高offer腾讯T3.1(现T9)年薪65w

  • 最高年薪涨幅30W

  • 最快跳槽学习时间1个半月

如果是想在c/c++开发方向得到有效的快速提升(不是所谓的速成),这份学习体系是大家绕不过的具有参考意义的提升路线。从学习路线中可以对c/c++开发方向的技术栈有一个清晰的认识。

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

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

相关文章

归档模式下,物理删除数据文件的完全的恢复

归档模式下,物理删除数据文件的完全的恢复 1、实验环境 环境归档模式 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /arch/archivelog Oldest online log seq…

【STL】stack与queue的底层原理及其实现

文章目录 stack的介绍库中stack的使用栈的模拟实现queue的介绍库中queue的使用queue的模拟实现 stack的介绍 (图片来自知乎) 1.stack是一种容器适配器,模拟了栈的数据结构。数据只能从一端进去,另一端出来(先进后出&am…

需求分析及设计定义

背景 经过不断的折腾,一切过程都是为了呈现输出,这个阶段就是要交付需求和方案的环节了,很多失败的项目就是上来就到这个环节,倒着捣鼓,先写个文档,做个原型,甚至提出方案,然后再和…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

【Node】Node的配置文件的使用,dotenv框架的使用

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:Node.js 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇…

CodeMirror使用: 编写一个在线编辑HTML、JS、CSS文件,网页的模板页面-初实现

前言:前几天编写一个UI模板控制的功能,根据上传的前端模板更换跳转入口主题页面;在编写的时候,突发奇想能不能在列表页面进行在线编辑刚刚上传的模板zip压缩包里的页面...于是经过学习研究有了这篇文章;当日记本一样记…

鸿蒙开发面向对象的面试题~

鸿蒙开发面向对象的面试题是近年来在软件开发领域中备受关注的话题。作为一种新兴的操作系统,鸿蒙系统的开发者需要具备扎实的面向对象编程知识和丰富的开发经验。在面试中,面试官常常会通过一系列的问题来考察面试者对于鸿蒙开发面向对象的理解和应用能…

LeetCode 289.生命游戏————2024 春招冲刺百题计划

根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 &am…

python-可视化篇-turtle-画爱心

文章目录 原效果替换关键字5为8,看看效果改下颜色 原效果 import turtle as tt.color(red,pink) t.begin_fill() t.width(5) t.left(135) t.fd(100) t.right(180) t.circle(50,-180) t.left(90) t.circle(50,-180) t.right(180) t.fd(100) t.pu() t.goto(50,-30) t…

[ritsec CTF 2024] 密码部分

这个比较密码这块还是比较简单的,经过问了N人以后终于完成。 [Warm Up] Words 给了个猪圈密码的图片,这东西好久不见的感觉。 [Warm Up] Emails MTP似乎也没多好的方法,猜更快,先给了几封email然后一个用MTP长度是32&#xff08…

因为使用ArrayList.removeAll(List list)导致的机器重启

背景 先说一下背景,博主所在的业务组有一个核心系统,需要同步两个不同数据源给过来的数据到redis中,但是每次同步之前需要过滤掉一部分数据,只存储剩下的数据。每次同步的数据与需要过滤掉的数据量级大概在0-100w的数据不等。 由…

MYSQL 8.0版本修改用户密码(知道登录密码)和Sqlyog错误码2058一案

今天准备使用sqlyog连接一下我Linux上面的mysql数据库,然后就报如下错误 有一个简单的办法就是修改密码为password就完事!然后我就开始查找如何修改密码! 如果是需要解决Sqlyog错误码2058的话,执行以下命令,但是注意root对应host是不是loca…

python的下载及安装

python的下载及安装 1,https://www.python.org 百度直接搜索python官网 2, 3,选择路径下载后,双击你下载的那个电脑图标应用程序 4. 1)勾选Add Python 3.6 to PATH是把Python的安装路径添加到系统环境变量的Path变…

关于Ansible模块 ④

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后,继续学习ansible常用模块之…

蓝桥杯-阿坤老师的魔方挑战

图示: 代码: #include <iostream> using namespace std; int main() {int N,i,j,row,col,sum,max0;cin>>N;int ar[N][N];for(i0;i<N;i){for(j0;j<N;j){cin>>ar[i][j];}//输入矩阵 }for(i0;i<N;i){row0;coli;sum0;//重新初始化while(row<N){if(c…

Go 实战|使用 Wails 构建轻量级的桌面应用:仿微信登录界面 Demo

概述 本文探讨 Wails 框架的使用&#xff0c;从搭建环境到开发&#xff0c;再到最终的构建打包&#xff0c;本项目源码 GitHub 地址&#xff1a;https://github.com/mazeyqian/go-run-wechat-demo 前言 Wails 是一个跨平台桌面应用开发框架&#xff0c;他允许开发者利用 Go …

数据库 06-02 并发控制(锁,死锁,多粒度)

01 02. 互斥访问数据 分成两种&#xff1a; 事务控制器的作用 共享锁之间可以相容&#xff0c;但是任何一个共享锁和每一种排他锁都是互斥的 申请共享锁的命令和申请排他锁命令 如果存在排他锁&#xff0c;必须等待 只要对一个数据项&#xff0c;有读写方法&#xff…

OpenHarmony南向开发实例:【智能甲醛检测机】

样例简介 本项目是基于BearPi套件开发的智能甲醛检测系统Demo&#xff0c;该设备硬件部分主要由小熊派单板套件和和甲醛检测传感器组成。智能甲醛检测系统可以通过云和手机建立连接&#xff0c;可以在手机上设置甲醛浓度阈值&#xff0c;传感器感知到的甲醛浓度超过阈值之后&a…

202458读书笔记|《风来自你的方向》——我每次见你时的百米冲刺,加起来就是一生的长跑

《风来自你的方向》隔花人著 大绵羊BOBO绘&#xff0c;狗狗&#x1f436;绘本&#xff0c;这是看的第3本书。上俩本是《我是你的小狗 狗狗心事绘本》&#xff0c;《我是你的小狗2 当我有了你》。 同样的简短文字小狗&#x1f436;漫画&#xff0c;有爱的主人&#xff0c;有趣…

ssm033单位人事管理系统+jsp

单位人事管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本单位人事管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…