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,我敬你一杯茶.

从c开始,小小感悟的更多相关文章

  1. centos php扩展开发流程

    原文:centos php扩展开发流程 一.安装php centos 默认 yum 安装 php 版本为 5.3, 很多php框架基本上要求5.4以上版本,这时候不能直接 用 yum install ...

  2. Something about SeekingJob---TelInterview(电话面试)

    昨天和今天分别收到两次电话面试,有一点小小感悟,遂注之. 作为一枚还未毕业的大三狗来说,我在想,找个实习真的是西天取金,必定要先经历九九八十一难吗(伤心)?所以在这里整理了电话面试遇到的问题: 集合框 ...

  3. IDE看代码,挺好

    初学编程的时候总是收到各种警告:“刚学习编程千万不要用IDE,否则会有xxxxxx的后果”.现在工作后发现使用IDE可以方便编写和查看代码,对于较大的项目来说有很多代码,代码之间的关系也比较复杂,ID ...

  4. DoTA与人生

    一个dota菜鸟的人生感悟                接触Dota有了快3年之久,3年里可以经历很多东西,经历了很多东西之后就会有很多的感悟,有些感悟抽象的表达不出来,但是借助于dota,可以间接 ...

  5. 安晓辉大神的感悟:如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步(对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。时刻要牢记在心的:培养自己的稀缺性) good

    从技术支持中途转战软件开发,如今从事编程工作已十多有余,2014年CSDN博文大赛编程语言组冠军.CSDN Qt论坛的版主安晓辉老师从今天开始,坐镇CSDN社区问答栏目的 第十四期,届时会接受广大网友 ...

  6. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

  7. 关于png、jpg、gif切图时的使用感悟

    关于png.jpg.gif切图时的使用感悟 曾经切图时都是一股脑所有图全切成jpg格式,最近突然心血来潮简单的研究了下其他图片格式的具体属性,才突然发现走了不少弯路,并没有做到使图片用最小体积展现出最 ...

  8. 2016第三届C++大会参会感悟(上)

    继05年第一届C++大会,09年第二届,2016年10月28日-29日,在上海举行第三届C++大会.讲师主要有C++之父 / Bjarne Stroustrup,前Facebook研究科学家 / An ...

  9. (转)小小科学家的归来 by 王珢

    小小科学家的归来 by 王垠很多人来信关心我的现状,所以在写别的技术性文章之前,先说说我现在的情况吧.虽然自己追求的东西和经历都比较不同寻常,但是也许可以给奋斗中的人们一些慰藉和鼓励. 首先是超级好消 ...

随机推荐

  1. linux 循环处理文件夹下所有文件脚本

    #!/bin/bashfunction ergodic(){ for file in ` ls $1 ` do if [ -d $1"/"$file ] then ergodic ...

  2. 配置cas

    在给tomcat配置好证书的基础上做一下操作(可以根据上一篇博客进行配置) 1.cas服务端配置(最后更改一下服务器tomcat的端口号) 第一步:下载cas-server-3.4.2.1-relea ...

  3. BQ24296充电管理芯片使用过程中的注意事项

    BQ24296遇到的一点问题 概述:BQ24296是TI出品的具有窄范围VDC控制.基于I2C通讯的最大支持3A充电电流的开关式电源路径管理芯片.可以轻松实现2A以上的大电流充电,能量转换效率达到90 ...

  4. select框内容的编辑、修改、添加、删除操作

    // 添加 function col_add() { var selObj = $("#mySelect"); var value="value"; var t ...

  5. 物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探

    物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探 唐朝实验室 · 2015/10/30 10:22 Author: FengGou 0x00 目录 0x00 目录 0x01 前言 0x02 BLE概 ...

  6. tomcat配置项目的图片路径不在项目下的处理

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWA ...

  7. Linux下使用autoconf 和 automake 编译简单的HelloWorld

    使用过开源C/C++项目的同学都知道,标准的编译过程已经变成简单的三部曲:./configure /make/make install,使用起来很方便,不像平时自己写代码,要手写一堆复杂的makefi ...

  8. 手机号 和 email 的正则匹配

    手机号   /^1[3|4|5|8] \d{9}$/ email  /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/

  9. thinkphp下载远程图片到本地

    $url="http://www.test.com/test.jpg";//图片远程地址 $local="./Upload/test/test.jpg";//下 ...

  10. archaism remains

    Time past cannot be called back again.  时间不能倒流. Time tries all.  路遥知马力,日久见人心.  Tit for tat is fair p ...