签到

05月05日
尚未签到

共有回帖数 0

    李小主任

    等级:
    别人我懒得管些什么,我只说说我自己吧。这件事曾经在一些群和帖子里说过,现在整理一下在这里。


    misakamm回忆录:记得是小学五年级的时候,手上没什么零花钱,并且家里有台古董级的电脑还不能上网,因为父母不知道上网为何物,只知道电脑能帮助学习什么的,可能被不知道谁洗过脑,就给偶买了台二手古董,说是给我奥数一等的奖励。然后,就开始轮到我被洗脑,先是无聊去逛书店的时候,看到某书名游戏编程神马神马的,就随便看了几眼,啥都看不懂,但知道了游戏大概就是用编程弄出来的,然后我就想,如果编程就是让机器按次序执行你的指令,像放电影的话,一个俄罗斯方块似乎需要好多好多图片啊,这有可能吗?怎么都觉得不对劲。好像漏了点东西,这货应该要能做判断,但光判断也不行啊,要有判断,那就不是放电影了,要打乱放的次序了,并且还不能只放一次啊,编程能做这些吗?当时就很白痴的在想这些问题。反正没想通,没搞清楚编程是啥的情况下,想这东西是没价值的。于是,我就找回那本书,找到前言和目录看,看到它说,要开始编程,先要安装一个VC6,感觉明白了,就放下那本书,找VC6的书看。结果找了好几本,没有一本能看明白的,于是又去翻前言和目录,看了半天,终于搞清楚了,VC6是编程软件,要用的编程语言是C,先要学C的语法。然后再找C的书,翻了一下前两章节,就讲了一段Hello World的代码,简单解释了main和printf,这个输出一行字符串倒很简单,前面那么一大串的文字都不知道在说的啥,有的字还没看懂,直接忽略算了。看明白hello world后,直接看后面第三节,看到变量定义啊,类型啊,运算啊,输入输出什么的,好多好麻烦,现在手上没有笔记录,那就先看关键的,int见到的比较多,就理解了是整数类型,然后是运算,除了+-*/(),还有%是求余能看明白,其它现在不明白,不管它。再来是输入输出,除了printf第一个参数是要输出的字符串,其它啥都没懂,算了,再跳过。然后到下一章,说的是分支结构,说的就是if和switch,不过当时看了好久,没明白有了if要switch干什么,而且switch这么麻烦,干脆就不记switch了,同时也突然想起了之前我的猜测,原来真有判断这货,这样有分支就可以做复杂的判断了,不过还需要重复“放电影”啊,于是,继续跳到下一章节一看,果然,就有循环这种东西,和我的猜测一样,看来游戏就是靠这个搞出来了。不过我纠结的是,循环怎么那么多写法。。。仔细看了一会,感觉while最简单,这一个一看就记得了,其它的就不记了。然后遇到了break和continue,这个不难记,很好区别。看到这里,已经在书店里站了几个小时了,不早了,幸好这天是星期六,明天还有机会来看。


    到了第二天,我故意准备了一张32开的纸(就是作业本撕下来那种纸了),一支活动铅笔,早上9点在书店一开门就跑进去,再一次重复看之前看的内容,其实主要并不是看,是要想办法乘机偷偷抄下来,当然,避开摄像头神马的也是必须的,幸好那里摄像头不多,监视不到的死角太多了,主要怕旁边走来走去的工作人员。这样搞的很累,有的时候好久都没有抄的机会,精简要抄的东西就很必要了,何况一张32开的纸面积就不多。若干小时后,感觉抄的差不多了,其实就是补抄了一些之前不愿意去记的或者不明白的东西。大概抄的内容有:
    scanf printf 输入输出,%d替换为整数(其它的没记了)
    char int long float double nam[len],整数可+unsigned
    if () {} else if () {} else {}
    A; for ( A; 条件; B) {} // A等价,循环一次B一次
    while (条件) {}
    do {} while (条件);
    #include math.h 在 sqrt
    大概是这些吧,记得不太清楚了,主要就是记录一些关键的语法点。然后,后来用零用钱买的5块一张盗版盘,安装的vc6,安装还好,就是安装完后到底怎么使用呢?看着整个界面的英文,发了一会儿呆,我还是先试试,要是搞不定再去书店看看吧,然后想到,怎么也得先新建个什么东西再写吧,就在File那找到New,在新窗口里来回翻看了几次,看来看去都没有一个C的,倒是有一个C/C++ Header File和C++ Source File,搞不懂到底是哪个,那干脆都试试算了,试了一下,Header的总是搞不成功,于是重新开了一个,建立Source的,就copy个hello world进去,这个在乱点一通后,终于发现点那个工具栏上的三角箭头,就可以出来一个黑框显示hello world。终于能用了!!!
    后来的事情,感觉就顺利了一些了,我按我抄回来的内容,练习的写了一下一些小程序,包括计算 1+2+3+...+100,1+3+5+...+99,判断素数,还有解简单的特定类型的奥数题,反正我其实就是当成高级的计算器来玩。再后来再去书店找到一本编程解数学题的书,里面就讲了怎么去解一些奥数题,当时让我惊讶的是居然能解逻辑推理题目,看来我不能只当成计算器啊。不过可惜当时我没认真去搞明白那个例子,只是瞄了几眼。然后我目标就转移到写小游戏上了,因为当时奥数有取石子,24点什么的小游戏介绍,而取石子的有必胜思路,写起来不难,就用那个练手了(试过多种规则,三堆石子任意取的那个当时让我头痛了一阵)。而从那时,自己搞懂了写点小游戏以后,开始把目标指向写24点。我头痛了两天的结果是,把减法做成两种,除法也做成两种,于是运算次序只有两种类型是a*b*c*d和(a*b)*(c*d),两种分别写了个四重循环,就这样,最简陋的24点计算程序做出来了,当时已经很开心了。不过把计算结果要显示成平常习惯的方式倒很有难度(原本的输出是 1 1 13 2 | 1 3 2 表示(1+1)*13-2,1 10 3 3 | 5 3 2 表示(10-1)*3-3),实在搞不定,于是再去书店看书,看到数组,看到字符数组,看到结构体,终于明白可以利用字符数组做字符串处理来输出复杂的式子。后面怎么搞出来就不详细说了,总之给我搞的巨复杂,还按运算俦级去决定要不要加括号什么的,代码写的好长,也是我第一次写这么复杂的程序。


    以上就是我新手阶段时候的事了,补充说明一下的是,这个时候,那本C的书里我还没学的内容有:枚举类型,函数,指针,文件。同时,这个时候家里电脑仍然没有网络,有网络是初一后的事了。


    读这篇文章的新人们,如果你觉得你学了很久还觉得自己基本语法什么的还没搞明白的话,能否说下你是怎么学的?你看的资料是怎么来的?遇到问题你是怎么解决的?你有没有经历为因为一个不解的问题思考好几天吗?如果你是在充满网络的环境下学习的话,网络资源你是怎么利用的?
    再另外,“每一个人都有小白的时候,都有新手的时候,高手都是从新手过来的”,这句话我是同意的,问题是,你在你是小白的阶段,你做了些什么?在你把一个你思考了还不到五分钟的问题扔上贴吧或者论坛的时候,你觉得这样做对得起自己吗?“新手” “小白” 不是懒惰的挡箭牌,当你嘴巴上还在骂人的时候,你有没有想过为什么别人不理你甚至排挤你?你要知道,这样的“你”还有千千万万个。再者,别人小有成就的人,背后都付出了些什么你了解多少呢?你觉得你又付出了些什么?小有成就的人是你这样“骂”过来的吗?是依靠天天扔些“5分钟”问题上论坛这样学出来的吗?为什么别人就是比你强?真和智商有巨大的关系吗?是不是和你自己对待困难的态度更成关系呢?


    如果你现在是新手,打算要学的略有小成(别说什么成为高手这种飘渺的东西,就说能写个小游戏,小程序,大家承认你的成果)的话,想一下你打算怎么做吧。如果学了很久有一年了还办不到的话,似乎需要检讨一下,当时你到底你是怎么学的。请拿出你的毅力出来看看。

    楼主 2016-07-08 09:52 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知