注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风雨夜归人

专业收集资料,个人爱好!

 
 
 

日志

 
 

(经验分享)自己的大脑要有一个编程的思维  

2009-11-26 17:55:54|  分类: 技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这篇文章是写给进入编程大门但却突然发现除了有激情剩下的都是迷茫的新手,请保持你们的激情,那是最纯粹的动力。

也希望你们在以后的学习过程中,能不走弯路。 记住,机会总是有的,但你要先坚持住。

一把剪刀 在有的人手里,他只能把一张完美的纸剪得体无完肤,但是在剪纸艺术家手里,却能妙笔生花般的剪出无与伦比的窗花,

那把剪刀 就是编程语言(不仅仅是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..... - -!

你也在用工的做题,但你一直在做无用功! 要学会举一反三,做大的节约自己的时间与精力,编程是很辛苦的。没有这么多时间来浪费。借老大的话就是 一通百通!

当你在看题的时候,你在想什么?

当你拿到一些经典的程序并读完他时。会过头来,想一想,你从中得到了什么?就像前面读课本里的题目时,你有没有注意作者在例题前面写的思考过程?

现在,没有作者的思考过程给你读,你要自己去理解,去感悟,去极力的把自己想象成这个程序的作者,如果是我,我会怎么做,这个作者有是怎么做的,为什么这样做?

对有些人来说,很痛苦的过程。但对有些人来说,这是乐趣。就看你自己怎么想了。

你是如何做题的?

看了很多程序,看了很多经典,当你开始解决一个问题的时候,你有没有把这些经典应用进去?或者你有没有想到用这些经典?

你能不能发现比这个经典更经典的算法?

这就是个人的能力,绝不是单单做题,看题,看经典能解决的。要从方方面面做起。

  评论这张
 
阅读(265)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018