自己的大脑要有一个编程的思维

来源:互联网 发布:企业软件防火墙排名 编辑:程序博客网 时间:2024/04/30 17:56
作者:如鹏网 59362008 原帖地址:http://www.rupeng.com/forum/thread-4811-1-1.html
 
这篇文章,是写给进入编程大门但却突然发现除了有激情剩下的都是迷茫新手,请保持你们的激情,那是最纯粹的动力。
也希望你们在以后的学习过程中,能不走弯路。 记住,机会总是有的,但你要先坚持住。


一把剪刀 在有的人手里,他只能把一张完美的纸剪得体无完肤,但是在剪纸艺术家手里,却能妙笔生花般的剪出无与伦比的窗花,
那把剪刀 就是编程语言(不仅仅是C),剪纸艺术家就好比是得道的编程大师,而那个不幸的可怜人,就是还没意识到自己处境的人(是不是你呢?)

-------回想一下,你用多长时间学会了用剪刀?-------
有一个人问我,学会一门语言需要多长时间?,我给他一个答案,就是我学会C语言所用的时间,3天!(我学的是机械,学C完全是爱好)
第一天,到新华书店买一本《C语言程序设计》,回家,放在床上,接着去玩CF。
第二天,把目录,编者寄语看完了。继续CF。
第三天,把整本书一页一页看完了。并做了笔记。我就是怎么学习C语言的。

这就是我学C语言的全过程。有人笑了,
好,现在你问我关于C的问题,int是什么? 指针是什么? 我都可以精准的回答你,如果你又问,书里面的汉诺塔问题不用递归怎么解决? 怎么编写一款试图软件?
我回答,我不会。
你不说你已经会C了么?  我反问 ,你提的问题是C的问题么?这些问题只可以用C解决么?很显然,不是。
举个例子,还是上面的,所有人都清楚剪刀的构造,都会用剪刀,但不是所有人都可以剪除完美的窗花。
你问的int是什么??  指针是什么?  就好比问我,剪刀是有什么构成的?这谁不知道! 但你问我你能编写一款视图软件么? 就好比问我,
你会剪窗花么? 我当然回答,不会!
学习C语言,只要把基本语法搞懂了,理解关键字含义就行了,甚至不必去记它! 它又不会丢,它就在书上,忘了就去看就行了!怎么学C语言?就这样学!
C(编程语言)只是一种工具!!就好比是一把剪刀。剪刀是拿来用的,不是用来研究的,不过很遗憾,有很多人至今还在研究剪刀。
我最终要学习的是方法,不是C本身。学习C本身只是其中很小的一个阶段。


------你是怎么用剪刀捡东西的?-----
那个人又问我,为什么我看书上的例子都懂!怎么我就写不出程序呢!就不知道如何下手!
举个例子,很好,你会用剪刀了,下面就跟着大师一起一步一步的去剪窗花了,大师剪完了,你也剪完了。然后大师说,你自己再剪一个给我看看。你突然蒙了,忘了大师是从那一刀入口的。把握不住问题关键的切入点!根本不会设计算法!
书上的程序很容易就看懂了!这是作者有意这样做的,但他真正的目的不是让你看懂程序!而是让你学习他的方法!什么方法?找问题切入点的方法!(就是分析从哪下手,从这下手后如何设计算法的方法)
书上每到例题的解答前面一定有这样一段话“我们可以这样做...”,“这样做”就是作者思考的全过程,也是作者找切入点的全过程。你们读书的时候注意到了么?这就是多读!
如果你能这么想,那这个问题你就明白一半了,怎么还有另一半? 对,就是去写程序!这就是多做!
能找到切入点了,也能画N-S图了,下面就去疯狂的写程序吧!久而久之,你就会发现,当一个问题摆在我面前时,我就有种“他可以被解决的”的感觉。
这种感觉,就是你解决问题的切入点!


-----你用剪刀都剪了些什么?------
那个人又问(老是他 - -!),我也写出程序了,问什么老是出错!!或者一个问题解决了,突然发现有冒出一个新问题?
还是上面那个例子,有的人剪得窗花真是好看,但有的人剪出来而的... 我们姑且也把它叫做窗花吧 - -!为什么差距这么大?
同一个问题,别人写的程序简洁,高效。为什么我写的那么冗长,就像“盖”长城?
回过头来看看,你在第二个问题里面都做了些什么? 多看题,多做题,没错。

但你看的都是什么题?
你明白你眼前的程序出自谁手么?
网络上可以搜到很多经典程序,但这些程序的“经典”往往只是特定指向某方面的,哪方面。和他问题有关的那方面。就是算法的经典,但是格式,往往不“经典”。
比如你在写程序时候,还会用到 int i;?  如果用到了,那就是你还没有好的风格,习惯。定义要有实际的名字。这样可以减轻你思维的负担,如果i 代表总和,就应该写上 int sum;
当然,还有代码的编写规范,都要注意。(这样不会因为你的疏忽而造成语法错误或书写错误)
做的都是什么程序?
举个例子,你正在做一道题 求 1+3+5+7+.... 恩 ,解决了,然后,你又拿起了另一道题开始攻坚 求2+4+6+8.....  - -!
你也在用工的做题,但你一直在做无用功! 要学会举一反三,做大的节约自己的时间与精力,编程是很辛苦的。没有这么多时间来浪费。借如鹏网的话就是 一通百通!


当你在看题的时候,你在想什么?
当你拿到一些经典的程序并读完他时。会过头来,想一想,你从中得到了什么?就像前面读课本里的题目时,你有没有注意作者在例题前面写的思考过程?
现在,没有作者的思考过程给你读,你要自己去理解,去感悟,去极力的把自己想象成这个程序的作者,如果是我,我会怎么做,这个作者有是怎么做的,问什么这样做?
对有些人来说,很痛苦的过程。但对有些人来说,这是乐趣。就看你自己怎么想了。
你是如何做题的?
看了很多程序,看了很多经典,当你开始解决一个问题的时候,你有没有把这些经典应用进去?或者你有没有想到用这些经典?
你能不能发现比这个经典更经典的算法?
这就是个人的能力,绝不是单单做题,看题,看经典能解决的。要从方方面面做起。

相信新人看了上面的问题,应该对编程有了一个感性的认识,应该不会太迷茫了吧,这也只是我个人的观点,可能不太正确。但也算一点经验,欢迎参考。

如果有什么不同意见,欢迎指出。
 
如鹏网 http://www.rupeng.com 在校不迷茫,毕业即辉煌

 

原创粉丝点击