自己的大脑要有一个编程的思维
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自己的大脑要有一个编程的思维
这篇文章,是写给进入编程大门但却突然发现除了有激情剩下的都是迷茫新手,请保持你们的激情,那是最纯粹的动力。
也希望你们在以后的学习过程中,能不走弯路。
记住,机会总是有的,但你要先坚持住。
一把剪刀在有的人手里,他只能把一张完美的纸剪得体无完肤,但是在剪纸艺术家手里,却能妙笔生花般的剪出无与伦比的窗花,
那把剪刀就是编程语言(不仅仅是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..... - -!
你也在用工的做题,但你一直在做无用功!要学会举一反三,做大的节约自己的时间与精力,编程是很辛苦的。
没有这么多时间来浪费。
借如鹏网的话就是一通百通!
当你在看题的时候,你在想什么?
当你拿到一些经典的程序并读完他时。
会过头来,想一想,你从中得到了什么?就像前面读课本里的题目时,你有没有注意作者在例题前面写的思考过程?
现在,没有作者的思考过程给你读,你要自己去理解,去感悟,去极力的把自己想象成这个程序的作者,如果是我,我会怎么做,这个作者有是怎么做的,问什么这样做?
对有些人来说,很痛苦的过程。
但对有些人来说,这是乐趣。
就看你自己怎么想了。
你是如何做题的?
看了很多程序,看了很多经典,当你开始解决一个问题的时候,你有没有把这些经典应用进去?或者你有没有想到用这些经典?
你能不能发现比这个经典更经典的算法?
这就是个人的能力,绝不是单单做题,看题,看经典能解决的。
要从方方面面做起。
相信新人看了上面的问题,应该对编程有了一个感性的认识,应该不会太迷茫了吧,这也只是我个人的观点,可能不太正确。
但也算一点经验,欢迎参考。
如果有什么不同意见,欢迎指出。