学习编程不只仅是学会各类语言,你还须要学习如何像程序员同样思考。若是你也在学习编程,你可能也尝试了许多课程和资源。可是,学习编程有不少层次,从学习具体的编程语言,到学习如何像程序员同样思考。每一个人的学习方式不一样致使教学过程变得很复杂。程序员
这里有七种学习编程的方式,视频、文档、听觉、触摸……,你须要找到最适合你的那种。从视频、文档到听觉触觉,如何辨认最适合你的学习方式呢?又如何找到最好的编程学习资源来知足不一样学习需求?编程
学习方式简单来讲,就是你学习新知识的时候所喜欢用的方法,这个方法能让你理解并记住新的内容。学习方式不是固定不变的。也就是说,你可能会有运用好几种主要的学习方式,但这些方式会随着学习内容的改变而有所调整。了解最适合你的主要学习方式有助于帮你选择合适的编程教程,从而得到更好的学习效果。微信
(图片中文字,从左到右)编程语言
第一行:视觉和空间,听觉,口头表达,身体运动,逻辑数学,人际社交,自我内在编辑器
第二行:图片、画面、空间理解,声音和音乐,遣词造句、演讲和写做,运用肢体、触觉,逻辑推理系统,与人相处,独处、自学学习
如下是七种普遍使用的学习方式spa
这类学习方式的特征包括使用颜色和图形、图片,以及视觉媒体。视觉学习者喜欢使用文本编辑器,由于大多数编辑器使用特定的颜色来标注代码关键字。你能够尝试经过记录多色笔记来模拟这个过程。尤为是面对新词汇的时候,多色笔记有助于学习记忆。使用线框是将你的项目可视化很是棒的方法。你能够选择包含图表和图像的编程资源。我最喜欢的视觉资源是 终极 Flexbox 备忘单(The Ultimate Flexbox Cheat Sheet)。在这个备忘单中,图像的位置和颜色分块下降了Flexbox的学习难度。若是你在使用FreeCodeCamp学习,我推荐你去看YouTube上的 每日程序员(The Daily Programmer)专栏。在这里,Cody Seibert 会用白板带你在开始编程前一步一步的理解做业,梳理概念。视频
这类学习方式的特征包括收听音频书籍、广播和演讲,把声音和含义联系在一块儿,而且加入节奏和韵律。好的发言者经过运用音调、变调和语速来传递信息。这对于编程人员来讲很是重要,由于咱们须要学习大量的新鲜词汇。在上下文语境中听到词汇能使学习新词汇变得更加容易。我碰巧喜欢 FreeCodeCamp 课程附带的 Jose Moreno 的 YouTube 视频。一般,Jose 会讲解课程问题的说明。他声音的某个特质以及聆听他大声说出这些内容可以让我调动大脑的某个区域并千方百计完成挑战。若是你在寻找好的编程主题的播客,看看这个连接。我很喜欢 Start Here FM ,一个相对新的站点。它融合了各类主题的音频、视频,还有一个图书俱乐部。blog
这类学习方式的特征包括阅读、口头表达和写做。一般,大多数学习编程的课程和资源都注重这类学习方式,由于阅读文档是成为一名优秀的程序员的关键技能。所以,我强烈推荐FreeCodeCamp项目,在这个项目中你能经过阅读文档片断学习编程而且迅速将学到的东西投入实际应用中。加入Facebook上的FreeCodeCamp社区,你能够在里面讨论问题和解决方案,并分享本身的进步成果。注册后能够看到新的资讯和博客内容。我还很是喜欢Java Weekly 和 CSS-Tricks。像W3Schools 和 Mozilla Developer Network这样的资源也很是适合你。不过不是每一个人都喜欢采用这样的方式学习。若是你的学习方式不一样,请继续读下去,看看还有什么适合你的。但千万不要急于给FreeCodeCamp差评,由于他们能提供大量不一样的内容和方案来知足全部不一样学习方式的需求,你或许能找到适合你的。教程
这类学习方式的特征包括运动、操做和动手活动。触觉类学习者不会介意支离破碎的代码,由于他们享受修复的过程。他们在将信息转化为产品的过程当中学习。在学习编程时,构建是很重要的。在你刚刚学会一些基础的HTML和CSS时,就能够开始尝试建立一些东西。你能够参加那些那些鼓励本身创建项目的课程,跳过那些仅从一个已经完成的项目中复制代码的课程。FreeCodeCamp 在每一个单元结束时都有这样本身创建项目的任务。你能够从一个简单的致敬页开始,不过你最后会尝试建立一个西蒙游戏,一个计算器以及更多其余的项目。你能够试着天天实验性的建立一些东西。若是你已经想不出点子来了,能够在 Rosetta Code 上寻找灵感。
这类学习方式的特征包括系统地依次解决问题,理解缘由和结果,而且运行模拟过程。逻辑思惟者偏好工做流应用程序,阅读文档,以及利用依靠层级逻辑创建的库(例如Bootstrap)。按理说,咱们能够认为学习编程的目的都是解决问题,因此应该抓住机会参与 CodeFights, CodeWars, HackerRank, CodeInGame 的谜题、挑战和游戏。
除了你倾向的学习方式,大多数人均可以归类为最后这两种类型中的一种:人际型和自我型。
人际型学习者喜欢学习的社交做用,好比学习小组,因此为什么不参加一次本地的黑客马拉松(Hackathon),参加一次编程交流会(meet-up),或者加入一个学习小组(FreeCodeCamp 在世界各地都有线下学习小组,我所在的小组每隔一个周日就聚会。这是我在这个项目中最喜欢的部分)。女士们能够参加 WomenWhoCode 组织,同时融入社区当中。你也经过参与 GitHub 上的开源项目来回馈他人对你的帮助。
自我型学习者倾向于独立工做而且常常注重于自我反馈,那么为何不参与到相似于 #100DaysofCode 或者 #30Days,30Sites 的挑战中呢?这两个挑战我都参与了,天天我都在个人推特上发布更新以自我提醒。你能够开始经营一个反馈你学习经验的技术博客(就像我同样),并用业余时间参与Github的开源项目。
我相信,在你读这篇文章时会辨认出在你学生生涯中采用的若干种学习方式。若是你想要更专业地分析本身的学习方式,请使用这个学习方式盘点方法。最后一点,为了在向程序员迈进的学习过程当中收获更多,你应该尽量使用更多的学习方式。基于适合你的主要学习方式的资源,创建你本身的学习体系,而后尝试不一样的学习方式,不过,要对本身有耐心。学习编程并非快速而简单的事情。你须要容许本身犯错。
其实作为一个编程学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流QQ群1108152000,无论你是小白仍是转行人士欢迎入驻,你们一块儿交流成长。
微信公众号:C语言编程学习基地