浏览 2497 次
锁定老帖子 主题:自己刚开始学习编程的感受
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-27
我一直在想怎么才能学好计算机,怎样才能学好编程呢,从学校里我学会了c语言,当然了最初的几个星期我对这门语言都是很茫然,不知道该如何下手,也许是老师的原因吧,但不能都把责任推给老师,学习本来就是自己的事,既然自己选择了计算机这个专业我就要把它学好,一直要学下去,虽然可能比不上那些编程高手,但会尽自己最大的努力的。所以在随后的日子里,我把C语言这本书自学了一遍,因为是用心看的,虽有很快就入了门,对计算机语言的兴趣也就越来越大,当然了对于一个初学者来说,不可能把它学的很精通,语法和算法学的有多好,但是尽可能的在学完每一个章节以后多上机,这对于学习计算机语言来说是至关重要的,纸上谈兵永远都达不到实战的效果,不管学习任何一门语言都是如此,否则就白学了,当然了上机还是要有一定的技巧,就我自己而言,刚开始上机的时候,很快就能把一个简单的程序按照书上写的输进去,然后运行调试,很快就能成功,刚开始只是熟悉一下编程的环境例如我用的是TurboC++3.0环境,其的文本编辑是用DOS画面,对于一个刚入门的人来说使用这个环境还是能很快的入手的,不要一下子跳到Visual C++这个平台,否则会得不偿失的,就像你不能刚出生就独自一人到世界去转吧。当然子熟悉环境以后就要多写程序,多调试,不要怕出错,出错可是你进步的催化剂呀,为什么这么说呢,因为当你在研究某一项语法的时候,你通过写相关的程序来去验证,但是成功了并不代表什么,因为这只是这个语法的一个分支,而且你对于这个语法的认识程度也不会有多深,这也许就是人的本性吧,对于成功的事情可能不会让你的大脑记忆犹新,但失败的事情会比成功更能让你记住的,让你印象深刻, 你要尝试着用不同的方法去验证它,举一个简单的例子。对于一个刚刚接触数组的人来说,一定会感到头疼,不知道该去怎么做,最好的办法还是去上机一个一个的去编写去调试。 #include<stdio.h> void main() { int array1[ ]={1,2,3}; //此数组总共有3个元素 int array2[4]={1,2,3,4}; //此数组总共有4个元素 int array3[4]={1.2,3,4,5}; //此数组的元素超出数组界限 int array4[5]={0}; //对此数组的第一个元素初始化为0,其他自动初始化0; /*如果你对 array4[5]={0}的作用还不是很明白那就写与其相类似的语句区运行看看,我 当初就不是明白,以为是{0},是对所有的元素初始化为0,就像array4[5]={a},是对所有 的元素初始化为a,所以你要用printf函数打印一下其他数组的值看是不是等于a;当然了 经过实践证明并非如此,其他数组的元素是0,这就有一点眉目了,你就可以不看书 自己总结出当对整形数组的第一个元素初始化的时候其他元素自动初始化为0。注意 我刚才说的话(1)整形(2)第一个,这只是证明了在这个条件下结论的正确性, 试着该变条件来去验证,通过这种方法可以让你对数组部分初始化的知识得到加深 ,这可比只是看看书强不止百倍,只看书也许看完之后就忘了,看了书只是按照书 上说的做,也不会达到很好的效果,最好的就是试着按照自己的想法对写出几个不同 的程度来去让自己有更深的理解。 */ /*也许你会问“//”“/* …… */ ”是什么意思呢,那就动手去尝试吧,记住看书只会让 你有个初步了解,上机时核心所在,当然了TurboC++3.0环境不支持汉语那就试试英语吧 */ int array6[6]={1,2,3 }; } 学完这门语言以后 最重要的是要掌握这门语言的思想,对于C语言来说就是模块化的思想,这是C语的灵魂,没有了灵魂,那么它也只剩下一个空壳而已了。 学习一门语言也是不够的,这会让你的思想只局限在这门语言的里,这会让你的思想很死板,对于语法的理解也只是局限在这门语言里,所以要多学几种语言,当然了学习语言是事类旁通的,至少我认为是如此,在学完了C语言后,就要学学C++了,不要认为他们很相像,所以就不要用心的去学了,这个想法是很错误的,虽然C++是继承了C的全部属性,但C++却新添了一个重要的类型就是类与对象,就像是人类与其太种类似的,因为C++的取材是源于生活的,所以在学习的时候一定要回到现实生活中去,这样才能更形象的理解类的本质(C++的灵魂)。因为C++有着庞大的语法体系,所以一定要像我先前说的那样多上机多调试,多犯错误,从中更深的理解C++语法的规则。在学完C++之后就有了C\C++的基础了(因为VB很简单所以什么时候学都可以,当然了学习了一门可视化的语言会让自己对可视化有一种形的直观上的理解的)然后再学习一门最最重要的课数据结构(C语言版的和C++版的都要去看看),从中可以教会你从现实生活的具体事例抽象到计算机语言这个层面,例如现实生活中的排队,火车初入站等,其实通俗的来说数据结构就是类,从现实生活的具体实例中,把其中的属性抽象成数据,把其中的动作行为抽象成函数。很多人都说数据结构很难,可能是没有先学习C++这种面向对象的语言,我当初就是这样,虽然C++ 和数据结构是同时开课的,但是初期自己真的很难理解,不过到后来就好了很多,自己不带用C语言的方法把几个很重要的数据结构给实现了,而且还用C++把其中的一个数据结构封装成了一个类,并用三个文件分别来存放类的的定义(类名.h),类的实现(类名.cpp)和类的调试代码(main.cpp),如果只学习数据结构的逻辑层面不学习其物理层面,那可以这么说你不是在学数据结构而是在只学习数学,在一个很浅浮的阶段(我并没有说数学,而是就数据结构而言的),过不来多久就会忘记,等于没学一样,可以说学习逻辑层面是学习物理层面的基础,基础是一定要有的,就像盖楼房一样,地基是一定要打牢打深的,但如果只打完了地基而不去盖房子,那么留着地基还有什么用呢。 在打完这些地基之后就要向更深的层面经发了,正如我所说的学习是自己的事情,不要盲目的学习,看被人学什么自己就学什么,要知道自己为什么而学,这就是我所坚持的,因为我想把VC++学好把windows编程学好,因为这才是真正的起步,所以我现在正在学习windows(MFC)程序设计,既然我选择了,就不会放弃,这是我的兴趣所在,以前自己很喜欢物理,但既然由于种种原因无法学习下去,而我选择了计算机那就要学好,可定会有很多障碍阻力,但我这个人就是无所谓,障碍越多越好,这样自己才能不断提高,当遇到一个瓶颈的时候,才能够突破。 这就是我所要说的,学习任何知识都是要循序渐进的,学习编程也是一样,总不能一口气吃一个胖子吧。在学习的过程中切忌把所学到的知识都学的很死,要灵活的去运用,要有开放的思维, 大家也许都知道定义一个类要用到Class这个关键字,但Struct这个关键字也可以定义一个类只不过在默认的情况下用Class定义的类里的成员是私有的,而Struct定义的类里的成员是公有的。我一直在想为什么要有 protect来表示成员的权限呢。现在我是有一点理解了,就像是父母留给自己的钱一样,父母可以用,但别人不能用,其成员就具有了private关键字定义的私有属性,但自己从父母那里继承的钱也可以自己用的,所以private就不适合了,应为他的钱不能被儿子用到,所以就要用到protect这个属性了,我想这就是当初设计者们所想到的吧。这就是我最后要说的,要站在设计者的角度去学习语言去学习编程这样会达到事半功倍的效果的。当然了,对于我来说,才刚刚起步,还有很多要自己去做,与很多还要自己去探索。 就写了这点东西,语文水平不高,请多多谅解哟![color=black][/color] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-28
seagod1988 写道 代码那一段给我看迷糊了··· 您的换行真牛··凌晨快2点的时候终于把我看迷糊了 对不上行··· 没办法了,写的时候挺好的,放上去就这位样了,对不住了 |
|
返回顶楼 | |
发表时间:2008-11-30
弄java吧..这也可以 编程...而且可以学到很多其他的东西...(越学越多)
www.sun.com www.eclipse.org 下载个jdk..和eclipse开发工具..就可以写代码来.很有意思. |
|
返回顶楼 | |
发表时间:2008-11-30
toeo 写道 弄java吧..这也可以 编程...而且可以学到很多其他的东西...(越学越多)
www.sun.com www.eclipse.org 下载个jdk..和eclipse开发工具..就可以写代码来.很有意思. java的编程思想和C是有非常大的不同的。。。 |
|
返回顶楼 | |