知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

C语言真的那么难学吗?

发表时间:2022-03-24来源:网络

C语言本身并不难学,或者甚至可以说C语言的语法是最简单的。那些初学计算机编程的学生,学C语言就觉得难到不行,还沦落到挂科的,我只能表示这种学习能力就不要学计算机了。

我前几天刚回答过一个问学不会C语言指针是什么处境的问题,可以看看下面的回答,可能会让你豁然开朗重新审视前方的路:

和很多人一样我当年也是大一下学期学的C语言这门课程,在那之前没有学过计算机编程。那时候也没有现在的孩子这么好的条件,上大学家里就给买电脑的基本没有几个,家里当时都没有电脑。当时学习C语言时优先只能在纸上写,在纸上编程,用脑子“运行”。但是纸上编程毕竟不是学习计算机的有效途径,上机还是必要的。好在当时学校有公共机房,一块钱一小时,五毛钱半小时,在当时5~10块钱可以够一个男生吃饱一天三顿饭的时候,每天上机一两个小时还算可以接受。我就经常在有问题需要上机调试时或定量每天去机房敲一段时间代码。

学习计算机除了实际的大量有效的读、写、调试以外,我想不出有什么“捷径”可言。那时候也没有现在网络这么发达,开源这个词在中国还没多少人听说过,想学习就是靠自己。所以我实在是不明白现在在网络如此发达,开源的好东西如此唾手可得,人手一到多台智能设备的条件下,那些一有一丁点问题就天天在网上“求大神”“拜大神”的人是怎么想的?说他们不好学吧,他们又表现的很着急,说他们好学吧,他们又伸手伸的如此随便。这是什么?我觉得这就是急功近利、投机取巧和“懒”。

单就C语言这门课来说,它能有多难? 在不涉及日后数据结构和算法、操作系统、编译原理等等诸多专业课的前提下,单就C语言这门课本身来说,不就是学会C语言的所有语法吗? 单论C语言的语法,那可谓是所有编程语言里最简单的了,因为它根本没有其它高级语言的复杂特性,就是高级语言里的低级语言。真正难的是使用C语言进行实际项目的开发,因为C语言本身并没有其它高级语言的诸多原生特性(如支持正则表达式、面向对象等),所以C语言的语法非常简单,而实际应用时则要利用这简单的语法实现负责的逻辑,经常要从轮子开始造。就像围棋的规则很简单,一个子四口气,气都围上就可以吃掉,最后谁占的点多谁就赢。但是围棋可以展开的战术甚至哲学思想是很多棋种不能比的,这才是它难的地方。而我们在初学C语言时,还没有要求深入学习计算机科学的内在东西,单就C语言本身就觉得难到不行,这该怎么说呢……

当然,很多人觉得难也可能是因为这是很多人接触的第一门编程语言课程,起手确实会有一个需要适应的过程,这个可以理解。不过所有学习计算机的人,都会有一个第一次接触编程语言的经历,这不是什么大不了的事儿。而且我上面已经说了,单就课程难度来说,C语言的语法是基本上是最简单的。

这样一个简单的东西,能难到什么程度?当年大一下学期学C语言,临近期末时有一个同班同学找到我,说想请我帮忙让她考过这学期的C语言课程。我问她你现在什么水平,写个程序我看看。然后我就惊呆了,还有十来天就考试了,她连if else都不会写,变量定义都能写错了。我想了想,说作弊我是反对的,如果你只是想考过考试也不是没有办法,每天我给你讲半个小时到一小时,然后给你留个“作业”,回去独立完成下次带来你给我讲你的作业我给你判,然后再讲半小时到一小时再留作业,如此往复7天左右你差不多就能应付考试了。然后我就按照判断结构、循环结构、函数、数组、指针、结构体的顺序给她依次讲了一遍,每将下一个都穿插前面的内容和一些其它内容。她也还算努力,交给她的作业确实认真独立完成。而且当时因为大家都习惯在图书馆的自习室学习准备考试,所以也带动的一些别的同学也加入进来,形成了一次很短暂的闭馆前小组学习日常。就这样大概过了八九天,我觉得她学的差不多,足够考试了,这个“日常”就算到此结束了。后来期末考试她确实考了79分,和我预计的差不多。而且连带着把后来比期末考容易的C语言二级考试也过了。

所以说C语言考试那点事能是多难的事? 学会了都不是什么值得骄傲的事。还挂科?只能说明懒到家了。

有人问智能手机/电脑时代有什么好的学习C语言的途径?这样的问题其实先要分你是处于一个什么学习阶段,即使是初学者也是分阶段的,比如:

完全0基础从0学起已经记住并较熟练使用基本语法格式较熟练掌握简单的线性表存储结构

我们就列到这一步,这些都可以算是初学的行列,这些是学习和掌握更多计算机专业知识的前置知识,相当于普通大学生大一末或大二初的(要求)水平,也差不多相当于非计算机专业计算机等级考试的三级上机(C语言编程)水平。按照普通大学的教学进度,一般一个学期左右达到第2阶段,再有小半个学期就可以达到第3阶段。如果再勤奋一点,那基本上可以一个学期内搞定这些。

对于完全0基础的人来说,多以刚入学不久的计算机类的大学生为主,这类人群根据自己专业的教学进度“认真”学习和练习就能够如期掌握上述知识(注意“认真”两个字)。还有一种认为自己学校教的不行,或者自己没有通过足够的努力学会想补习,或者纯粹其它专业半路出家想自学的,这类人群从网上获取免费的学习资料(教学视频和练习)也可以较容易的达到上面的第3阶段。

关于网上的学习资料实在多的如满天繁星,什么样的都有。我就以一个有人问过的“夜曲编程”为例大致说一下:

听到“夜曲编程”这个名字的时候,我第一感觉也是根本没听过,直到看到它的出品方是“百词斩”。说到“百词斩”我觉得很多人都熟悉,我自己也用过很长时间,总的来说做的是不错的。所以我就好奇一个教人学英语的能把教人学编程做到什么程度。

打开它的官网,能看到目前它提供的教学内容包括各种python的入门和进阶(如网络爬虫、人工智能等),还有计算机的一些基础知识(如计算机组成原理、操作系统等),因为本回答是和C语言有关的,所以我重点看了一下它们的C语言教学部分。目前(2021年12月)我只直到一个关于C语言的教学项目,较“C语言不挂科”,大家感兴趣的可以自己点开官网查看。

里面的内容我做了一下,基本上属于我上面列出来三个阶段的第二个,也就是学完后能满足掌握基本语法的要求。这也很符合这个课程的标题定位“C语言不挂科”,单轮C语言这科的考试要求确实就是这些:

C语言的语法很少,重点的就是这几个部分,学会了就能通过考试。而对于初学第一门编程语言的初学者来说,靠反复的记忆和练习,记住并能使用基本语法是最基本要求。如果你觉得自己还没学会基本语法,或者面临挂科的风险,那么这个课程可以说确实很针对有C语言期末考试或二级考试这样需求的人群。我自己试做了里面的绝大部分课程,可以说面向学生风格和考试风格很明显,还怕你记不住弄出了各种要点、大纲、重点回顾、记忆卡片等等东西,这真是就怕你记不住那点语法了,很有百词斩那个就怕你记不住的味儿了。

目前这个夜曲编程里还有其它课程,我没有全部一一点开,感兴趣的可以通过:1)浏览器登陆上面的官网;2)手机下载夜曲编程app;3)微信关注夜曲编程公众号;等方式获取到课程。比如关注他们的公众号后发送“C语言”我就看到了上面的“C语言不挂科”那个课程。做的好的话应该以后会不会添加更多内容,比如添加数据结构和算法的学习等。

所以说网上的学习资料五花八门,看好你自己的短期和长期学习定位,你如果在一个期间内需要这样的学习内容和方式,不妨用用看。现在报名购买课程,学习完成合格后还能返现,变相相当于免费。反正也不贵,有时候不和钱挂上点钩,容易动力不足。就像我太太,自己减肥一直没有动力,但是当她花好几千一个月报了减肥班,很快就努力上了。用她的话讲,不使点劲都对不住自己掏出去的钱。

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜