怎样学习C语言

原创 2007年09月26日 13:23:00

我的网站http://www.tigerion.cn 

题目是关于C语言,其实我主要想说说程序该怎么学,或者一点感悟罢了,在这里,我只想引用身边的几个人的例子,来谈一下对程序学习的理解

 第一个人要说到我了,我对程序产生兴趣,是听说程序可以作游戏,那时候是在初一,然而借来一本"G"-BASIC简明教材后,我便傻了眼。

陌生的词汇,古怪的逻辑,都是些天文的中文译本,头疼了好一阵子。

然而当时又没有别的闲书可看,我就整天捧着那一本书,什么方法都试过了,甚至倒着看过了,都没看出什么眉目,自己又没有电脑,只能不停地大胆地想象,然后满脑子的疑惑……

在这里停一下,上面说的便是我学习的风格:总要经历一番波折,瞎折腾几下,然后才会有偶然间的明悟-开窍了!我甚至没见过几个人有我这么笨,现在明白过来了,我总是一开始把事情想得过于复杂,造成狗咬刺猬的难堪的局面,然而竟然有意想不到的收获!但是不建议大家模仿这种风格,起码追女朋友的时候不能这样,生活中很多机会在于接手的那一瞬间,失去就永远找不回来了。

现在回来,后来偶然间,我看懂了一行代码,是print 语句,当时兴奋得要命,又仔细看了这个看了那个,一下子看懂了很多东西,像是在霎那间被什么给击中似的,立刻间醍醐灌顶。。。。

初三在学校学了FOXBASE,基本上自学的,我发现了一件奇怪的事,我这人是出了名的记性不好,然而当时背程序中的命令却是过目不忘,到现在还记得很多,也许是感兴趣吧,也感谢我的微机老师给我提供自由上机的机会!后来我又自学了QBASIC,初四暑假又学了一点C,那时学C遇到不少困难,当时我们学校机房连C语言都没有,我只好闷在家里,一本二级C教材,一本配套习题,整天发呆地想,把自己的脑袋当电脑cpu使,有时进入死循环,有时又彻底崩溃。我花十几天看完了一本书,做完了一本题,然而脑袋里充满了疑惑,由于没有上机实践的机会,我就凭自己的猜测与推理己慢慢建立了一大堆理论,十分得意与自信,但后来证明大部分是错的,害我花了很长时间去纠正,这是后话。可是,还是那句话不破不立,不阻不行。就像我现在有了电脑,整天泡在互联网的海洋里,感受着快餐文化,好久都没静下心来好好想点东西了.

高中还上过几节电脑课,只不过忙于应付高考,我将学程序的打算放弃了,到这里我该说下一个人了。
高中时坐我旁边一女生,她的文曲星里有BASIC,我偶尔拿过来编了几个小程序玩,她看到后很感兴趣,令人惊讶的是,她只看了三五个程序,听我讲了几个命令的功能,就能根据自己的想象编出小动画来,她此前是绝没有学过程序的!我曾一度怀疑过她的智商,然而她程序是如此之快,却让我的眼都瞪大了好几圈,比我当年高了好几个境界!我后来经常在想,是不是我当时的方法不对,程序到底应该怎样学。。。

一晃就到了大学,我碰到另一个让我佩服的人,跟我一样是学计算机的,他是偶尔看到我在编动画,然后十分感兴趣,便开始自学。他令人吃惊的是,指针,结构体,位运算等等,都没搞懂(更不用说算法和数据结构),只学了三种程序结构,现在只学了C半年,便自己能编出贪吃蛇,俄罗斯方块,扫雷,还有很多叫不出名字的小游戏来,现在又在写黑白棋,我知道我确实是走了不少弯路。
  程序应该怎样学,对C来讲,我觉得应该从画图学起。
  原因有二。
  一,画图程序很能振奋人心的,它能带给你浓厚的兴趣,这是学程序的关键。
  二,画图程序容易上手,很简单的道理,就能做出很漂亮的东西来。有很多东西甚至不用看课本,就能自己推出来(我认为推理的方法很重要,它是你自学的必要条件)。
比如画一个圆,从数学角度来分析,要确定一个圆,只需知道它的圆心(x,y)与半径r,那好一个圆就画出来了,circle(x,y,r);
其它的类推,再画一个立体的,选择立方体,再分析,只要知道两个对角的坐标就行了吧,翻一下课本,不是这样,为什么?你或许会想到,电脑屏幕本来就是平面的,用立体坐标的理论在这里,恐怕就不是最简单的方法。所以它采用的应该是两个平面图形平移。此处留下疑问,立体图形在平面坐标中怎么表示?自己慢慢研究,很浅的东西。
想作动画吧,想象一下动画的原理只是从一个图形变幻到另一个图形,不同地变幻就出现动画效果,那就可以画一个,擦了,再画一个新的,再变化。。。
数学功底好的话,从二维到三维,从静态到动态我认为是很快的过渡。
具体该怎么学呢,你可以多找几个画图的例子,敲到电脑里,多敲几个,慢慢地你就会知道哪些东西是干什么的,慢慢地就会自己做出东西来。
但这里不要沉溺太久了,先学画图只是帮助你轻松地入门(很多人C学完了还没有入门)。
从画图里暂时走出来,你应该打打基础了,这里不再赘述。可以边学边实践,物理,数学课本中很多问题都可以用程序来演示,来解决,尝试着多做些东西,这比你老学课本中的模型强多了,只有你自己去体会才能知道。

就到这里。

 我的网站http://www.tigerion.cn 

C语言再学习 -- 详解C++/C 面试题 2

占楼、年后总结

JAVA中native方法调用C语言实现学习

在java虚拟机规范的内存管理划分中,对于虚拟机内存空间划分中专门划了一块内存叫做“本地方法栈(Native Method Stack)”。本地方法栈是为了java专门用来调用native方法而划分出...

linux 下C语言学习路线

UNIX/Linux下C语言的学习路线。 一、工具篇 “公欲善其事,必先利其器”。编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的...

C语言学习笔记(一)变量声明的规则

声明是告诉编译器有这么个变量,但并不实现。定义就是实现这个变量,真正在内存(堆或栈中)为此变量分配空间 它们的本质区别是:是否分配内存空间,定义需要分配空间,声明不需要分配空间。 int ...

【黑马程序员】C语言学习笔记之基本运算(七)

--------------------------------------------IOS期待与您交流!-------------------------------------------- ...
  • kqygww
  • kqygww
  • 2014年03月11日 13:00
  • 711

数据结构学习笔记之链表(C语言版)

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表 由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分...
  • kimg_bo
  • kimg_bo
  • 2015年01月04日 18:34
  • 950

嵌入式开发之C语言基础第三天&第四天学习笔记

c语言(三)---运算符与分支语句 单字符接收与输出 getchar() 如果接收单个字符,可以使用getchar()函数 char ch = getchar(); 就会从键盘接收一个字符,...

C语言学习之复合数据类型

一、结构体 前面的数组它是同种类型数据的集合,那要是不同种类型的数据怎么办,就需要用到这里的结构体。结构体它的成员可以是基本数据类型,也可以是复合数据类型。 1. 结构体类型的定义 struct p...

IOS开发学习基础--------C语言(一)

今天开始继续博客,好久都没有写了。由于来到北京参加博看的IOS实训,所以重新将我的第一门编程语言C拾起来了。为了以后能够打好基础,还是每天写一篇博客,“好记性不如烂笔头”。             ...

C语言的大BOSS:结构体+单链表的学习体会

1.结构体: 本质上是一种在已有基本数据类型上复合而成的数据类型,它可以像int、float等类型一样使用(可以生成对象、指针、数组等)。 注意结构体与结构体变量的区分: 如: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样学习C语言
举报原因:
原因补充:

(最多只允许输入30个字)