看完《C++ primer》后,我都收获了什么?

2023-05-16

文章目录

    • 1 - 语言只是一个工具
    • 2 - 光学会一门语言还不够
    • 3 - 结语

​ 迫于读研和未来就业的压力,我研一上自学了C++的这门语言,自我感觉比较认真的看完了《C++ primer》这本书的大部分章节,算是系统性的过了一遍C++这门语言。期间,结合自己本科时学习汇编和C语言的经历,我想谈一谈我对学习编程的一些想法,希望能够对屏幕前的你有一些启发

1 - 语言只是一个工具

​ 无论是计算机科班生,或者是非科班生,在最开始接触编程的时候,脑海里总是会思考我应该学习什么语言好。我当初也是有过这样一段经历:

​ 大一工科选修了一门C语言,上课完全听不懂老师在讲什么,期末考试前花了一周多时间对付了考试,算是蒙混过关,至此算是和C语言结下了梁子,什么二维数组啊,指针啊,文件读取,结构体等等,一概把我欺负得死死的。

​ 18年大二的一个寒假,偶然间接触到了Python,那时候大家可劲儿的把Python吹上天了,利用空闲时间也是去尝试学习了Python,刚开始学习的时候感觉挺新鲜的,不需要在每行代码后打冒号,丰富的插件和库。但我不是计算机学院的,虽然我跟着一个公众号,把基础的Python语法学习了一遍,甚至用pygame跟着做了个飞机大战,蛮有成就感的,但是这背后的这个东西是什么,有什么用,我并没有思考清楚,只是迷迷糊糊地学了一门语言的基础语法。

​ 大三的时候又开始不务正业的玩上了arduino,学习arduino的时候,是跟着一些网上的资源做的,但是碰上一些比较复杂的程序,我一是不明白别人的程序组成,二是不明白开发板背后的基本原理。因此又跑去学了一段时间的51单片机,学习单片机的过程还是挺有趣的。那时我在MOOC上跟着北京交通大学的一个老师学,他用的是汇编语言,于是乎我也是跟着用汇编语言。在使用汇编语言编写单片机代码的时候,对代码的理解更加深刻了,虽然已经好几年没有碰过单片机了,但是那些指令:MOV AX, LOOP AGAIN等至今还是历历在目。

本科期间对编程的不痛不痒式学习,导致我并没有在计算机方面有更深的了解以及掌握。相反,折腾来折腾去,我始终没能入得了编程这个门,还处于纠结学习什么语言更好的一个层面上

​ 而现在,我读了传统工科的硕士,这学期有一门课叫做《计算方法》,该课程有一个上机报告,需要学生用习惯的编程语言完成实验报告。我硕士最开始想做“机器视觉”,我进校后就开始了自己的C++自学之路。首先是在B站上观看了黑马的C++视频,看了一段时间后买了书《C++ primer》。书看了前四章,我为了检验自己的C++学习水平,就开始尝试着使用C++进行上机报告程序的编写。我记得很清楚,第一个题的程序我花了很多的时间,从给函数传递数组作形参、到使用vector取代数组、再到计算数据量太大,在堆区new了一个二维数组。然而,不得不说,当人有了一个具体的目标,学习速度真的会更快一些。在之后,由于后面的题目涉及到 f ( x ) f(x) f(x)曲线图形的绘制,我又自己去搜索如何让C++像Python的一样绘图,尝试了easyx,pltplot等插件都不太好使后,我开始思考:是否应该使用Python进行程序的编写?

不要再纠结语言选择了。哪一门语言更加适合你目前的工作要求或者使用起来更加顺手,就使用哪一种的语言

​ 于是乎,为了让我的实验报告更加好看,我又在我的电脑装上Python,重新用Python编译整个程序。因为有了C++的基础,我花了不到一天,我就编写好了一个Python程序,能够解决我所需要解决的问题。也正是从那个时候开始,我自己切身体会到了语言只是一门工具,哪个工具更合适。

​ 而如今,当我看完了《C++ primer》的大部分章节后,我更是认同这句话的重要性。无论你是因为什么原因去学习一门计算机语言,哪一门语言最能解决你的问题,你就去选择哪一门语言。在我现在看来,编程语言就好比一个中介,一个让我们和计算机交流和沟通的传话人,我们需要使唤计算机帮我们解决生活中的问题,但是我们无法直接和计算机沟通,我们只能依赖于一门或者多门编程语言和计算机进行交流。而不同语言之间的差别,其实只是在交流的方式上存在着差别,就好比是你习惯面对面交流还是书信交流,或者是电话交流。

2 - 光学会一门语言还不够

​ 如果你对计算机方面有更多的追求,希望自己能够使用编程技术帮助自己在校期间赢得一些比赛、或者通过编程做一些有意思的东西以及通过编程技术在IT公司找到一份高薪工作。那么,仅仅掌握一门语言,是远不能够完成上面的目标的。

​ 就拿我举个例子吧,我现在跟了一个方向不喜欢的导师,不打算毕业从事硕士期间的研究方向的相关工作,我自己计划自学编程,跨行去互联网企业谋一份高薪工作,在我看完《C++ primer》后,我下一步的学习计划如下:

  • 数据结构与算法
    • 数据结构和算法是计算机学科中非常重要的一门课程,俗称编程四大件之一,也是一个优秀程序员的必修素养之一。如果你们希望未来能够利用计算机做更多更厉害的东西,数据结构和算法是绕不开的。
  • 计算机系统原理相关知识
  • 计算机网络相关内容

如果你希望在C++上掌握的更加精通,那么在《C++ primer》的基础上,还需要继续阅读《Effective C++》,《STL 源码剖析》、《more Effective C++》等书籍。毕竟,C++作为一门最为复杂的语言之一,想要“熟练”掌握,不多读几本书,多写写代码是不可能做到的。

3 - 结语

​ 好了,以上就是我本人在看完《C++ primer》后一些收获和感悟,希望能够帮助到阅读我文章的你。如果你对文中某些内容有什么不解或者文中有什么讲得不对,欢迎在下面进行评论哦!

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

看完《C++ primer》后,我都收获了什么? 的相关文章

  • C++ Primer学习-第15章 面向对象编程

    15 1 面向对象编程 xff1a 概述 在C 43 43 中 xff0c 基类必须指出希望派生类重新定义那些函数 xff0c 定义为virtual的函数是基类期待派生类重新定义的 xff0c 基类希望派生类继承的函数不能定义为学虚函数 1
  • C++ Primer笔记——排列算法(next_permutation、prev_permutation、is_permutation)

    目录 概述 next permutation prev permutation is permutation 概述 页数 xff1a P778 xff08 A 2 7 排列算法 xff09 头文件 xff1a lt algorithm gt
  • c++ primer和c++ primer plus的区别

    c 43 43 primer和c 43 43 primer plus的区别 xff0c 我自己是先买的c 43 43 primer https www php cn faq 439403 html https zhidao baidu co
  • STL----------C++Primer(笔记)

    1 string string word cin gt gt word getline cin word 关系操作符 lt lt 61 gt gt 61 include lt cctype gt 头文件 string s 61 34 Hel
  • 《C++ Primer》一书极不适合我国“国情”

    客气地说 xff0c C 43 43 Primer 不适合大学C 43 43 基础课堂教学 xff0c 也不适合初学者入门 不客气地说 xff0c 恐怕你们的大学老师也搞不定 C 43 43 Primer xff0c 更别说拿这本书教学生了
  • C++ Primer Plus拾遗

    本博文整理了C 43 43 Primer Plus前六章中的部分知识点 xff0c 一般为不常用的小技巧或基础概念性的内容 C与C 43 43 的语言特性 C语言特性 结构化编程 xff08 Structured Programming x
  • C++简介( C++ Primer Plus)

    C 43 43 历史 xff1a 1980年 xff0c 贝尔实验室的 Bjarne Stroustrup 本贾尼 斯特劳斯 开始对C进行改进和扩充 1983年正式命名为C 43 43 支持3钟不同的程序设计 过程化程序设计 数据 43 算
  • C++ Primer学习-第15章 面向对象编程

    15 1 面向对象编程 xff1a 概述 在C 43 43 中 xff0c 基类必须指出希望派生类重新定义那些函数 xff0c 定义为virtual的函数是基类期待派生类重新定义的 xff0c 基类希望派生类继承的函数不能定义为学虚函数 1
  • C++抽象基类与虚基类(C++ primer)

    c 43 43 primer plus P508 xff0c 抽象基类 c 43 43 primer plus P556 xff0c 虚基类 抽象基类 xff08 abstract base class xff0c ABC xff09 抽象
  • 看完《C++ primer》后,我都收获了什么?

    文章目录 1 语言只是一个工具2 光学会一门语言还不够3 结语 迫于读研和未来就业的压力 xff0c 我研一上自学了C 43 43 的这门语言 xff0c 自我感觉比较认真的看完了 C 43 43 primer 这本书的大部分章节 xff0
  • C++ Primer Plus (Fifth Edition)pdf

    下载地址 xff1a 网盘下载 本书是久负盛名的C 43 43 经典教程 xff0c 其内容是C 43 43 大师Stanley B Lippman丰富的实践经验和C 43 43 标准委员会原负责人Jos e Lajoie对C 43 43
  • C++Primer 非常适合入门

    C 43 43 Primer 非常适合入门 就像题目所说的那样 xff1a C 43 43 Primer 非常适合入门 这是事实 xff01 xff01
  • 让xpdf支持中文(C++primer中文版)

    首先到http www linuxfans org nuke modules php name 61 Site Downloads amp op 61 geninfo amp did 61 2385下载一个打了补丁的xpdf 安装 xff0
  • 学C语言推荐的书和软件—C Primer Plus和Dev C++

    写这个的目的是复习巩固C Primer Plus的知识 xff0c 我会一直更新这个系列 对于这本书 xff0c 入门C语言是完全够了 xff0c 后面的链表 队列和二叉树比较综合 xff0c 难度大一些 用这本书学C语言非常好 xff0c
  • C Primer Plus

    C Primer Plus作为一本被人推崇备至的c入门经典 xff0c C primer plus绝非浪得虚名 应该算得上C教材里最好的入门书了 在知识广度上 xff0c 很少有书能匹及 它能为你系统学习c提供一个良好的平台 作者对c的见解
  • C++ primer plus

    https github com lilinxiong cppPrimerPlus six https github com lilinxiong cppPrimerPlus six 最近在看C 43 43 primer plus这本书 x
  • c++ primer和plus有什么区别_VC++、C++、C和TC有什么区别?

    VC 43 43 C 43 43 C和TC xff0c 这几个语言名中都带有C xff0c 可以说和C都有联系 1C C就是指C语言 C语言的关键字少 xff0c 而且拥有丰富的运算符和数据类型 xff0c 可以解决大部分的 计算型 的问题
  • C++ Primer (暂时完结)

    C 43 43 Primer C 43 43 预备知识泛型编程第二章 开始学习C 43 43 2 1 3 C 43 43 预处理器 和iostream 文件名称空间第二章 输出输入endl控制符换行符规范的书写格式c 43 43 源码风格
  • C++Primer Plus第6版&C Primer Plus第6版 中文版免费分享啦

    最近在学习C 43 43 xff0c 用的资料是师兄分享的经典书籍 C 43 43 Primer Plus第6版中文版 的PDF xff0c 自带书签 xff0c 使用很方便 但师兄说这个是他在网上花了积分才下载下来的 xff0c 这让我很
  • C++Primer第五版 习题答案 第十八章 用于大型程序的工具(Tools for Large Programs)

    练习18 1 在下列 throw 语句中异常对象的类型是什么 a range error r error throw r b exception p r throw p a range error b exception throw p 此

随机推荐

  • ROS学习【10】-----搭建Gazebo机器人物理仿真环境并展示空环境中的机器人

    ROS学习 搭建Gazebo机器人物理仿真环境并展示空环境中的机器人模型目录 一 运行Gazebo 查看是否能够正常打开程序1 新建一个终端 xff0c 运行Gazebo仿真软件2 应对Gazebo程序闪退的方法 二 搭建Gazebo机器人
  • 问题解决-----ROS中Gazebo学习的问题解决合集(初次运行黑屏、运行launch文件后闪退、黑屏;gazebo联合rviz出现process has died等的解决办法)

    问题解决 ROS中gazebo环境搭建学习的问题解决合集目录 一 初次运行Gazebo出现黑屏1 问题描述 xff1a 2 问题原因3 解决方法 二 编译gazebo的功能包出现编译错误1 问题描述2 问题原因3 解决方法 三 运行laun
  • TCP传输大文件(图片、文档)

    遇到TCP传输大文件问题 xff0c 主要是 xff08 1 xff09 传输快 xff0c 但拼接成的大文件数据错 xff08 2 xff09 加校验 xff0c 传输变慢 xff08 3 xff09 接收包数跟发送包数不对应 费了一段时
  • ROS学习【14】-----利用ROS中的导航框架(move_base,amcl),实现基于gazebo仿真机器人的自主导航

    64 TOC 上次的ROS学习 xff0c 我们通过SLAM框架下的gmapping及hector slam实现了手动控制我们Gzebo仿真机器人进行地图的规划 xff0c 并保存了相应的地图 xff0c 那么如何让自己人按照我们规划的路线
  • 抛出异常的简单处理

    span class token keyword function span span class token function func span span class token punctuation span span class
  • 进程切换过程

    在每个进程都有一个进程控制块 xff08 PCB xff09 进程主要分为 创建状态 xff0c 就绪状态 xff0c 运行状态 xff0c 阻塞状态 xff0c 结束态 PCB控制块是以链表方式存放 xff0c 就绪进程的PCB放置在同一
  • 第七篇(上),LQR工程化总结

    目录 一 引言 二 LQR 2 1 LQR的理解与实现 2 1 1 模型设计与实现 2 1 2 LQR工程实现步骤 2 2 参考资料 2 2 1 基础理论与模型的推导 2 2 2 Refer to Apollo 2 2 3 其它实例参考 2
  • STM32工程创建的快速方法

    1 Project gt New Project 2 打开新创建的工程的所在目录 xff0c 删除掉目录中的两个文件夹 xff0c 新创建4个文件夹 xff0c 分别是 xff1a USER CODE OBJ STM32F10 xFWLib
  • Ubuntu18.04下ROS的安装教程、rosdep init问题亲测解决方案

    一 确定自己的Ubuntu版本号 xff0c 并且安装正确的ros版本 lsb release a 查看ubuntu版本 二 更新源 sudo sh c 39 etc lsb release amp amp echo 34 deb http
  • MySQL相关面试题总结

    1 解释一下单列索引和联合索引 单列索引是指在表的某一列上创建索引 联合索引是在多个列上联合创建索引 单列索引可以出现在where条件的任何位置 而联合索引需要按照一定的顺序来写 在多条件查询的时候 联合索引的效率更高 我们联合索引也最多创
  • 修改firefox浏览器滚动条的样式

    最近做了一个网站的项目 xff0c 使用原生的滚动条 ie和谷歌都显示的好好的 xff0c 火狐的滚动条样式没有生效 原因 xff1a 火狐浏览器没有提供原生滚动条的方法和属性 后来浏览器升级之后提供了部分可以修改样式的属性 属性较多 xf
  • jetson nx ssd镜像克隆

    1 打开disk查看要克隆的ssd名称 2卸载ssd 制作镜像 sudo umount dev sdb1 sudo s sudo dd if 61 dev sdb1 conv 61 sync noerror bs 61 64k gzip c
  • Android 关于IPV6 DNS的问题

    目前在测试IPV6 DNS解析的时候发现一个问题 xff0c 这里记录一下 问题是 xff1a 当dhcpv6服务器分配的IPV6 dns是fe80类型的dns时 xff0c 无法发送dns请求 xff0c 抓包看不到有目标地址为fe80
  • PX4开发环境搭建

    PX4开发环境搭建 编译工具链的安装vscode 编译工具链的安装 下载ubuntu sh requirements txt wget https raw githubusercontent com PX4 Firmware master
  • TFmini在nora+(px4)上的使用和验证

    目标 xff1a 使用tfmini完成定高实验 设置 xff1a 1 sens tfmini cfg 设置为telem2 xff08 可修改为其他 xff0c 保证硬件连线一致 xff0c 1一般是无线数传所以没改过去 其他的对应在官网里有
  • ROS | Realsense中的IMU解算orientation

    文章目录 概述 一 定义介绍 二 操作教程 一 下载并编译imu tools功能包 1 创建工作空间并初始化 2 下载imu tools并编译 二 修改配置 1 修改imu tools源码 2 修改launch文件 3 启动解算 概述 本文
  • prometheus服务监控之mysql监控

    文章目录 上传解压安装mysqld exporter安装mariadb在数据库里创建mysql账号用户收集数据在mysql exporter中设置mysql配置信息启动mysql exporter配置prometheus拉取mysql节点信
  • HTTP请求头Authorization

    今天部署了一个Authorization项目 xff0c 由于改了auth服务器客户端id和密码 xff0c 而前端请求header没有修改 xff0c 登录时一直弹框要求输入用户名和密码 xff0c 输入后却无效 xff0c 只好改前端代
  • c语言编程规范第三部分

    3 头文件应向稳定的方向包含 头文件的包含关系是一种依赖 xff0c 一般来说 xff0c 应当让不稳定的模块依赖稳定的模块 xff0c 从而当不稳定的模块发生变化时 xff0c 不会影响 xff08 编译 xff09 稳定的模块 就我们的
  • 看完《C++ primer》后,我都收获了什么?

    文章目录 1 语言只是一个工具2 光学会一门语言还不够3 结语 迫于读研和未来就业的压力 xff0c 我研一上自学了C 43 43 的这门语言 xff0c 自我感觉比较认真的看完了 C 43 43 primer 这本书的大部分章节 xff0