分享

C语言与我从数据结构到开发复杂度的思考

 山峰云绕 2023-04-21 发布于贵州

https://m.toutiao.com/is/DhFQRtb/?= 


我最初接触C语言是因为学校的课程安排。在掌握C的基本语法后,我开始学习数据结构。开始时,我只是在做一些看起来像“数学题”的任务,例如实现链表、平衡树、排序和一些算法等。虽然这个过程很枯燥,但是对我产生了非常大的影响。在学完数据结构课程后,我对编程的认识变得更加深入了。我意识到编程实际上就是在控制抽象出来的数据,并通过代码逻辑来实现需求。这也印证了Nicklaus Wirth曾经提出的“算法+数据结构=程序”的观点,我很高兴自己没有偏离这个方向。

在我看来,C语言抽象了二进制,这使我们的大脑中的“数据”概念得以映射到电脑中。即便是同样的数值,我们也可以用更好理解的char来表示它们。此外,struct这样的自定义数据集合也是为了方便我们理解,从而帮助我们避免被零散的内存所困扰。我们可以专注于C衍生出的抽象概念,而不必陷入琐碎的内存管理。此外,function也为我们提供了更方便的逻辑展开方式。只要我们将现实需求抽象成“数据和逻辑”,就可以将其映射到电脑上,变成软件。虽然C语言本身看起来很整洁,但是松散的数据表达和粗犷的回收机制使我度过了许多艰辛的时光,不仅要处理代码Bug,还要应对生理期带来的不适。后来,我转向了C++,因为它有更好的语法糖和特性,还可以学习OOP。这让我的生活有所改善,并且我也学会了偷懒,如果有现成的轮子,就可以直接使用,这在实际项目开发过程中,比学习数据结构课程要容易得多。

我的C语言开发经历让我在学习OOP设计模式时变得自恋,傲娇地认为,“这些我都玩过了,不用你教我!”后来,我开始接触Java和Python,特别是Python,这种语言改善了我的生活质量


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多