如何快速学习编程?
很多人对学习C语言感到无所适从,经常问我同一个问题:C语言到底怎么学?我是一名大学生,开发程序多年。和很多刚入门的人一样,我学的第一门计算机语言是C语言。经过这几年的发展,我深深体会到C语言对于一个程序员来说有多重要。不懂C语言就想写低级程序,这听起来几乎很可笑。如果不懂C语言,想写出优秀高效的程序,根本不可能。C语言为什么这么重要?
第一,C语言的语法结构非常简洁精致,写出来的程序也非常高效,很容易描述算法。大部分程序员都愿意用C语言来描述算法本身,所以如果你想在编程上有所建树,就必须学会它。
第二:C语言可以让你深入系统底层。你知道的哪个操作系统不是用C语言写的?所有的windows,Unix,Linux,Mac,os/2都是内外兼修。如果你不懂C语言,怎么深入这些操作系统呢?更不用说你写他们的内核程序了。
第三:很多新的语言都来源于C语言,C++,Java,C#,J#,perl...哪个不是?掌握了C语言,可以说掌握了很多语言。经过简单的学习,就可以使用这些新语言进行开发,再次证明了C语言是编程的重要基础。还有,多说一点:就算现在招程序员,考试也全是C语言。如果你想加入it行业,你必须掌握好C语言。
那么如何学习C语言呢?
1:工欲善其事,必先利其器。
以下是学习C语言的一些基本事项:
一个开发环境,比如turbo C 2.0,曾经占据了DOS时代开发程序的一半以上。但是在windows时代,使用turbo C有一些缺点,编辑程序非常困难,而且拖拽,没有函数变量的自动感应功能,查询参考资料也不方便。建议用Visual C++,相对来说比较笨重,但是一旦安装,使用起来非常方便。
一本学习教程,现在C语言教材多如牛毛,但我推荐你使用谭浩强主编的《C语言程序设计》第二版,清华大学出版社。这本书很适合初学者,内容也很准确。
另外还有很多辅助学习的软件。毕竟现在是窗口时代,学习软件很多,不像我们学习的时候那么老套,只看书做题。我推荐一个“集成学习环境(C语言)”,里面知识点总结和套路讲解都很好,还有一个题库测试环境。据说有几千个问题,windows下甚至还有一个trubo C。初学者不用安装其他编译器就可以练习编程,非常适合初学者。还有一个“C语言学习系统”软件,但是感觉就是一个题库系统。如果觉得题做的不够,不妨试试。
2.向日葵系列
学习计算机语言的最好方法是什么?回答:看节目。
是的,阅读程序是学习C语言最快最好的方法。和我一样,现在学习J#、C#和C #等新语言,不再是一行一行的吃书,而是学习它们的套路。当然,对于没有学过任何计算机语言的初学者来说,最好是先把教程看完,而且每学完一章,都要仔细理解这一章的所有概念,然后不要放过这一章提到的所有套路,再仔细研究程序,直到每一行都理解为止,然后找几个编程题目,最好是和套路相似或相同的,尽量把这个你已经看过的程序写出来。不要以为你看了套路。你可以写和它一样的程序,绝对不行。不信就试试看。如果你写不出来,也不用担心。回去继续研究套路,想想为什么写不出来。然后反复写这个程序,直到写对为止。恭喜你,你很快就要开始了。
3.达到顶峰
其实编程的最高境界就是掌握解决问题的各种手段(数据结构)和方法(算法)。
写低级程序是编程高手吗?不,写底层程序无非就是掌握硬件结构。再说硬件和硬件不一样。给一个芯片写驱动无非就是掌握这个芯片的各种寄存器及其组合,然后写值和读值,仅此而已。这只是熟悉一些io功能。那么什么是精通编程呢?怎样才能掌握编程?比如你面前有10个人。找一个叫“张三”的人。你该怎么办?第一种方法:直接问这10人:“张三是谁”。第二种方法:你问“你是张三吗?”直到问的人是张三。第三种方法:你问每个人“你认识张三吗?给我看看”。不要小看这个问题。你说你一定会选择第一种方法。恭喜你答对了,因为这个方法是最快最高效的。但是,找到解决问题的最佳方法,以及你在编程中使用的手段,是检验一个程序员编程水平的重要标志,并不容易实现。刚才这个问题和《数据结构与算法》里面的问题差不多:映射数据结构,穷举搜索,半搜索。所以,掌握数据结构和一些常用算法是登峰造极的必经之路。最后,我向清华大学出版社推荐严为民的《数据结构》。希望每一个想成为编程高手的人都来学习这本书。[责任编辑:赵进军]
二,语言学习方法
说说我的学习方法,抛砖引玉!
不管怎么学不学,最后都能学会。但是别人是1个月学会的,而你是100年学会的。那不是太晚了吗?所以,学习要讲究方法。正确的学习方法,事半功倍;不正确的学习方法事倍功半。
学习C语言的捷径是什么?我的答案是读书。书里写的都是之前十年的经验写出来的。读十本书相当于学习了前面十年的技能,你的内功也会快速上升1。当然,你要看好书。只有好书才有营养。如果你花1天看一本破书,书中介绍的知识对你来说是全新的,但你因为书中组织不当或深度不够而获得的营养很少,还不如自己一天研究一遍来得快,所以这类书不值得看。学习C语言应该看哪些好书?我觉得首先要把基础的书看牢,比如C语言四书五经里面介绍的四书。虽然这些书很多都绝版了,但是我相信电子版也是很有好处的。另外,如果你真的想看,我相信你能得到。你会在很短的时间内(比如说一两个月)看完这些书,这取决于你的基础和理解。之后想看什么书?我不妨再列举几个。比雅尼·斯特劳斯特鲁普的《C++编程语言》必读。这本书对C的一些基本概念的定义,比我见过的任何一本C语言书都要完整和细致。比雅尼·斯特劳斯特鲁普的《C++的设计与进化》和大卫·R·汉森的《创建可复用软件的C语言接口和实现技术》创建可复用软件)必读。这两本书讲的是如何用C实现异常处理、实现类型的封装和扩展等一些大项目中经常用到的先进技术。其他书看操作系统,看编译原理,看算法,看模式。读书如书,编码如神。总之,正如《列传》所言:“生而有知者,上也;学而知之者,其次;从困难中学习是首屈一指的。”不能总在困难中学习,但要保持兵马未动,粮草先行。
读书是学习的导向,概念可以在书上介绍清楚,但应用的细节却无法在书上介绍给你,因为应用永远是复杂多变的。所以,要想熟悉其中的窍门,知道如何在书中使用,多读源代码。Linus经常说阅读源代码;为他人答疑解惑时;侯杰在文章中也提到“在源代码之前,没有秘密。”这是大师的座右铭。源代码就像一个动画,像幻灯片一样,我会把书中的招式一个一个给你看。可以说大师的大部分经验都来自于代码。源代码和书一样,应该是乐观的,而不是糟糕的。这里推荐看Linux内核源代码和Linux tcp/ip源代码。这两套代码都是开源的,很容易获得。除此之外,还可以配合Andrew S.Tanenbaum的《操作系统:设计与实现》、毛胡的《Linux内核源代码场景分析》、Jonathan Corbet、Alessandro Rubini、Greg Kroah-Hartman的《Linux设备驱动程序》(Linux Device Driver,3e)、W.Richard Stevens的《TCP/IP/IP Illustrated (Part 3)》、W. Richard Stevens的《UNIX环境下的高级编程》(新版本增加了Linux内核的内容)等书籍,非常方便。当然,程序不是看得见的,而是写出来的。我高中的时候,每天坚持写6个小时的程序。数据结构、排列组合、图论的练习我反复做了N遍。虽然到现在已经两年了,很多内容早就忘记了,但是它培养了我很强的编码能力和调试能力,直到现在对我的工作还是有很大帮助的。
学会避免贪婪、浮躁、急功近利、狂妄自大。把学习计划放久一点,培养一个好的学习方法,一步一步慢慢走,你最终会成为大师的。C是编程语言的基础,建议你从C开始!还有,听说大部分黑客都是C语言的铁杆粉丝。当时听了这个,就学会了C!就是这个信念让我一直学习,好好学习,好好学习!希望大家在学习编程语言的时候,心中有一个信念!