说实话,刚开始学 C 语言那会儿,我连“编译”和“运行”都分不清,课本上密密麻麻的代码像天书,编译器里不断的报错让我怀疑人生。一个月过去,虽然我还是菜鸟,但至少敢大声说一句话:我在学真东西,不是那种花里胡哨的玩具。
一、为什么偏偏是 C 语言
身边不是没有质疑的声音。有人问我:“现在谁还写 C 啊?Python 三行代码搞定的事,你写三十行?”我懒得争辩,因为一个月前的我也这么想。但现在我明白了一个道理:省事的东西,往往省掉的是你对真相的触碰。
C 语言没有那么多“魔法”。你写一行“int a = 10;”,内存里就真的划出一块地方,写上数字 10;你写一个指针,就是在跟内存地址面对面打交道。没有自动垃圾回收帮你擦屁股,没有封装好的函数帮你藏起细节。这种“裸奔”式编程让我第一次感觉到,计算机不是黑箱,它是透明的。
有人说 C 语言是“高级汇编”,我觉得这话说得太傲慢。C 语言有自己的脾气,有自己的哲学。它逼着你思考:变量存在哪里?数据怎么流动?函数调用时栈里发生了什么?这些问题在 Python 里根本不存在,因为有人替你做了决定。但问题是,替你做的决定,你永远不会懂。
二、通信工程这个专业,到底算不算弯路
我学的专业是通信工程,课表上排满了信号与系统、电磁场与电磁波、数字信号处理。身边人调侃我:“以后去修基站吧,写代码那是计算机系的事。”
我一开始也犯嘀咕。直到某天在 C 语言课上写链表,突然意识到:这不就是数据结构的底层实现吗?通信工程虽然名字里带“通信”,但底层逻辑全是数学和系统思维。信号怎么传输、噪声怎么过滤、协议怎么设计——这些跟后端开发里的网络编程、高并发处理,骨子里是同一套东西。
当然,我现在还没学到那么深。但至少有底气说,这个专业不是弯路,它只是换了一条更陡的上山路。计算机系的学生大一就开始刷算法题,我才刚开始正经学 C 语言,进度确实慢了。但慢不代表错,只要方向对,每一步都算数。
三、那些让我崩溃的瞬间,现在回头看都是礼物
学 C 语言不可能不踩坑,我踩过的坑,说出来能写一本错题集。
第一次遇到段错误(Segmentation Fault),我盯着屏幕半小时,最后发现是数组越界。那种挫败感,就像你明明按了门铃,门却从后面塌了。后来学指针,更是噩梦级别。`*p` 和 `&p` 到底什么意思?为什么指针的指针还要加星号?我一度怀疑自己智商有问题。
但奇妙的是,当你终于搞懂的那一刻,那种快感是真实的。不是刷短视频那种转瞬即逝的多巴胺,是“我征服了一个硬骨头”的踏实感。现在我写指针不再手抖,虽然还会出错,但至少知道该往哪排查。这种从混沌到清晰的过程,大概就是学习的本质。
四、为什么想往后端走
说实话,我对于未来的工作方向不是特别明确。但我有一个大致的了解:后端的工作比前端更难被取代,而且目前前端几乎饱和了。当然,这句话只是我目前观察各种企业招聘岗后的一点感受。
这个判断可能很粗糙,甚至可能完全错误。但现阶段的我,需要一个锚点。后端开发吸引我的地方,不是“写接口、调数据库”这些表面工作,而是它离系统的核心逻辑更近。前端面对的是用户界面,后端面对的是数据流转、业务规则、系统架构。我想做的,是那种能看懂底层、能排查疑难杂症、能自己造工具的工程师,而不是只会用框架拼积木的“调包侠”。
当然,这只是我现在的想法。一个月后、一年后,我可能会变。但至少当下,这个方向让我有动力继续啃下去。
五、给同样在起步的人:别怕慢,怕的是假努力
我见过太多“假努力”的人,有一些人买了一堆书,收藏了几十个视频,可是真正看完的没几个,有些人把代码抄了一遍又一遍,关掉编辑器就忘光,有些人把自己的笔记做得花里胡哨,可是最终自己的脑子里还是一片空白,更有甚者竟然将学编程理解成为文科,去背代码,这真的是不可理解。
我承认我与这些人有很多相似之处,可是我后来逼自己养成一个习惯:每学学习一个新的概念,必须要去写代码验证一下,学指针?写十个指针相关的程序,直到报错报到麻木;学数组?自己实现一遍排序算法,哪怕是最笨的冒泡排序;学函数?把递归的每一步打印出来,盯着看想象每一步的变化,虽然其中很多问题是 AI 帮我解答的,但是我确实从“写代码——报错——改代码——正常运行”这个流程中获得了不少的经验,造成类似的错误频率明显降低了。
六、学习一段时间后的感悟
一个月前,我对着“Hello World”发呆,一个月后,我能独立写一些逻辑简单的小游戏,虽然代码没有什么含金量,但至少能跑。
通信工程是我的专业标签,但标签撕掉之后,我想让别人记住的是我的代码能力。C 语言是我的起点,绝不是终点。后端开发这条路,我刚把鞋带系好,连起跑线都没站上。
但有什么关系呢?方向对了,慢一点也是前进。

539

被折叠的 条评论
为什么被折叠?



