从c开始,小小感悟

     c语言是众多编程小白进入编程大门的钥匙,不过许多人在学习一段时间以后就渐渐产生了困惑,枯燥的黑色界面渐渐让他们失去了"渴望",---我还不能制作出一款像样的软件,我还是只是在算数学题,我还是只是每天鼓捣prinrf.当你做出乘法表的时候或许你还有一点兴奋,当你学习排序的时候你还有一点苦恼,当你学到结构体指针文件的时候你就觉得C简直是太难了,而且什么也做不到,老师同学们所鼓吹的万能的C在我的手里为何变得如此狼狈呢?

       我也是从0开始,我也遇到类似的疑惑,但是我没有怀疑什么,我曾经说过,你所有为之付出的努力都会获得不同形式的回报,而我自己也是坚信这一点的.
学C大概一年多,也有一些感悟.C是一种博大精深的语言,仅仅学习一年的我无法深入其精髓,未可指如臂使,未可炉火纯青,但是,我认为我达到了新手学习C的终极目-----培养编程思维.或许这个目的玄而又玄?.
C语言是简单的,我所谓的简单,是指C语言没有其他高级语言驳杂的语言特性,基本的语句,流程控制,数据结构...只从这些简单的语法来说,似乎你仅仅花费几个星期就可以搞定它了.
C语言是复杂的,语法并不能解决问题,解决问题的是你的思想,语法规范化,流程化,模块化的思想,而这就是你编程思维的核心啊.在这上边穷尽一生也是无法完全掌握的,我们只能不断进步,这是一个没有极限的东西.
       我从高中开始第一次接触编程,所谓的接触,也仅仅是微机课的教材上边那三言两语模糊不清的VB罢了,我强烈的好奇着,把它看了很多很多次,当时的我不知道学习编程时一个怎样的流程,更不知道我一行代码也写不出的原因是这本书信息太少太少,我只是认为,这太难了...但是我依然存有希望,一颗种子已经埋下了,它的名字叫做---CREATE
高中三年很快就结束了,在此期间,并不只是无聊的学习,我们也有假期,没有那么多票子去上网,我和小伙伴有自己的游戏,被我们称之为"棋"的东西.
不过,"棋"这个名字难免会让人误解,还是需要进一步描述下:所谓的棋就是我们自己创造的纸上游戏,比如自己定制的RPG,我们会花不少时间画世界地图,地图 就是许多方格,不像样的建筑,贩卖装备的NPC,弱鸡的炮灰小怪,强大的boss.然后设计一些职业,属性确保游戏多样性和平衡性,制作人物卡,上边有自己的数据HP MP AT DEF 等等,所谓的背包就是花几个格子(这比写代码要简单多了!),所有的道具都手绘并记录在商店里,买入的时候...自己画上去....,设计技能,如何战斗等等等等,一个游戏下来 不知多少张纸...几个人在一起,玩得不亦乐乎,各种创造性的系统不禁让人眼前一亮,我们甚至想要制作一个三维对战系统,不过由于数据是人算的,计算量太大了,即使有计算器,也会导致战斗的无趣和困难,此计划不了了之..
另一个自制游戏就是卡牌,自己制作 任务 技能 流程等等 我设计的一个卡牌游戏至今还能想到 有骑士 会回复 有死灵法师---是个老不死(真难死) 还有战士(攻击高) 地风水火为属性卡 还有加星的星标属性卡 还有回复卡等 不过以我目前的能力,用代码写出来还真是一个巨大的挑战啊!
似乎有些跑题了,呵呵,从我们制作游戏的时候开始,CREATE的种子,就已经萌发了.我还记小伙伴说过的那句话"要是有电脑帮我们自动计算这些数字就好了!"
 
       高考结束,无聊的大暑假就在散漫中度过,真是可惜.
       志愿填报,毫无头绪,计算机?看起来不错(我当时仍然没有编程的概念!!!!!),机械自动化?似乎也挺帅的!电控?是啥?(我不知道,,不然我就报电控了)
       选了几个分数相近的学校,首选计算机(软件工程的学费太贵,我不想给家里太大负担),接着就是机械自动化之类的,剩下的没填完的,就空着了......
       辽工大计算机科学与技术专业,录取通知书上如是说道.
      CREATE长出了几片新叶.
      闲的蛋疼的大一给了我充足的时间,了解到我需要一门编程语言(上过几次课以后,我就知道要code了),C语言是首选,正好下半学习要学,就是它吧.找资料的时候迷迷糊糊的就进入了自学去论坛,说实话我不知道论坛是个什么玩意,看视频的时候我加了站长的QQ群,没想去加飞哥本人的QQ,感觉人与人之间是有差距的,呵呵,我的小心理就不多说了,....
根据群里的言论,我下载CPP来看,寝室的小伙子们也觉得我略屌,竟然看起专业书籍了....不管,我一向是这样....大一上学期的我没有电脑,不过我会求助于万能的网络,从树上我知道我似乎需要一种软件,来帮助我对我写的代码进行一种叫做   编译  的操作,百度之""手机c语言编译器"....当时百度出的东西真是..又加上我还混淆这编辑器...结果可想而知..但是我继续搜索..因为没有这玩意我学不了....终于给我找到了C4droid!
       安装过程一波三折,不过这并没有打到我,微机书上乱七八糟的VB我都能看几遍呢.................
      小心翼翼的输入,错误在所难免...不过CREATE已经开始成长了!
      这时候,CPP我已经看不下去了,对于一个小白来讲,这本书是个折磨,我开始主要看飞哥的视频,看完了就用手机写代码,机智的我在逛贴吧的时候发现了适合编程各种符号的输入法,所以速度还算可以,那段时间仿佛着了魔一般,我所有的空闲时间基本都在看视频写代码,而且,我并没有觉的自己很累.从那个时候我就知道了什么才叫自主学习,我确信,我已经爱上它喽.
我以并不是很慢的速度学习到了循环,至此遇到我人生第一大难题....99乘法表,,说实话这让人抓狂,如果说if符合人类的思维的话,那么循环嵌套在当时的我看来就是反人类!循环嵌套是怎么运行的??什么控制行列的?他们说的话为何我不能理解?我看着人家的代码根本是理解不能!什么\t?\t就能成解题状?我试着用大脑模拟下嵌套的循环,这似乎是在折磨我...有些东西,真的是自己做过才会清楚.我把别人的代码扔了,别人的代码除了让我头疼到大脑发热意外并没有一点作用,,,还是有的,就是我知道要用嵌套了.
一个下午的时间,我成功了,嵌套一下子变得明了,几天以后,我觉得"这并没有什么大不了 嵌套而已"
我开始不甘寂寞了,他们写的贪食蛇真的好厉害!
      有人告诉我,学完C就能做了!
      然后------------我把视频直接按到了结构体,文件被我放弃,原因是:那个游戏里没用到.
      飞哥开始写推箱子教程,我兴奋的跟进,万事开头难.飞哥的代码写到移动,我就已经濒临崩溃,我抄了一遍代码,把我能理解的都用文字注释在上面,认真的像高中的笔记.
阅读7遍-----仍然没有看懂.我像飞哥阐述我的疑问,我的疑问仅仅是我看懂的那部分的,关于代码结构的问题,许多我疑惑的东西都是为了所谓的"增加代码可读性",但是为什么,那却成为我的障碍呢?我重新学习了结构体,枚举等,在看代码时似乎抓住了一点感悟,在移动物体时,我抛弃了飞哥的代码,自己开始写了.飞哥有事更新缓慢,我提前吧我写的东西放了出来,我的进度已经超过飞哥了,哇哈哈哈,我确实笑了.
      最终我还是写出来了,虽然简陋无比,500多行的代码依然让我自豪.
      随后我就开始写贪食蛇了,我发现他施舍还要简单一些,但是蛇的移动可把我难得不清,缺乏经验的我并没有想到用数组报讯蛇身,难以想象当时我的死牢过程,我仅仅用一个二维数组处理所有数据.带来的副作用是代码体积一下子大了许多.又是500多行.
那时候我也算是一个小高手了吧,嘿嘿.
      这个过程真的让我成长不少,C语言不是让你变得多厉害,C解数学题不是真的为了得到答案,卸游戏也不是为了能拿出去玩,所有的一切,都是为了你能用编程的思维去分解进而解决一个摆在你面前的问题,让你知道多种情况用分支,并且能合理的处理分支条件,让你知道,重复动作用循环,并且能很好的设计循环条件和循环体,让你知道,一个大问题是如何有多个小问题组合而成的,如何能各个击破!方法和逻辑才是我们学习额主题,而C,是工具!
      从0开始的每一个人,无论你学习哪一门语言入手,都要经历编程的方法和逻辑训练,为什么让你1+到100,为什么让你算方程组,卫生呢让你输出99乘法表,为什么让你寻找质数等等等等,到此,还不明白么.
     C,我敬你一杯茶.
posted @ 2015-09-16 10:40 Smalldy 阅读(...) 评论(...) 编辑 收藏