C++程序员入门怎么学?

1 背景

经常听到不少朋友在吐槽C++太难学了,说什么从入门到放弃等等;做为一名C++老兵,从2003年开始入坑C++到今年2023年,整整20年的C++开发从业者的我,今天尝试给有兴趣从事C++开发的程序员提些建议,希望可以帮到大家,免的像N多年前我一样,走了太多的弯路。

本文章假定读者是完全没有学过任何C++语法基础的,比如某些大学生、甚至高中生,或者是做过一二年其他开发语言的程序员,了解过一些开发的概念,比如变量、函数、编译、执行等等。

所以如果读者您是一个开发方面的高手,请直接忽略本文章的内容,因为本篇文章的核心目标就是【C++程序员入门怎么学?】,是讲C++、以及如何快速入门的。

2 C++程序员需要达到什么水平才算入门?

需要怎么入门,那需要回答一个问题:C++程序员需要达到什么水平,或者需要学习哪些基本的知识才算入门?

我个人认为,只要你达到以下水平,即可算入门,可以开始参加C++开发相关工作,并参与到不同的项目中:

  • 会搭建C++开发环境,比如VS2019,或者QT;并学会IDE开发工具的基本使用,包括编译、执行、调试、新建类、新建文件等:
  • 熟悉基本的C++语法和概念;比如各种数据类型、变量、常量、指针、函数、数组、struct结构、class类等;还有if、for、switch、while语句和各种C++运算符等等;
  • 最后会一些标准类库的使用:如std::string(字符串)、std::ifstream/std::ofstream(文件读写)、std::vector(动态数组)、std::list(双向链接)、std::map(关联容器)等

3 怎么学?

知道要学习哪些知识点之后,接下来是如何学?

个人建议是到网上找一些简单但带实战例子的课程,或者视频,跟着导师一个个实例写完代码,编译、执行、调试;其实C++学习真心不难,只要方法正确,二三个月完全可以入门,入门之后再根据项目需要有针对性学习对应知识点即可;

关于C++入门课程,这里做个小广告,大家有兴趣的可以点击这个链接:C++程序员必修第一课【C++基础课程】,跟着这个课程一起学习。

4 入门之后的学习路径

很多人【从入门到放弃】就是因为C++入门之后,不知道怎么提升,感觉会写C++代码了,但不知道能做什么?怎么开始?或者怎么去学习?

下面我列几项在当你完全入门之后,应该学习的方向,大家有针对性跟着学习即可,有兴趣的,可以关注本博客,后面我会持续出一系列C++、QT、QML、MFC等相关的培训课程,希望可以帮到大家。

入门后的学习方向:

  • 如果做GUI界面开发;可以学习下QT、QML或者MFC,QT/QML是跨平台的,MFC只能在Windows上跑;
  • 如果用到多线程;学习下std::thread和std::mutex的使用即可;
  • 网络通讯相关的,包括TCP、UDP;如果是VS开发环境,需要调用windows api,是WinSock2.h相关的函数;如果是QT开发环境,学习使用QTcpServer、QTcpSocket等类的使用;另外还有开源跨平台的方案如 boost.asio 等;
  • 数据交互需要用到各种协议;所以需要学会各种xml、json这二种最基本最通用的协议,这些都标准库没有直接使用的类库,需要找开源类使用
  • 如果你做一些信息管理系统的,就是一些增、删、改、查的,会用到数据库的,那就需要学习一下关系型数据库的基本概念,还有SQL结构化查询语言;可以从sqlite、mysql这些开源数据库入门;更多的还有很多类似key-value的NoSQL,在互联网公司会用到很多;
  • 一些C++高级用法,有时间可以慢慢学;比如智能指针、模板编程、lambda表达式等等;
  • 如果要成为C++高手,大学的数据结构与算法需要找时间学习一下,一些类似集合、数组、链接、关联数组等概念要熟悉,这样在实际使用中,就可以知道什么场景需要什么样的类库;

更多学习内容就实在太多了,看你公司业务需求和项目需要;总结一句话,基本都是学习各种开源库的的编译、调用、调参而已;大家有选择重点选择某个方向发力即可,不可能什么都学会;例如ffmpeg音视频编解码相关、opencv视觉算法相关等等。

最后做个总结,只要方法正确,二三个月零基础到C++程序入门是完全没有问题的!

好了,以上就是C++程序员入门怎么学的所有内容,希望大家早日入坑C++开发行业!

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

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

相关文章

C++ (Chapter 1)

C (一) 1.C的命名空间 先来看一个C语言的例子: 下面这段代码是可以正常运行的. #include<stdio.h> int rand 0; int main() {printf("%d \n", rand);return 0; }但是,包含了一个头文件之后,甚至无法通过编译. #include<stdio.h> #include<stdli…

力扣每日一题35:搜索插入的位置

题目描述&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5…

大数据Doris(八):启动FE步骤

文章目录 启动FE步骤 一、配置环境变量 二、​​​​​​​创建doris-mate

排序算法-插入排序法(InsertSort)

排序算法-插入排序法&#xff08;InsertSort&#xff09; 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较&#xff0c;先将前两个元素排序好&#xff0c;再将第三个元素插入适当的位置&#xff0c;也就是说这三个元素仍然是已排序好的&#xff0c;接着将第…

剖析伦敦银最新价格走势图

国际金融市场瞬息万变&#xff0c;伦敦银的价格走势会受到诸多因素的影响&#xff0c;比如重要经济数据的公布&#xff0c;国际间的政治博弈&#xff0c;突发的政经大事&#xff0c;都可以令白银价格的走势&#xff0c;在短时间内暴涨暴跌的情况。 要在伦敦银市场实现良好的收益…

Linux文件目录总结

众所周知&#xff0c;Linux系统文件目录是树状结构&#xff0c;如下图所示&#xff1a; 英文缩写的目录下到底存放的是什么文件&#xff0c;善于做归纳总结的逍遥哥哥来解释一下&#xff1a; /bin&#xff1a;bin是Binary的缩写&#xff0c;这个目录存放着最经常使用的命令。 …

oracle 数据库删除序列

oracle 数据库删除序列 要删除 Oracle 数据库中的序列&#xff0c;你可以使用以下的 SQL 命令&#xff1a; DROP SEQUENCE sequence_name;其中&#xff0c;sequence_name 是你想删除的序列的名称。你需要确保当前用户对序列拥有适当的权限。 请注意&#xff0c;删除序列将永…

NEFU离散数学实验1-排列组合

相关概念 在离散数学中&#xff0c;组合数是一种用于计算从n个不同元素中选取m个元素的方式。以下是一些与组合数相关的概念&#xff1a; 排列&#xff1a;从n个不同元素中选取m个元素进行排列&#xff0c;排列数用P(n, m)表示&#xff0c;计算公式为P(n, m) n! / (n - m)! …

nodejs+vue家教管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1nodejs简介 4 2.2 express框架介绍 6 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性…

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…

【网络安全】如何保护IP地址?

使用防火墙是保护IP地址的一个重要手段。防火墙可以监控和过滤网络流量&#xff0c;并阻止未经授权的访问。一家网络安全公司的研究显示&#xff0c;超过80%的企业已经部署了防火墙来保护他们的网络和IP地址。 除了防火墙&#xff0c;定期更新操作系统和应用程序也是保护IP地址…

学信息系统项目管理师第4版系列24_整合管理

1. PMBOK 1.1. 自1987年以来&#xff0c;PMBOK-直是基于过程的项目管理标准的重要代表 1.1.1. 基于过程的方法是项目管理的基石 1.2. 从2021年开始&#xff0c;第7版PMBOK采用了基于原则的标准&#xff0c;其中包含了 12个项目管理基本原则&#xff0c;这些基本原则为有效的…

Python数据攻略-递归方式实现json多层级数据展平

之前介绍过使用pandas如何展平json的多层数据,如果有兴趣可以参考文章 Python数据攻略-Pandas的json_normalize方法 Python数据攻略-递归方式实现json多层级数据展平 今天再介绍一个非常好用的使用递归的方式展平json数据。 文章目录 数据处理目标操作示例核心函数方法操作…

硬件基本功--过流、过压保护电路

1.简介 过流保护(OCP)&#xff1a;当电路电流超过预定最大值时&#xff0c;使保护装置动作的一种保护方式。不允许超过预定最大值电流&#xff0c;不然会烧坏电路的器件。过压保护(OVP)&#xff1a;被保护电路电压超过预定的最大值时&#xff0c;使电源断开或使受控设备电压降低…

AAPT2简介

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、使用介绍3.3 编译3.2 链接3.3 dump…

ChatGPT AIGC 高效办公自动化案例

根据业务员姓名查找对应月份的科目成绩。 我们让ChatGPT AIGC来完成Excel公式。 Prompt:有一个表格A列为姓名,B列为语文,C列为数学,请根据J2单元格的姓名 ,查找出对应的数学成绩,请写出函数来完成 将生成的vlookup函数公式=VLOOKUP(J2, A:C, 3, FALSE)复制到表格中进行验…

Linux文件目录结构详解:根目录和常见子目录介绍

文章目录 引言1. 什么是Linux文件目录结构2. Linux文件系统的重要性 根目录&#xff08;/&#xff09;2.1 根目录的作用和特点2.2 根目录下常见目录的介绍 /bin 目录3.1 /bin 目录的作用和内容3.2 常见的可执行命令示例 /etc 目录4.1 /etc 目录的作用和内容4.2 配置文件的存放位…

Windows11下清理Docker Desktop与wsl的C盘空间占用

一、清理Docker Desktop的磁盘占用 //【查看docker 占用的空间】 docker system dfTYPE 列出了docker 使用磁盘的 4 种类型&#xff1a; Images&#xff1a;所有镜像占用的空间&#xff0c;包括拉取下来的镜像&#xff0c;和本地构建的。Containers&#xff1a;运行的容器占用…

整理mongodb文档:副本集成员可以为偶数

个人博客 整理mongodb文档:副本集成员可以为偶数 想了下&#xff0c;仲裁节点还是不想直接说太多&#xff0c;怕有的同学想太多&#xff0c;且本身副本集就偏向运维的&#xff0c;新手基本也没什么权限操作&#xff0c;就不多废话了。 文章概叙 文章从MongoDB是否可以用偶数…

【计算机网络笔记】计算机网络的结构

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 文章目录 系列文章目录网络边缘接入网络数字用户线路 (DSL)电缆网络典型家庭网络的接入机构&#xff08;企业&#xff09;接入网络 (Ethernet)无线接入网络 网络核心Internet结构最后 计算机网络的结构…