初学者应该怎么学习c语言
学习啦在线学习网一、要读就读好书,否则不如不读
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它学习啦在线学习网专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)
Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。
学习啦在线学习网如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。
切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
学习啦在线学习网二、Unix/Linux还是Windows,这是个很大的问题
不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
学习啦在线学习网所以我建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。
等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格
学习啦在线学习网归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。
1.学习基本的语法
例如:数据类型int、double的含义、使用和背景;逻辑判断if的使用;流程控制的循环while\for的使用;函数的调用;
学习啦在线学习网2.编写基本语法的代码
学完基本的语法,熟悉了之后,针对这些基本语法,写一些基本的代码来练习,巩固。在写代码的过程中熟悉基本语法。第1步只是学习理论,这一步就是巩固基本语法,是通过实践来巩固,实践就是写代码,能够运行通过,才表示正确。这一步是最基本的一步写代码。
3.混合使用语法实现复杂的功能
各个基本的语法点都掌握了,要开始找一些实用小程序来综合练习,就好像是物理考试的最后几个大题一样。综合练习就是加深各个基本语法的理解和混合使用。这也就是项目经验学习啦在线学习网的基础。这里会遇到各种混合使用中因为自己不熟而碰见的各种错误,也就是积累经验的过程。
4.写多了,遇到的坑多了,然后就理解了语法,记住了用法。无法使用英语学习的强行记忆,是行不通的。
学习啦在线学习网5.自己写一个完整的可以供他人实际使用的程序
比如可以写一个完整的计算器、一个完整的通讯录、一个成绩统计分析程序、图书管理系统。这里会涉及到各种语法知识,也是真正大量积累项目经验的时候了。这些完整的程序就是小项目了。这些都能够做好后,就可以开始写大项目了。这些完整程序都要以实际的需要来做,不能绕过,要直面需求。可以直接解决,可以换个思路解决,这是锻炼自己的过程。
做完了这5步,C语言也就学好了。学习C语言,绝对不是简单学习一下语法而已。5步做完,才真正的学完了C语言基础。
C Primer Plus是非常适合完全自学C语言的书籍了。根据这个5步的前3步,这本书里有对应的联系,后面两步需要自己来找程序开发。
1.简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富
C的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算,并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器学习啦在线学习网和驱动器,且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
学习啦在线学习网因此既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
学习啦在线学习网7. C语言程序生成代码质量高,程序执行效率高
学习啦在线学习网一般只比汇编程序生成的目标代码效率低10へ20%。
学习啦在线学习网8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
1)多久能学会编程?
这是一个没有答案的问题。每个人投入的时间、学习效率和基础都不一样。如果你每天都拿出大把的时间来学习,那么两三个月就可以学会C/C++,不到半年时间就可以编写出一些软件。
但是有一点可以肯定,几个月从小白成长为大神是绝对不可能的。要想出类拔萃,没有几年功夫是不行的。学习编程不是看几本书就能搞定的,需要你不断的练习,编写代码,积累零散的知识点,代码量跟你的编程水平直接相关,没有几万行代码,没有拿得出手的作品,怎能称得上“大神”。
每个人程序员都是这样过来的,开始都是一头雾水,连输出九九乘法表都很吃力,只有通过不断练习才能熟悉,这是一个强化思维方式的过程。
知识点可以在短时间内了解,但是思维方式和编程经验需要不断实践才能强化,这就是为什么很多初学者已经了解了C语言的基本概念,但是仍然不会编写代码的原因。
程序员被戏称为“码农”,意思是写代码的农民,要想成为一个合格的农民,必须要脚踏实地辛苦耕耘。
学习啦在线学习网也不要压力太大,一切编程语言都是纸老虎,一层窗户纸,只要开窍了,就容易了。
2)学编程难吗?
编程是一门技术,我也不知道它难不难,我只知道,只要你想学,肯定能学会。技术就是一层窗户纸,是有道理可以遵循的,在我看来,比搞抽象的艺术要容易。
在技术领域,编程的入门门槛很低,互联网的资料很多,只要你有一台计算机,一根网线,具备初中学历,就可以学习,投资在5K左右。
不管是技术还是非技术,要想有所造诣,都必须潜心钻研,没有几年功夫不会鹤立鸡群。所以请先问问你自己,你想学编程吗,你喜欢吗,如果你觉得自己对编程很感兴趣,想了解软件或网站是怎么做的,那么就不要再问这个问题了,尽管去学就好了。
3)英语和数学基础不行,可以学会吗?初中毕业可以学会吗?
首先说英语。编程需要你有英语基础,初中水平完全可以胜任。编程起源于美国,代码中会出现很多单词,有英语基础记忆起来会非常容易,如果你不认识也没关系,我推荐你安装有道词典,它的划词功能非常棒,选中什么就及时翻译什么,不管是句子还是单词。这样,相信你开发出常用的软件不成问题。
当然,如果你希望达到很高的造诣,希望被人称为大神,那么肯定要阅读英文的技术资料(不是所有资料都被翻译成了中文),初中水平就有点吃力了。不过,长期阅读英文会提高你的英文水平,只要你坚持一段时间,即使只有初中水平,我相信借助有道词典也会提高很快。
如果你没有学过英语,不知道 am、is、are,那我该怎么说呢,有志者事竟成,只要你想学,相信英语的障碍你也能克服。
学习啦在线学习网至于数学,只要你不打算搞算法、机器学习/人工智能、大数据/数据分析,会加减乘除法,知道次方、开方、科学计数法等最基本的概念,就不要把数学当做学习的障碍了。
学习啦在线学习网4)需要什么配置的电脑
如果你囊中羞涩,3K以上的台式机,4K以上的笔记本学习啦在线学习网也可以胜任,当然有时候会卡顿。
经济条件允许的话,最好5K以上的台式机,6K以上的笔记本。
学习啦在线学习网如果想从事编程行业,你早晚要有一台高配的机器。它不但会让你工作更加流畅有效率,还会让你觉得工作是一种享受,所以很多程序员配备了MacBook。
学习啦在线学习网5)学习编程要用Linux吗
很多大神都轻视地说,我不用Windows,一直在用Linux,只有Linux才能让你看到C的本质,C就是为Linux而生的。
话虽没错,但是你想想当初你学习Windows花了多长时间,是不是一开始连切换输入法也不会,编辑Word文档也不会;如果你切换到Linux,你也会遇到同样的问题,你需要一段时间来熟悉Linux,加大了你的学习成本,会慢慢消磨掉你对编程的兴趣。
所以我建议,你可以在Windows下学习C语言,完全没问题,如果有一天Windows不能满足你的学习需求了,那你再切换到Linux,这个时候你对编程已经很了解了,切换的成本也低了。
初学者应该怎么学习c语言相关文章:
★
★