主题:【原创】三年级也可以学编程 -- 月色溶溶
最近我在学编程。
我会去学编电脑程序,是因为我这儿一个小学五年级的孩子想学电脑编程,我去咨询“专家”,专家说,当然可以了,其实小学三年级就可以开始学编程序了!我一听,嗯。。。我虽然数学不好,但是怎么也不会比不上小学三年级孩子的数学啊,就算是我们来比奥数!那我也要学编程。。。要是真学会了,那就牛大发了。
其实,在我的概念里,程序属于天书,编程更是我一点也不了解,而且是带点畏难情绪的一点也不了解,因此需要仰望的领域这一。但是跟小学三年级的孩子比还是让我有了点信心。
我问专家:我也要学,我先去买本书?
专家的教学方法很独特,他说:买什么书?不需要,你不要用文科生的办法来学编程,就跟大学里那些女生似的,考试一百分一百分,却解决不了什么实际问题。来,我来教你怎么开始!
他说我可以学C语言,那是非常有用的一种编程语言。先让我下载了一个程序,后来我知道那叫“编译器”,编程序的工作就在那里面进行,然后,就从printf("hello kitty!");开始,要我从实际操作了,讲了几个程序,他就让我从编译器自带的一个教学资料自己学习,不懂可以问他。
可是这么学我有点不习惯,有点茫然,觉得摸不着头绪,我学东西喜欢先从整体去把握。于是我就去网上找资料,看了一些人家的学习心得,又翻了一些教程的开头部分。对c语言有了一个大概的了解,专家还给我讲了一些电脑工作的基本原理,于是,我有了自己的对编程序的一些领悟:
对编电脑程序来说最重要的是三部分,一个是cpu,一个是内存,一个就是你编的程序。你编的程序是存在内存里的,那可不是虚拟的“存”,是真的能数得出来这个数字藏在内存第几格里的那种实际的“存”。然后编程序的时候,你一般先要对你需要解决的问题设计好解决的办法,里面需要有几个数字或者符号的位置,你就先定义它们,其实就是在内存里跟种树似的挖好几个坑,表示我要在坑里种树了。然后你用那些程序语句告诉cpu对几个坑怎么去操作。一点你编好的程序,cpu就开动了,按程序告诉它的步骤对那几个坑里的数据搬来变去,等搬完变完了,正确结果就出来了。
其实,电脑最强大的地方不是它能解决多复杂的问题,而是在于它速度快不怕累还不会对重复劳动感到厌烦疲倦,而我们实际生产生活中需要解决的很多问题,恰恰是这种大量的重复的或者因为简单问题叠加而显得复杂的问题。于是,我们编电脑程序,其实就是去找到把复杂问题分解分步,化为特别简单的小问题,让电脑不厌其烦地去解决,电脑速度快,你一按程序,它就出来结果了,那就显得很强大了。
这就是到现在为止我对编程序的“领悟”,当然,我开始学编程其实才两个星期。。。以后一定还会继续有很多“领悟”的,也还会碰到一些可能连专家也解决不了或者我自己听不懂学不会的问题,照平时看来,西西河有很多IT男,那真是程序员的宝库啊。。。所以我要把问题先放在这儿,到时候可能会很有用。。。
下面的对话,可以看出我的“雄心壮志”:
我:我真能学会编程序吗?
专家:当然能。
我:我能学很厉害吗?真去做程序员也能的那种厉害。
专家:不能。
我:为什么?!
专家沉默。
下面是一个例子:能看出我想干嘛吗?
#include "stdio.h"
void main()
{int a,b,c; /*挖好三个坑*/
printf("please input a and b:"); /*提示在坑a和b里种上树*/
scanf("%d%d",&a,&b); /*在a和b里种上树,就是赋值,有数据了*/
c=a+b; /*主要计算步骤,也就是在c里种上树*/
printf("c=%d",c); /*把c坑里的数据显示出来,就是答案*/
}
我自己看着挺对的,却运行不出来,哪儿错了呢?谁能告诉我?
应该是 #include <stdio.h>
<> 与 “”寻找路径不同
void main()后面才自己填.
20年前编程从C开始学,是没办法的事。现在编程从C开始,而且是业余爱好,实在是属于在摇篮里扼杀婴儿的行为。把武林秘笈五块一本售卖给小朋友,把业余爱好者编成业余不爱好者。
现在有很多初学者可以轻松掌握的编程语言,Python, Ruby, Javascript。都可以完成实用的应用程序。
当这些语言不能满足要求的时候,再接触C不迟。那时侯应该已经可以熟练掌握大多的编程概念,只需要再增加几个新概念而已。
Python, Ruby 网上都有很多中英文入门教材,百度一下,越短的越好。一个礼拜基本就能掌握。然后一边编程,一边参考函数库说明书就可以了,背都不用背。
编程的过程,一半是打字,一半是查函数说明书。类似开卷考试。
想要熟练掌握一门语言,就编一两个对自己有用的小程序,自己一直梦想中存在的方便平时干事儿的小工具。
比如一个管理自己写过文章的个人文件归档程序,或者搜索硬盘上文章内容的文件查找程序,某个网站信息变更的提醒工具,文件批量改名的工具,单位转换器。。。
也许有现成的工具,但是自己写的,用起来顺手,还可以随时添加新功能。
大概正规的得从这儿开始吧.
字符问题,试了下你的程序,把每一行后面的Tab或者空格都去掉就好了。
学了C,学其他的基本只有语法问题。学了c,可以对地址,内存有清晰认识。
不过转到OOP,可能稍有点不适应。
英文空格是一个字节的,仔细可以发现两种空格的宽度不同。
所以编译器不认识,可能给出一些奇怪的语法错误提示。
除了注释和字符串,程序里只能出现标准的英文字符。
汉字输入的时候要注意全角和半角符号的转换。
我刚才再去写的时候其实是一行行复制的,每行的里面的空格没改,所以应该没问题.那么是换行时候的问题?换行总要回车吧?
不过,楼下子功能说得对,c的语法太严格,而且有很多陷阱,一不留神就出错,还是从python之类的开始学比较好。
可能是你输入汉字注释的时候,全角和半角转换设置问题,输入了全角的汉字空格。
拷贝和复制按说不会有问题,难道是铁手的网站自动转换的?呵呵。
仔细看了一下,你的程序下面两行用了汉字空格,其他正常。
scanf("%d%d",&a,&b); /*在a和b里种上树,就是赋值,有数据了*/
printf("c=%d",c); /*把c坑里的数据显示出来,就是答案*/
象楼主这样的程序学学无害大脑的,呵呵。
最多学到数组,千万记住远离指针就对了,特别是多重指针、函数指针神马的,对养颜特别有害的。