我在C编程方面的经验:今天重要吗?

我在C编程方面的经验:今天重要吗?
Nikhil MitraUnsplash拍摄的照片

细分错误ENGAGE!

C是所有语言的母亲,当今大多数编程语言都围绕C进行构建,甚至Linux(更具体地说是Unix OS)的基础都以C为中心,这意味着我是计算机科学专业的学生,​​现在专注于人工智能,我必须从一开始就学习C。 没有选择,我看到自己在课程的第一学期就学习了这种奇怪而复杂的语言,现在我将分享我的旅程以及如何接受SEGMENTATION FAULT错误。

我在C编程方面的经验:今天重要吗?
与大多数计算机语言不同,C允许程序员直接写入内存。 C语言中的关键结构(例如结构,指针和数组)旨在以有效的,与机器无关的方式来构造和操纵内存。”
维基书籍, C编程

我的第一步

我从头开始学习,因此我从阅读书籍开始,并在youtube视频的帮助下,我很快看到自己显示我的“ Hello World”消息。这种情况持续了一段时间,同时我还在快速学习条件和功能的基础知识。 ,与大多数编程语言相同。 但是,不久之后,我开始学习如何使用指针和Memory故事(这是C中的主要概念),就像被卡车撞到一样,我无法解决,似乎无法意识到它是怎么回事。都会工作。 此外,在此期间,我被分配去制作一个名为DOTS的PC游戏,其主要原理是根据难易程度统一DOTS以实现PC设定的某些目标。

到那时,我只能使用简单的功能,因此制作一个真正的游戏真的需要很多时间,因此我感到有些沮丧和紧张。

我的第一场比赛

我真的很努力,每次都想像一下如何处理每个行/函数中的存储,尽管这花了我很多时间,但它确实让我了解了C的基本概念。

在大约2周的时间里,我写了我的第一个游戏,它看起来像这样:

我在C编程方面的经验:今天重要吗?

即使不是很多,我还是为自己感到骄傲,我以为自己终于完全学会了C语言,直到老师给所有学生完成任务后才开始运行Valgrind(一种显示内存存储的工具)。某些程序中的错误),并且我大约有50次内存泄漏,这简而言之意味着,如果程序的内存设置/布局不同,则我的程序可能无法在教师的PC上运行。

经过多番思考, 我决定采用一种古老的策略 ,那就是关闭笔记本电脑,只是希望它能正常工作。 令我惊讶的是,它实际上奏效了,而我只是有些打折。

当SEGMENTATION FAULTS真正进入我的生活!

但是,我很快被分配了一项数据科学工作,该工作涉及在不到5秒的时间内组织1到200万行隐藏的各种类型的信息。 因此,我不会浪费任何时间,我了解了有关排序算法以及如何优化算法的所有知识,最终只使用了MergeSort版本,这在当时对我来说真的很难做到。

大约在这个时候,我真正与C程序员最好的朋友接触:分段错误错误,堆栈溢出和内存泄漏。 每个程序员都会对这些错误感到沮丧,尤其是在使用这种语言时,因为大多数功能都是通过内存连接的,因此实际上很难发现该错误,这是因为它只在每个功能中都显示一个错误。

我在C编程方面的经验:今天重要吗?
GATE Overflow的有趣笑话

但是,当我终于掌握了它的时候,我就开始第一次正确使用它,这对我来说意义非凡,因为我真的可以理解这个概念,实际上我必须了解计算机的工作方式以及工作方式。处理信息,我可以按计划观看它的工作。

最后的想法

总之,既然我学习了许多其他语言,我可以认真地告诉你, C在理解和开始使用其他语言方面给了我很大的帮助,不仅因为它们中的大多数在某些方面与C相似,我还可以想象一下每个功能如何在内存和存储方面发挥作用,这对数据科学真的很有帮助。 而且,尽管已经有几年了,但许多人仍然认为它是一种未来的语言,并且永远不会被使用。 例如, HackerRank在2018年最常用的语言中将C排名很高。

我在C编程方面的经验:今天重要吗?

另外, C确实帮助我学习了C ++ ,如上所述, C ++被认为是当今世界上最困难的语言之一,也是需求最大的语言之一。

我的建议是,您应该在某个时候学习C ,也许是在您像Python一样首先学习一种更简单的语言之后,因为C确实可以帮助您提高编程能力,并且将来对于C / C ++程序员总会有标记。

正如我通常会做的那样,我强烈建议您跟随这位可以为您提供帮助的作者,并撰写许多有关他们的经验的文章来开始编程:

大卫·斯莫克

大卫·文图里

昆西·拉森(Quincy Larson)

From: https://hackernoon.com/my-experience-with-c-programming-is-it-important-today-70ab9cdaaa05