这篇文章,是写给进入编程大门但却突然发现除了有激情剩下的都是迷茫新手,请保持你们的激情,那是最纯粹的动力。
也希望你们在以后的学习过程中,能不走弯路。 记住,机会总是有的,但你要先坚持住。
一把剪刀 在有的人手里,他只能把一张完美的纸剪得体无完肤,但是在剪纸艺术家手里,却能妙笔生花般的剪出无与伦比的窗花,
那把剪刀 就是编程语言(不仅仅是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..... - -!
你也在用工的做题,但你一直在做无用功! 要学会举一反三,做大的节约自己的时间与精力,编程是很辛苦的。没有这么多时间来浪费。借如鹏网的话就是 一通百通!
当你在看题的时候,你在想什么?
当你拿到一些经典的程序并读完他时。会过头来,想一想,你从中得到了什么?就像前面读课本里的题目时,你有没有注意作者在例题前面写的思考过程?
现在,没有作者的思考过程给你读,你要自己去理解,去感悟,去极力的把自己想象成这个程序的作者,如果是我,我会怎么做,这个作者有是怎么做的,问什么这样做?
对有些人来说,很痛苦的过程。但对有些人来说,这是乐趣。就看你自己怎么想了。
你是如何做题的?
看了很多程序,看了很多经典,当你开始解决一个问题的时候,你有没有把这些经典应用进去?或者你有没有想到用这些经典?
你能不能发现比这个经典更经典的算法?
这就是个人的能力,绝不是单单做题,看题,看经典能解决的。要从方方面面做起。
相信新人看了上面的问题,应该对编程有了一个感性的认识,应该不会太迷茫了吧,这也只是我个人的观点,可能不太正确。但也算一点经验,欢迎参考。
分享到:
相关推荐
总的来说,“易语言模拟大脑思维”项目展示了如何使用易语言这一中国本土的编程工具,来探索和实现人工智能的一个重要方面。通过分析和理解项目中的源码,我们可以学习到易语言的编程技巧,以及如何构建和优化模拟...
这是超清晰的pdf档 全新的思维模式, 让你在短时间内, 变成高手
标题中的“思维导图-sed (开发你的大脑)”涉及两个主要概念:思维导图和sed命令。思维导图是一种图形化的思维工具,它以中心思想为出发点,以分支联想的方式展现信息结构,可以帮助人们更加高效地组织和记忆知识。而...
这个压缩包文件“精品steam教育课件 Python趣味课堂 大脑智力逻辑思维锻炼 minecraft游戏05 建立一个里程碑.rar”显然包含了针对学生或教育者的教育资源,特别是关于Python编程和 Minecraft 游戏的结合应用,旨在...
接下来,书中提出了一个核心问题:为什么学习编程?编程不仅是一种技能,更是一种思考方式。它能够帮助我们提高学习和工作的效率,并在根本上改变我们的世界。书中列举了众多科技巨头的创始人的故事,如比尔·盖茨、...
总的来说,"易语言模拟大脑思维源码"是一个结合了易语言编程、人工智能理论、神经网络算法的综合性项目。通过研究这份源码,不仅可以提升易语言的编程技能,还能深入学习人工智能和机器学习的实践应用。
提高编程水平是一个持续且系统的过程,涉及到多个方面的能力提升。以下是一些关键点: 1. **扎实的基础**:编程不仅仅是写代码,而是基于计算机科学原理解决问题。数据结构、离散数学和编译原理等基础知识是编程的...
七维大脑是一个由认知心理学家提出的理论模型或思维框架,它并非传统生物学或解剖学上的大脑结构描述,而是用于模拟人类大脑在多个维度上的运作方式。这一理论为我们理解人类心智提供了新的视角,强调了大脑在时间...
《9-最强大脑之闪电记忆》是一款...总的来说,《9-最强大脑之闪电记忆》项目是一个绝佳的少儿编程学习起点,它结合了游戏化学习的趣味性和编程的教育价值,有助于培养新一代的数字公民,让他们在玩乐中开启智慧的旅程。
成为一个PC编程高手,不仅要求有坚实的技术基础,更要有创新思维、解决问题的能力以及坚持不懈的精神。本文将深入探讨工控行业中成为PC编程高手的八个法则,希望能为致力于提升自身编程技能的工程师们提供一些启发和...
综合来看,这份课程资料提供了一个寓教于乐的学习平台,让学生在享受游戏乐趣的同时,获得宝贵的编程技能和逻辑思维训练。通过这样的学习体验,学生们不仅可以掌握编程知识,还可以在学习过程中开发和提升他们的智力...
总的来说,这个“精品Steam教育课件 Python趣味课堂 大脑智力逻辑思维锻炼 minecraft游戏02 你好,我的世界”项目,旨在提供一个寓教于乐的学习环境,让孩子们在快乐游戏中学习编程,锻炼思维,为未来的信息技术世界...
Python趣味课堂 大脑智力逻辑思维锻炼 minecraft游戏09 感知脚下的世界.rar”包含了针对青少年教育的一个专题课程,旨在结合Python编程和Minecraft游戏来提升学生的逻辑思维能力和大脑智力。课程主题为“感知脚下的...
课件的主题是“发现你的位置”,这是在Minecraft游戏中常见的一个任务。在游戏中,玩家需要通过各种方法确定自己在虚拟世界中的坐标。在Python中,我们可以利用Minecraft API(如mineflayer或mcpi)来实现这个功能。...
总的来说,《Python趣味课堂:大脑智力与逻辑思维锻炼——Minecraft游戏06 清空周围的场地》是一门富有创新的教学资源,它以游戏为载体,寓教于乐,让学习者在享受乐趣的同时,提升自己的编程技能和逻辑思维能力。...
学习编程可以提升逻辑思维能力和问题解决能力,同时有助于理解和应对日益普及的人工智能技术。此外,编程还能帮助孩子们理解数字世界的运作方式,提高安全意识,防止网络诈骗。 4. **学习编程后能干什么** 掌握...
Minecraft游戏本身就是一个开放的平台,玩家可以通过编写脚本来实现各种自定义功能,例如自动化农场、建造复杂的红石电路等。将Python与Minecraft结合,让学生在娱乐中学习编程,提高解决问题的能力。这种"玩中学"的...
总的来说,这个压缩包提供的教育资源是一个创新的教育方法,它将编程与游戏结合,旨在激发学生对编程的兴趣,培养他们的逻辑思维能力,以及提高他们在STEM领域的综合素养。通过这样的学习,学生们不仅能掌握Python...
例如,学生可能需要编写代码来创建自动农场,或者设计一个自动寻路的机器人,这些项目都将充分调动他们的创造力和想象力。 此外,本课程还注重团队协作,鼓励学生通过合作完成项目,培养他们的沟通和团队协作技巧。...
总的来说,这个课程不仅提供了一个有趣的编程学习环境,还通过实际项目驱动的方式,让学生在实践中提升逻辑思维和问题解决能力。通过学习和完成自动化房屋建造任务,孩子们将不仅掌握Python编程技能,还能在游戏的...