![](https://i-blog.csdnimg.cn/blog_migrate/6d9a6b0f2340fb41bdd50114b703e51a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4a7e5f0b4499c49dfed228a39ace92d8.png)
学习风格是一件因人而异的事情。即便如此,我的许多导师和前辈们都曾强烈向我推荐过一些非常有效的方法和工具来学习编程 。
我和我的同学有着不同的学习风格和专业背景,唯一的共通点大概就是我们都是用这些方法和工具顺利毕业了吧。
闲话少说,下面的分享都是我发自内心希望在学习如何编程的第一天就知道的方法。
#1:停止广泛记录
Why
这是我在学习编程时最大的时间浪费。和大多数人一样,我接受了多年的传统教育,在传统教育中强调良好的记笔记是保证优质学习的前提。虽然我到现在也依旧支持做笔记这个习惯是好的,但我认为这并不是学习编程最有效的方法。
但是手写笔记和更好的学习效果有关系吗?
学习如何编写代码不可能像在标准讲座中学习那样。
相信我。当我发现我可以更有效率的方法时,我仍然感到一种深深的伤害,当我舍弃掉曾经的笔记时,那感觉就像青少年时期的分手一样。
How
我不建议完全取消笔记!我鼓励你使用可以节省时间并使你的学习更有效率的方法。
Github Gists
我用GitHub gists替代了活页笔记本,在里面我专注于记下一些大的概念 - 不用仔细记录每一个细节。有了这个工具后,你就不用再随身携带者笔记本了。有网络的时候,你可以随时访问你的Gists,这真的非常方便。
Gists对于经常查看、引用的笔记非常便利,它可以快速执行你的搜索命令,你再也不用忍受“翻烂”了笔记本也找不到想要内容的感受。
Quizlet
我用来提高我的笔记效率的另一种方法是使用Quizlet - 一个可以创建电子记录卡堆栈的网站。
我真的很喜欢这个,因为它可以帮助你测试你是否了解了笔记内容,而不是对内容一览而过。我也用他们的手机应用程序来学习,而不是在社交媒体上盲目地浏览。
#2:学习小块的内容
Why
即便你把Eloquent JavaScript每一页都读过后,你可能依旧不是JavaScript大师。
看完后究竟有多少东西能真正地应用上呢?我想应该没有太多吧······
How
分解你的学习内容!
当你正在学习新东西时,要学会把东西一部分、一部分吃透,直到能够用开始使用这些知识来实践。然后,再进行接下来另一部分的学习内容。
即使它像你可以敲出“Hello World”这件事一样简单,也不好过你读完了一整本书,最终能应用上的东西寥寥无几要来得好。
我最喜欢使用的两个平台是一个是icodepen.io,另一个是repl.it。它们快速访问,不需要任何设置。
这两个工具有着很好的激励机制,通过挑战任务并获得胜利,然后接着 学习下去。学习新事物时可能会让你不知所措,完全找不到从哪里下手。但分解学习内容不仅可以提高你的学习能效,同时也能防止你自己崩溃。
这看起来可能会花费更多的时间,但最终你会对学习的内容有更好的理解,并且在以后整合的过程中难度也会更小。
#3:边做边学
Why
这与#2中所说的内容相辅相成。你需要练习并真正地去实践、操作。你可以通过看书、观看教程或听讲座获得一些EXP。但如果想要升级,那你你必须在实际操作中才能获得。
大家应该都经历过“我以为我懂了”的阶段性错觉。
场景:老旧的的大学课堂。
情境:学生面对一个非常令人困惑的问题。
上大学的萨拉在微积分考试中崩溃了。她心想“我都看了好多次教授解这个题,为什么我还是不会呢?!“
呵。因为她从来没有实际练习过这些问题,这也就意味着她也从来没有评估过自己真正理解和解决问题的能力。
How
构建与重塑
构建一个应用程序/项目/代码块,无论什么。然后庆祝你的胜利,接着摧毁它。
是。摧毁它 并重新做一遍。
起初我并不相信这种技术,但很快就清楚地知道这是了解代码组件如何工作、发现新问题以及如何排除故障的非常好的方法。
这与将句子或单词一遍又一遍地写入内存并不相同。通过反复构建相同的东西,逐渐放弃像笔记和谷歌这样的拐杖,直到你对使用什么以及何时使用有了更明确的想法。
话虽如此,查找东西绝对没问题!如果谷歌不存在,我不知道我会成为什么样的程序员。但是当你需要经常查反复查看一些小的常规问题时,它会严重减慢你的速度,并占用宝贵的脑力,你大可以把这花在更难的逻辑上。
#4:手写代码
Why
是的我知道。我说过在学习如何编写代码时,使用大量笔记不是一个好方法,但这不同!这是手写和提高学习效果的理念与编码的合作之处。
这就是编写你实际上要在代码编辑器中键入的内容。此外,编写代码将提高你在那些技术面试中的面试技能。这是一种非常不同的体验,非常推荐大家尝试一下。
How
随时书写
这就是我学习React的方法。我的一位老师给了我一个白板,让我在React中为整个待办事项写出组件。
然后我在下面写出了整个组件,就像在代码编辑器中一样。
虽然这个待办事项应用程序并不大,但它让我打下了很坚实的基础,我用这些知识在几周内构建了一个更复杂、更全面的项目。
我知道这听起来要花很多时间,并且需要很大的努力。但是当你以后处理更大的项目、快速浏览代码、而不是查看每一件小事时,这时候的付出将为你节省很多时间。
然后我写下了下面的整个组件,我在代码编辑器中的确如何。
#5:解释你的代码
Why
在我写完上述我导师让我做的事情后,他让我向她详细解释了每行代码的作用。相信我,这是个非常痛苦的体验,整个过程充满了很多长时间的沉默,但它帮助我理解了每一个小部件。
了解小部件后,你将可以更好地了解它们在复杂项目中的协同工作方式。凭借这种能力,你的技能组合将会拥有内在的可扩展和多样化。
可以这样想:这个过程就像你可以向别人很好地介绍乐高、擎天柱或者霍格沃茨一样。
How
从编写代码开头开始,然后一边工作,一边问自己”为什么“和”应该是怎样“。
例如…
为什么我们在这里使用类组件而不是功能组件?
这会阻止默认()做什么?
触发这个onClick()会发生什么?
数据如何流经我的应用程序?
X线X功能完成了什么?
如果与查看整个代码块相比,这些问题看起来相当简单……那么,这是因为它们就是。但这才是重点!较小的部件更易于使用。这将有助于你构建并更好地理解整体工作。
#6:重构
Why
问问自己,“我可以重构这部分内容吗?!”。一旦你得到了一些工作,努力使它更清晰和简洁。
寻找重构的机会对于升级开发人员的技能和同理心非常重要 - 为你的同事们寻找机会,不要让他们在一堆复杂的系统中挣扎。
你应该希望你的代码读起来像一幅画-它应该讲述一个故事。别人可以通过观察它来知道发生了什么、它做了什么。人们需要知道你在说什么。如果你不会不断地重复自己的话,他们也一定会感激你的。因此,尽可能地保持简单!
How
我要给你的建议和我在大学里写论文时得到的建议是一样的。
把它写下来,让它”炖“几天,然后再回来写。
回过头来,用全新的眼光来审视代码,将会产生很大的不同——你将看到疲劳的自己以前没有注意到的东西。在这一点上相信我。最近我回头看一个老项目,我能想到的只有……“嗯…不好意思,打扰了”。
#7:把你学到的东西也教给别人
Why
你已经学会了一件事情,然后你已经完成了这件事。那么,现在尝试去教导这件事。能够解释这些你学到的内容将有助于你评估自己的熟练程度并确定需要再加强的内容。
附加好处 - 在教别人的过程中,对方所提出的任何问题都是你进一步提升的机会。你可能会被迫从另一个角度来看待你的概念,采用全新的方法来教授它,或以不同的方式解释这些事物。
How
向别人解释你学到了什么、提议为你的同事或同学做演示、教你的家人或朋友新的东西……如果你能做到并且解释得很好,那么你就离掌握它又近了一步,这对你的听众来说也是一个有用的知识。你在帮助别人的同时也巩固了自己的知识。
如果周围没有人,请教给你的狗或猫,然后录制视频。当然,你也可以在镜子里向自己解释。这也可以建立那些公开演讲技巧,对吧???
以上信息来源于网络,由“京东云开发者社区”公众号编辑整理,
不代表京东云立场。
![](https://i-blog.csdnimg.cn/blog_migrate/ad0ad7d489e14843e635d68204f8ac5d.png)