给编程初初学者的建议——自己的一些想法

1 篇文章 0 订阅

学编程,刚开始:

  

如果是学VB的话会觉得编程挺有趣的,因为VB直观,而且没有所谓的容易搞错的指针;

如果是先学C的话能为以后学习各种其他语言打好最结实的基础,因为C的语法很像"编程的思想",C的能力很强,也很低层,C更重要的是带给初学者一种编程的思维,譬如说,变量、地址、值、函数、结构体(Structure)这些在每种语言都会有的,而C的语法又是对这些概念的最简洁的表示,而C++中的面向对象的概念里头的类(Class)其实就是一个加强版的结构体(Structure);

如果是先学C++的话,因为C++兼容C语言,所以在要搞清楚C的指针的概念的同时还要搞清楚C++的面向对象的概念,什么继承、派生一大堆需要搞懂,所以C++不宜作为编程初学者的首选语言(除非初学者很牛);

如果是先学C#的话,也没必要,C#里面很强调类、命名空间的东西,而且因为涉及到委托之类的新鲜的东西,它即使声明一个变量也要"new"一下,这里的"new"与C和C++的变量声明很大不同,C#里头几乎任何东西都是以类(Class)为基础的,连一个简单的变量也不例外,只是不明显而已,所以学C#之前最好已经学过一门编程,并对类似C++里头的类(Class)、继承、public、private、protect的概念有所了解。

  

而学编程,完整看一本书是有必要的,因为是基础,所以最好对那个语言的每个方面(即使不很清楚理解)都了解一下,有说谭浩强C语言那本书编得很应试什么的,其实那对于开发或者高手来说是很没用,对于入门来说还是挺有帮助的,但是千万不要以为对这本书看懂了,也做过示例程序了就以为自己懂了C语言,其实那离懂C还差十万八千里。那些考试的例题,或者你自己想的例子都缺少一种"实战"。所谓实战是指用一种语言为你所用,譬如说你要编一个小游戏,搞一下计算机图形学里的基础画图的算法就是一种实战,或者叫做应用。特别是出现的函数较多,变量传递较多时候,编程的实战才刚开始。所以如果一个教编程的老师整个学期都只教语法知识的时候(书上的例子不算),你就要意识到给自己找一些实战,其实只要语法稍入门了,而你又对编程比较感兴趣,完全可以去应付实战的。不过孤身一人而不是真的有一门实战编程的课的话会有几个阻碍:一是自己一个人,最好能找多几个伙伴一起实战,那样才能有进步;而是即使你想实战编程,但又不是一个作业来的,没有一种压力给你,容易导致惰性,从而使效率很低;三是如果其他科目需要时间较多,造成时间不够。

所以建议教编程的老师在讲编程的时候最好能多提一下之所以要学这个编程是为了什么,这个语言能做什么,并给一些有趣而又实用的例子给学生看,或者介绍一些编程界的时事,才能不至于学生在学的过程中都不知为何而学,学得枯燥。有目的的学,动力会大很多。

对于老师来说,还有一个最最重要的是:一定要相信自己的学生是行的,有潜力的,给学生信心,譬如说,给一些稍难一点的"实战"给他们做(但又估计学生的水平+努力是可以做得出来那种,譬如说100*100的bmp格式文件的读取并显示等),但不要求作为作业,并保证会对这个实战做指导,并对他们说"你们能行的!",再假一点的话,装正经的说"你们能行的!我过来人还不清楚么!你们的师兄姐都是这样的。你们没问题。"

这样才是真正的学编程而不是学应付考试、学得到学分,但大概很多老师没这个闲情罢了。

  

初学者学一种编程语言不要以为我学了这个就能编个windows系统或者Photoshop出来,其实作为编程的初学者,你学的第一门语言并不重要,因为编程语言都是那样的原理的,都要用到变量,用到函数,变量有不同的类型,只是功能稍不同,语法的名字稍不同而已。你学的第一门编程语言只要能够编出一些小例子就可以了,拿C来说,它本身很没趣,连个直线都不止怎么画(但有一个vcGraphics的图形库直接复制进VC的对应目录就可使实现简单的画图【下载地址:http://code.google.com/p/vcgraphics/ 】,你就可以"实战"了。)怎么办呢?其实C可以做很多东西,但是这是需要你对C语言有较好的学习理解后才能体会得到的。一般一个学编程的人在将来极少不再学其他语言的,一般都会学其他语言的,但是,如果你的第一门编程语言学好了,后面你在学其他语言都很快上手的,譬如说第一门学了C,第二门学C++的话,就可以只看C++里面的类(Class)、继承、命名空间之类的新东西了,其他很多都是复习C语言的,而且如果你之前理解了C里面的结构体(Structure)的话,类(Class)的理解对于你来说就简单很多了。而从C++到学C#的话也类似,因为C#里面很注重类(Class),命名空间(namespace)之类的,语法也类似,C#里多了委托,并且声明变量和数组有所不同,但不会很陌生,Google一下很多解答的,与你一起疑惑的前辈多的是。

  

总之,学编程:

  1. 老师的教学方法要适宜,不能应试教育,学生以后必然会知道你到底有没有用心去教他们的,有没有浪费学编程的黄金时间;
  2. 老师要相信自己的学生有能力做"实战",而不单止会考试;
  3. 对于初学者,不要认为学那个编程都不知它能干什么。每种语言都很强大,最大可能是老师没给你们讲清楚它能做什么,或者你根本就对编程不感兴趣(其实编程一般不会没兴趣的,只是方法问题);
  4. 一般学编程的人日后都会接触到3门以上其他的语言的;
  5. 编程语言都是有同性的,不会没学一门都想初学第一门那么麻烦的,你会很快找到两种语言之间的不同点的,并学你之前没学过的新特点,也复习编程的思想;
  6. 通常不是说某种语言能做什么而不能做什么应用,而应该是"某种语言能比某种语言做得更好后更快";

  

最后,个人建议,(如果你是学GIS或者涉及到IT方面的或者你本身就是计算机专业的)学编程的顺序比较好(只能说比较好)的是:

    

  

  

  

当然,不是每一门都要学得很精,但是至少要有一门是精的(C++、Java或C#之类的)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值