当前位置: 首页 > news >正文

漫谈我与C++

这可能是一个阳光不错的午后,你正在摸鱼,恰好看到了这篇文章,恰好你对同为技术人的我的经历比较好奇,这缘分想想就很美妙。

这篇文章我从高考完填报志愿开始,详细阐述了我与编程,与C++的故事,毫不客气地说,C++确实改变了我的人生轨迹。
文章中也会提到自己的一些感想和方法论,希望对你有用。

选择软件工程专业

初中看小说时,看到一本关于黑客的书,里面讲到了Dos攻击、漏洞、后门、肉鸡等等,觉得会计算机的人真的超级帅。

2016年高考完,我拿着填报志愿的书,看不懂,但我觉得赚钱更重要,考完后通宵在上网,百度诸如“学什么专业最赚钱”,搜到类似如下的回答:

在这里插入图片描述

当年我并不知道如何成为一名黑客或者红客,我只知道,他们都用到计算机,而很多回答都说软件工程毕业后很赚钱,所以我就挑专业来报考。

当年的我并不知道可以有计划的报考更好学校的差专业,再转专业以此来上一个更好的学校这件事,亦不知晓211的名头其实更重要,只是看到另一所学校分数够高可以免除两年学费,它的计算机排名还比211要高,就选择了非211。当年入学时我是专业第二,专业第一比我高五分,是调剂来的,只有我,是以远高于分数线的第一志愿报考的。

上面说了这么多,是想告诉你我大学后才逐渐明悟的道理:在做人生重大决定的时候,需要多了解、多问、多打听,不能一味的自以为。

但年少的自己大搞率是不理解也听不进去的吧,但可能这样也好,正是因为有少年的心气与足够的自信,才会有后来的种种。

当然,我在报考的大学里我收获了很多的帮助和肯定,我很喜欢我的大学,换一个环境,情况可能不会更好了!但这只能说明傻人有傻福,傻是真的傻!

C语言点滴入门

开学后,从刚脱贫的小县城到省大学,我第一次见到图书馆,在还没开始上课前,我迫不及待看完了赵岩老师的《C语言点滴》,书里面大白话比代码更多,很适合入门。后来上课,老师开始讲C语言时,我觉得如有神助,同学迷茫不会不理解的,我很自然的就接受了。

学高数也是如此,虽然看的不是大懂,但是我还是在每次上课前硬着头皮看完要讲的内容,实在不懂就看B站、百度等等,然后上课就感觉很轻松,不光自己能听懂,还能给别人讲。

后来我会开大课给不同专业的同级同学讲高数,讲二级C语言等,教室里偶尔也会人满为患,很多人叫我大神、学长、大佬,表面我很厉害,但幕后其实我是怕给他们讲得不好,都是提前默默啃书。

你也看出来了,大学给我的第一份礼物,就是在图书馆里顿悟了自学的法门。不管是参加算法比赛,还是自学C语言、C++、数据结构等等等等,都是如此的自学,找资料辅助理解,上课再听讲(说实话偶尔也不听)。当然,“备课”也让我学会了如何快速读完一本书,抓住重点等等衍生技能。

自学和快速获取知识的技能,对于软件行业来说实在是太重要了,在毕业后的这些年里,因为没有停止过学习,可以快速掌握新技能,我收获良多。

上述只是我的经历和方法,我想表达的是:大学最重要的技能是学会学习,学会不受干扰、有计划、有目标的自主学习。当然长期坚持的话这很难,但其实也有技巧,比如找圈子找氛围,比如硬着头皮让自己不得不这么做!

有问题上CSDN真的有用

在初学编程时,我会因为配出环境而开心,会因为写出第一行“Hello World”而雀跃,甚至会因为写出了错误条件导致死循环而觉得神奇。

在当时,解决问题最常用的就是CSDN,当年我们没有AI,没有这么好的问答条件,基本上遇到问题就是换不同的提问方式,在CSDN上找答案。那时候常常一个在如今看来很简单的问题,需要搜一上午甚至一天才能解决。

但解决完问题的那种爽感,特别是恰逢老师上课讲到又提问,而自己有理有据快速回答出来时候的爽感,让人逐渐爱上了编程。

你知道的。代码的世界里很纯粹,一分辛苦就有一分成长。

C语言到C++的痛苦转换到参加竞赛

在学完C语言之后,我报考了蓝桥杯,当时听到其他大佬说参加比赛要学习C++,学习STL,学习链表!
但刚学完C语言的我,真的很不喜欢C++的类!明明可以直接一个函数解决的问题,为什么一定要将这个函数封装到一个类里面,再声明一个类对象,再调用?这合理吗?这一点都不合理!

所以STL到比赛前我都还是没学太明白,想过放弃,最后用混子的心态去考试,靠着C语言比较扎实的基础,一切问题都是变量+循环+判断解决,后面的大题就根据数学知识找规律。最后靠数学拿到了省一国三,虽然我知道比赛水平没有那么高,但这确实给了我极大的鼓舞。也在后面让我有信心选择C++而非Java的工作!

再后来,工作后,当我拿到一份古董代码,看到里面超级多无厘头的全局变量,全局函数!我突然就觉得,相比于C语言!C++真是艺术品!

所以你看,很多事情有时候试一试嘛,不会有比不尝试更坏的结果了。
所以你看,人生某一阶段的认知,是会随着时间的改变而改变的。

大学里的奇遇

当年学校组织党员下宿舍,耿老师分到了我的宿舍,耿老师是清华的博士,我早有耳闻,觉得老师超级厉害,当时老师建了一个群,几个舍友和老师在群内,突然有一天老师在群里问他的同门早上6:30来学校分享,问我们要不要去听,就我起个大早去了。后来在耿老师的带领下,认识了厉害的C++学长,一起做一些耿老师的项目!在这个痛苦的过程中,我C++慢慢用的熟练起来了。后来还跟着老师发了论文。

还有,C++的入门离不开当时的C++老师,很幸运学校内教编程最好的老师是教C++的,更幸运的是他分到了我们班!,每次老师在台上细致入微、变换不同维度、不同角度、声情并茂、讲解书本内外的知识时,我都听得极认真,这也是唯一一门我喜欢坐在前排听的课程。

后来时常想到两位老师,如果说这就是如有神助,两位老师就是我大学里的神!

大四培训全是java,但我用C++找到了工作

20年大四校外培训+实践,恰逢那年疫情,培训是在家完成的,当时每天都是线上学java,最后还有课设要做!期间我主动找到了培训老师,说明我要自学C++,会用C++找工作。幸好大学时跟老师做过C++的项目,就算当时简历不会写瞎写,个人介绍不会说,C++很多知识点都不会,投简历很多还都是石沉大海!一切都是颤颤巍巍进行的,但还是找到了工作。

第一个offer是一家百人小公司,签了三方之后,CTO和我们开会说:“公司给你们配的都是台式机,性能很好,很贵,你们要珍惜,下班了也要多学一学。”

我当然跑了!我可以自己这么觉得,但假如领导也这么觉得,工作一定会很悲催!

后来确定了一家国企子公司,就定下来了,然后只身前往北京!

国企很好,但让人焦虑

国企很好,有自己的食堂,饭菜很好,上班时间也有活动有机会去看电影、参观博物馆。当时部门老大在卡点下班时经常和我说的一句话是:“你还不走呀”。

当时有一个带我的大佬姓谢,他有多厉害呢?我跟他描述完需求,他可以现场手搓出来抽象类以及他们的继承关系,并贴心的让代码可以运行。我真的第一次见识到C++的魅力,在此之前,写功能模块的我一直觉得,C++和C差不多!

工作虽然轻松,但人真的很焦虑,我刚出学校,对自己的未来很迷茫,职业发展一窍不通,技术也很是菜。所以后来离开了。

C#也不是不能做

后来去了另一家,从C++短暂的转到了C#,期间除了学习C#、html、css、js、websocket、html、blazor等等,C++的学习我也一直没落下,无意间还找到了侯捷老师的C++课程,看完之后,真的是相见恨晚!要是大学能学到侯老师的C++,毕业的时候,大厂一定是随我挑的!

虽然C#同样优美高效,但那种过度的封装,那种让人无法炫技的难受,让我不太喜欢C#。

要重构项目,设计模式熟悉了

在做C#的过程中,有幸主导了一个核心项目,主动做了重构,那段时间一直在看设计模式的黑皮书以及李建忠老师的设计模式,一开始看不懂,后来看懂了记不住,反反复复看了很多遍,边看边重构项目,项目做完,虽然设计模式很多还是没记住,但是我觉得我入门了。我知道了设计模式是什么,该怎么用,能怎么用。

又回到C++的工作

第二家有段时间效益不好,被裁员了,三周面试拿到了五个offer,都是C++,又顺理成章的回到了C++工作。

如今在工作中已经可以独立负责项目了,同时也一直在积极探索架构、重构、局部重构、AIGC、Devops、开源技术等等

下一个五年,架构师!

工作的前五年,我成功入门了架构师,在未来的五年里,我希望自己可以成为独当一面的架构师!

http://www.dtcms.com/a/604972.html

相关文章:

  • HarmonyOS 6.0 服务卡片实战:把「轻食刻」装进桌面,让轻断食一眼可控
  • 建设网站用什么技术网站的基本类型
  • 罗湖附近公司做网站建设哪家效益快阜阳微网站建设多少钱
  • C++-Qt-音视频-基础问题01
  • [Linux]学习笔记系列 -- [kernel]notifier
  • Blender学习笔记(0) -- 思维导图框架
  • 云手机 服务器网络安全
  • 服务器BMC开发视角:解析CPU管理的两大核心接口PECI与APML
  • Linux 服务器安装 dstat 监控插件
  • 与实验室服务器互相ping
  • C++ 二叉搜索树的模拟实现(key结构的非递归和key_value结构的非递归的实现)
  • dw制作简单网站如何推广新品
  • SUSE Linux Enterprise Server 15 SP4安装步骤
  • 红帽企业 Linux 9 启动过程详解:从按下电源到登录提示符
  • 合肥建设厅网站建设一个一般网站需要多少钱
  • 麻省理工学院未来研发更高温超导体打开了新路径
  • Android studio修改app 桌面logo和名称
  • 【MCU控制 初级手札】2.1 电学基础知识 【电学基础】
  • C#1113变量类型
  • RabbitMq消费消息遇到的坑
  • SAP FICO应付账款账龄分析表
  • Pinia Store 生命周期与状态持久性详解
  • 大数据时代时序数据库选型指南:为何Apache IoTDB是最优解
  • 做网站的一个专题在线上传图片生成链接
  • 图论专题(三):“可达性”的探索——DFS/BFS 勇闯「钥匙和房间」
  • 图论专题(一):Hello, Graph! 掌握“建图”与“遍历”的灵魂
  • 做彩票网站能挣到钱吗中国最好的购物平台
  • 南京做网站群的公司岳西县住房和城乡建设局网站
  • 前端高频面试题之Vue(高级篇)
  • 【附源码】告别静态密码!openHiTLS 开源一次性密码协议(HOTP/TOTP),推动动态认证普及