C 语言怎么学?这篇文章给你完整答案
本文作者曹良亮,《C 语言程序设计:现代方法(第 2 版· 修订版)》习题解答编者,任职于北京师范大学教育技术学院,理学博士,高级工程师,长期从事北京师范大学本科生的 C/C++ 语言与 Java 语言的教学工作。
程序设计语言是用于编写计算机程序,设计和开发计算机软件的特定的编码规则。
在数字化社会中,学习和了解一门程序设计语言,不仅仅是学习计算机软件设计和开发的重点,也是深入了解计算机和数字化社会的基础。
目前程序设计语言种类众多,功能和特点各不相同,因此如何选择一门适合自己的语言,并从零开始学习基本的语法规则、最终能够应用这门语言进行程序设计开发是计算机初学者面临的第一个问题。
问题一:
为什么要选择 C 语言?
如何更加有效地学习一门程序设计语言,是很多计算机方向的学习者在学习过程中非常困惑的问题。
引起这种困惑的原因有很多,首先是信息技术及其相关领域在最近十几年间发展的异常迅速,各种新的概念和理论层出不穷,知识的更新和迭代速度也更快了。
在这种计算机知识不断发展的背景下,每一个初学者都免不了担心,自己投入了巨大的时间和精力所学的知识会不会很快就“过时”了,跟不上潮流了。
很多时候初学者们都希望能够提前预测到下一个风口在哪里,这样才能更佳高效地投入自己的时间和精力,提前做好起飞的准备。
在这种情况下,很多初学者不断地在网络上咨询,或者向有经验的前辈们请教,或者参考类似 TIOBE 之类的的编程语言排行榜,去选择一些目前使用最多,或者最流行的程序设计语言。
但是,目前信息技术的发展速度远远超过以往的各个历史阶段,如果总是在外部建议下不断的调整自己的学习内容和方向,去迎合整个信息技术产业的发展和变化并不可靠,对于大多数初学者来说,这样的结果可能会让我们多很多内容都浅尝辄止,远远不能实现熟练掌握和精通的程度。
对于目前流行的程序设计语言,如 TIOBE 排行榜中排在前列的每一种程序设计语言,都是非常优秀和值得我们用心学习的,如果能够真正熟练掌握其中的一种对今后的工作和学习都是大有裨益的。
作为初学者,如果对今后的从事的方向的专业并没有明确的规划和方向,那么把 C 语言作为自己主要的学习对象是一种非常好的选择。
C 语言作为一种诞生了近 70 年的“古董”级别的程序设计语言,以目前的标准看,它不具备很多新的程序设计语言的功能和特性,那么为什么我们还要学习它呢?
C 语言作为历史悠久的一种程序设计语言,其在语法和功能方面的优势我们不再赘述,仅仅从它的历史和它的应用范围就可以看感受到他的重要性。
或者我们换个想法,作为一个“古董”级的程序设计语言,和它同时期和很多语言都销声匿迹很久了,而 C 语言依然能够在 TIOBE 上排进前几位,那么就可以看出其重要的地位和意义。
从计算机专业的课程组织上看,C 语言具备更好的学习迁移的功能,即当熟练掌握 C 语言后,能够让你更快地迁移学习其他的程序设计语言。
因此,初学者把 C 语言作为自己程序设计的入门课程,对今后专业发展是积极有益的。
问题二:
零基础学习 C 语言
C 语言从诞生到目前近 50 年的发展过程中,不断吸取和积累了众多的优势和特点,例如,C 语言语法灵活、简洁高效、更加接近系统底层等。
不幸的是,对于 C 语言的初学者来说,这些优势又恰好是学习过程中的诸多难点,很多初学者都是满怀信心地开始 C 语言的学习,但是在短暂的学习一些基本的语法知识之后,就陷入了过于灵活的语法结构、数组和指针的基本概念等难点上,无法进行更加深入的学习,甚至很多初学者都会戏称 C 语言的学习是一种“从入门到放弃”过程。因此如何解决这些学习中的难点是 C 语言学习中的一个重要问题。
经过多年的针对非计算机专业学生的 C 语言的教学工作,总结相关经验建议初学者们在学习 C 语言中应当注意以下三个问题。
理解基础知识和概念;
概念和知识点转化为编程操作;
通过不断练习,实现使用 C 语言来分析问题和解决问题的思维习惯。
为了实现这种程序设计的思维方式的转变,需要将 C 语言的基本概念和理论与编程操作结合起来,并不断通过练习锻炼和养成自己的思维习惯。
问题三:
通过一本好教材来学习 C 语言基础知识
对于初学者需要一本内容结构安排合理,例题详尽丰富的参考书。目前互联网中的学习资源丰富,各类文字材料、音视频学习材料等应有尽有,因此很多学习者都认为可以通过网络检索来实现 C 语言的学习。
通过多年的教学可以发现,通过网络检索到的碎片化的学习内容并不能很好地帮助学习。这是由于网络中很多内容不够系统和全面、语言的表述无法做到统一和前后一致,因此会影响初学者对 C 语言中基本概念的理解;另一方面,片段化的知识点和示例代码没有经过系统化的整理和设计,无法像经过标准课程设计的传统教材那样由浅入深,循序渐进的进行系统话的学习。
因此准备一本内容丰富的参考书,一方面可以全面学习 C 语言的所有知识,另一方面也可以作为工具书或者参考手册,随时查阅是非常重要的。
目前的流行的教材中《C 语言程序设计:现代方法(第 2 版· 修订版)》是一本国内外知名大学首选的 C 语言教材,该教材章节内容安排合理,对相关知识点介绍全面,讲解通俗易懂,案例全面丰富。
即使在熟练掌握 C 语言之后也可以作为一本案头的参考用的速查手册,能够解决 C 语言应用中的各类问题。因此《C 语言程序设计:现代方法(第 2 版· 修订版)》是一本对 C 语言的初学者非常友好的教材和参考手册。
问题四:
应用编程练习来深入理解 C 语言
C 语言的学习中需要正确认识概念理解记忆和程序设计的实际应用关系问题。
首先 C 语言作为一种更加重视实际操作和应用的领域,不仅要求学习者熟练掌握 C 语言中的复杂的语法规则,还需要在程序设计的实践中灵活应用这个规则。
由于 C 语言的语法灵活,相关概念和知识点较多,因此很多初学者容易习惯性地过多关注知识点和语法规则,忽略实际应用和操作练习。例如,很多同学虽然能够牢记操作符的优先级、结合性等规则,但是在实际应用和编程中却无法正确的使用这些规则。
初学者在上机练习中常见错误重要包括,中英文符号的混淆、括号配对、表达式求值、类型转化等方面,例如,赋值操作符(=)和比较相等运算符(==)混用;数学算式和 C 语言中的表达式混淆,写出类似 2X^2(即:2*X*X)错误的表达式等。
对于初学者来说,理解和掌握 C 语言中的知识点和基本概念固然重要,但是更应当注重在实际应用中来从原理上理解和掌握 C 语言的基础知识,学习过程中需要将上机编程练习和书本知识点相结合,通过编程来熟悉和掌握各种知识点,而不是单纯通过对教材的死记硬背来学习。
因此,一本优秀的 C 语言教材都会通过大量的例题和课后习题,给学习者提供反复练习和理解的途径,而不是简单的重复枯燥的概念。
问题五:
在练习中养成 C 语言思维方式
最后一个问题,当我们按照《C 语言程序设计:现代方法(第 2 版· 修订版)》开始学习 C 语言,应该怎样才能更有效的利用课后习题呢?
当学习者掌握了基础知识后,面对那些具体程序设计问题时,就是检验如何把学到的概念转换成问题解决能力的时候。
教学中初学者遇到的最大问题是不知道如何把语言问题描述的问题转换成为 C 语言的问题,这也可以认为是一种简单的程序建模问题,学习者需要适应和习惯使用 C 语言的分析问题、解决问题的基本方法。
当我们具备了这种使用 C 语言的语法和逻辑体系进行问分析问题和解决问题的能力后,才能够真正掌握一门程序设计语言。
在 C 语言的教学过程中,我们发现很多初学者在学习过程中通常会使用网络进行习题解答的检索。
依靠网络检索来解答问题并不能很好的帮我我们学习 C 语言,因为很多情况下网络中的解答只是简单提供答案,而没有给出问题分析和求解的关键性步骤。
初学者在编程练习的过程中,其主要目的是为了在编码中理解 C 语言的知识点、掌握 C 语言的基本规则,因此更加需要一种简单、清晰的 C 语言的程序和语法表达。而网络中的资深程序员可能会给出更加简洁高效的技巧性解答,这样反而会影响初学者对 C 语言的理解。
为了更好的解决这个问题,人民邮电出版社针对《C 语言程序设计:现代方法(第 2 版· 修订版)》一书中的所有习题出版了配套 习题解答,希望学习者可以通过这些习题,逐步了解如何使用程序设计语言的思维方法来分析问题和解决问题,并最终实现编码的过程。
我们相信,通过大家的努力,在《C 语言程序设计:现代方法(第 2 版· 修订版)》及其配套习题解答的帮助下,每一位 C 语言的爱好者都会实现从针对 C 语言的“从入门到精通”。
Get 同款习题解答☟☟
版权声明: 本文为 InfoQ 作者【图灵教育】的原创文章。
原文链接:【http://xie.infoq.cn/article/597b7067043e6748e85cfca66】。文章转载请联系作者。
评论