(一)静心不静
1、静心。
学习的过程,是一个漫长而枯燥的过程,学习者必须要有吃苦耐劳的准备,静下心来,从大家的视觉中消失,经受一个长时间的编程学生过程。吃尽苦中苦,方成人上人!等你重新回到大家的视野时,你会有一个蜕变,那时一切的痛苦都将化为甘甜。
温瑞安先生有一部武侠小说,叫做《请借夫人一用》,我们这里也借用一下。当然不是借用别人的女朋友,而是了解一下主人翁的学习历程。主人翁韦青青青出场时浑然是一个高手,他把一千零一招的功夫柔和在一招之中,但是在其出场之前,江湖上没有人知道韦青青青这一号人物,因为他正在十年如一日的专心练功,正是这种练功时的不为人知,才造就了了日后的温瑞安小说高手。
不谈武侠,来个IT版的例子。在遥远的大洋彼岸,在微软的IE横行之前,在互联网刚刚起步之时,有一个叫做"网景"的浏览器占据了市场99%的份额,网景公司在当时的美国更是比易中天还如日中天。可是,大家知道这个"网景"浏览器是谁开发的吗?是一个学生,他在大学中不显山不漏水,别的同学每天考虑着泡MM,他却每天除了上课就是泡机房,是上也泡,下也泡,终于泡出了浏览器。
所以说,静下心来,无论其他同学在多么兴奋的展示他们的某某系统,他们的某某网站,既然你选择了学习C语言,那么以韦青青青为榜样吧,总有一天,你会一举成名天下知的。
2、不静
学习C语言,务必不可以急躁,务必一步一个脚印,此乃静心。但是,学习C语言,也不可以太过沉默,一个人呆在机房里闭门造车妄想着创造出某个绝世程序然后成为中国的比尔盖茨是不可能的。
学习靠自己,所以大部分时候我们需要自己思考、闭关修炼。但是一个人的力量终究是有限的,很多时候我们需要借助外力。比如不懂的地方咨询老师,不明白的地方可以与同学相互讨论等等,都是可以的。
有很多同学,学习时碰上困难,遇上了麻烦,于是自己冥思苦想--这是对的--还是得不到结果,于是故意回避不闻不问--这是自欺欺人。有同学说,那是因为无人可问,问老师,貌似大学老师总是神龙见头不见尾,根本找不到;问网络大虾,网络大虾们经常不在线,就算在线,面对洋洋洒洒的留言也视而不见,更别提回复了;问同学,别提了太丢面子!大家同学而已,为什么要问他,问他岂不是说明自己低人一等吗,不问!
其实,大学之中同学之间相互讨论是最可行的一种做法,毕竟一个王重阳没有时间指点全真七子,网络大虾比投名状中的兄弟还不可靠,所以除了自己多思考就是同学之间多讨论了。不要担心问问题会低人一等,老祖宗有一句话叫做"不耻下问",虽然你的水平比我低上一点点,但是,我不觉得向不如自己的问提问是耻辱。多好的阿Q精神啊,用这点!
只有静心,才可以更好的学到知识;只有不静心,才可以更快的学到知识。
(二)深入不深
1、深入
学好C语言,就一定不能浮躁,要深入的学习知识。
其实,以上的话就极其浮躁,极其不深入。谁不知道要深入学习啊,但是你的告诉大家,到底什么内容属于深入学习的内容。
其实,浮躁就是学习知识就是浮于表面,没有深入理解专业知识。表现在编程上就是只想编写一些所谓漂亮的、能够拿得出手的程序,而对于一些底层的支持程序置之不理。
有的同学喜欢编写一些漂亮的程序,比如设计漂亮的网页,使用某某工具开发某某'大型'系统等等,当然这都是人之常情。正如鲁迅先生所说,文章写出来总是希望拥有更多的读者,除非是写给恋人的。程序编出来,总是希望拥有更多用户,除非是专门为爱人开发的。但问题是,只编写这类程序是不够的,是有缺陷的。
这些所谓的程序,往往只需要对知识应用,并不需要刨根究底研究知识的本身,甚至有很多加入了很多相当专业的内容,并不适合于初学者学习。比如VC中的MFC就是一个典型的误导初学者的工具。利用MFC可以很方便的编写出DIAG界面程序或者视图文档程序,从表面上看风光无限,但对初学者却祸害无穷!假如使用VC学习C++,大部分时间将用于消息的处理,控件的处理,还要阅读大量的视图文档结构类库说明,这些操作将耗费了你大量的时间,得不偿失。而且VC++的大部分编程是在某些位置插入代码,至于C++部分系统自动实现了,留给你的是纯C语言操作。同学请注意,你学习的是C++,不是VC类库,也不是VC操作!
比如使用数据结构,就必须自己编写有关链表、队列和栈等内容,你是在学习,又不是工作,当然得用自己编写的东西呢。
又比如说C语言的内存分配函数,就是那个malloc和free.一般人直接调用就行了,但是计算机专业的学生不应该止步于此,而应该思考这两个函数的系统实现方法,并且编程序模拟内存分配和释放。设计这样的程序,不但可以增强动手能力,还可以加深对计算机知识的理解,一举多得,何乐而不为。
2、不深
深入学习C语言是极其应该的,但是大家也必须有所侧重,不能胡子眉毛一把抓,所有的东西统统深入,具体表现在两个方面:
其一、一些知识范围不可过于深入。
有一些知识,属于偏僻的内容,既不是基础,日后工作中也很难碰上,而且还极度困难,像这样的东西,了解即可,完全没有必要深入。比如说某同学心血来潮,要编写一个漂亮的输入法软件,于是苦心学习了有关输入法的所有知识,还妄图气死清华紫光,饿死搜狗拼音,于是仔细研究输入法的犄角旮旯。其实这些知识均相当偏僻,了解即可,完全没有必要打破沙锅问到底。
其二、一些界面或者不必要的功能不可过于深入。
大家编写的程序,往往伴随大量的交互式界面设计。事实上,编程有个二八原则,即编写80%的核心内容将耗费你20%的时间,而另外20%的功能将耗费你80%的时间。实际上,作为C语言学习,深入编写好那80%的核心功能就可以了,耗费80%的时间去深入完善那些20%的功能,得不偿失!
所以,练习用的程序,最好是一些基础的、http://www.fuhesoft.com/ 点击打开链接底层的实现,不要有太多花俏的图像和交互式操作。当然也可以设计一些简单的具备图形界面的小游戏,但此时你应该将精力更多注重于游戏本身的设计,而不是游戏的画面风格和动画效果上。
学习C语言,有所为有所不为。
(三)枯燥不枯
1、枯燥
学海无涯苦作舟,学习当然是一个枯燥的过程。用语言设计程序,表面上程序漂漂亮亮风光无限,其实风光的背后是黑漆漆的屏幕和冗长的代码。程序员是把美丽献给别人,把枯燥留给自己的职业。
所以,学习C语言,就必须多设计一些枯燥的、无趣的实例。当flash程序员在展示图片时,C语言程序员要去学习空洞的0和1的图片格式;当Java程序员设计网站时,C程序员要去理解抽象的HTTP协议;当。net程序员使用对象托管时,C程序员总是要考虑内存的申请与释放;当C++程序员在欢乐的使用STL库时,C程序员必须自己搭建所有的数据结构。
在C语言的学习路上,绝对没有学习其他语言那么多鲜花,这是每一个C语言爱好者必须接受的事实。
2、不枯
其实,人都是需要动力的,凭什么别的程序员可以通过漂亮的程序享受MM的崇敬和同学的赞叹,而C语言程序员就只能在0和1的世界中与电脑沟通。其实,学习C语言的过程完全可以是快乐的。
大家在基础内容了解的差不多时,完全可以循序渐进设计一些简单的趣味游戏程序,从贪吃蛇到俄罗斯方块,从搞怪碰碰球到连连看,从扫雷到雷电,甚至还可以是植物大战僵尸和愤怒的小鸟,编写一些在界面上简化的趣味游戏程序来,同意可以激起自己的兴趣并获取老师、同学尤其是MM的阵阵掌声。枯燥,是因为学习并非玩耍。不枯,是因为要像玩耍一样的学习。