分享

3为什么学了一个学期的c语言,感觉一直都是在用代码去做一些简单的数学题,没有什么实际用途?

 山峰云绕 2022-02-07




课堂上学到的c语言本身就是很简单的,在国内大学的c语言课堂上你很难学到真正做项目的能力,所以他们提出可以上手学习做一些c语言工程,我认为学习做项目的能力很重要,但是有些回答给的是做游戏,做窗体的项目,我倒不是很赞同。

国内大学普遍把c语言作为程序设计的入门课程,甚至我大一的时候那门课程的名字就不叫c语言,而是叫《程序设计基础》,其实意义很明白了:老师根本没指望你学完能用c语言做多么厉害的东西,他是希望你学会程序设计,而不只是c语言。至于做工程,其实c++,java都比c语言要好,除了底层计算机系统、嵌入式、物联网这些偏硬件的方向其他方向需要你用c语言做工程的方向其实少之又少,哪怕是嵌入式、物联网等方向写进单片机的程序其实也普遍比较简单,更需要补的是硬件知识和掌握各种API,而写底层系统你还要学的东西就实在是太多太多了。所以我依旧认为你把课堂上老师教你的内容学会了,入了编程的门就够了,更多高大上的复杂的东西你以后会发现普遍不是用c语言写的,你现在去学用c语言写窗体,写小游戏你以后会发现其实人家都在用Qt,c#,java这些,写的比你快还比你好,你学了也用处有限。

确实有余力可以选一门应用更广泛的语言继续学习,与c语言相互印证,或者想学习做项目的话,学一学单片机,自己做个呼吸灯,电子钟,温度显示器,指纹锁,收音机之类的,淘宝上买个可编程机器人与其他传感器组合实现一些自动寻迹,目标识别啥的功能,都很有意思,这才是目前c语言在工业界比较普遍的应用,写游戏写客户端写后台啥的早就是其他语言的主战场了,没必要空耗太多功夫。

先上结论,因为c语言只是最最基础的工具。c语言与编程的关系就像学会写汉字与写小说的关系,其实我觉得如果你以后的目标是自己开发出像微信、QQ、淘宝、抖音等等那种面向普通用户的大型程序的话,说c语言是拼音都不为过。

开始时候也觉得c语言天天就只是做一些没什么用的数学题很没意思,后来学习了其他语言和计算机相关知识后我发现其实学校教我们c语言的主要目的可能根本就不是叫我们用c语言开发出多么厉害的程序,而是以下这些目的:

①带你接触一种很多主流计算机语言都遵循的语法。

很多主流计算机语言(像c++,c#,java)都遵循了c语言的分号换行,大括号标记代码段,循环条件和if判断条件用小括号括起来,数组索引用中括号括起来等基础语法,以及特殊一些的js,Go,python也部分遵循了这些语法。这些习惯以后会伴随你敲的每一行代码,有的甚至老程序员了都会漏掉分号或者半边大括号,所以早点带你习惯这种语法是很重要的。

②带你接触编程常用概念。

c语言中的常量,变量,类,结构体,函数,循环,分枝判断等等都是大多数语言依旧在使用的概念,这些概念在程序中无处不在,在任何一门语言的学习中你都要先学习这些概念。

③带你熟悉程序员的思维方式。

举个最简单的例子,你在现实中如果要按照高挨个站队你会怎么做?这就是一个排序问题,程序员是怎么解决这个问题的?反正我学习了排序之后才意识到自己站队一般是用选择排序和插入排序的方法,而冒泡排序,归并排序,快速排序,堆排序等等算法其实应该是数学家或者程序员特有的考虑问题的方法,一般人很少接触到,还有递归和迭代,是最典型的数学家或者程序员的思维方式:把一个问题简化成我解决过的问题,不断简化下去得到最终的解。这种思维方式将会伴随你一生,哪怕你不做程序员了也会用得到。

④带你初步认识计算机的工作原理。

c语言是最贴近计算机底层的高级语言,特别是c语言中最令初学者困惑的指针和内存分配直接揭示了程序在计算机中的运行过程,其实你以后学到c++和计算机组成原理、汇编语言的时候就会更进一步理解为什么c语言里是那么设计的,熟练的c语言程序员看到一行代码就能知道执行完这行代码在内存里发生了什么,这在以后任何语言的debug中都是很重要的,你要知道你的每一行代码在做什么。

⑤带你学习写代码、编译、调试、运行的过程

这个想必我也不用多说,你以后学习任何一种计算机语言都离不开这几个步骤,只是有的可能把编译的过程隐藏起来了不给你看见。

最后,上面这些也只是我的一点总结,并不代表老师们的真实意图,我也还只是接触了计算机知识中的冰山一角,大概说的很不全面,也欢迎补充、指正。以及题主如果确实想急于做一些有意思看起来比较高大上的项目的话,可以去图书馆找找一些名叫“c语言项目实战”、“XXX项目实战(基于c语言)”、“c语言游戏编程”等等这样的书(不一定就是这些名字,我也没看过这些书),或者直接去学习python吧,刚学完c语言学习python应该会很快,在学习的过程中还能和c语言互相印证,然后你就可以借助python语言中的一些开源库做很多高大上的工作了,但我还是建议你学好c语言基础,因为那是你以后学习其他语言的一把钥匙。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多