本文原文来自 Dan Shipper,由 如歌行板 和 茜仔 翻译投稿。
这些天,许多人向我询问该如何开始学习编程。我所能给出的答案就是:读书,尝试Code Academy,多在谷歌上检索,使用Stack Overflow。通常,与他们交谈的几周后我都会进行回访,看看最终谁开始步入正轨,谁已经放弃学习,这是一个很有趣的现象。
是什么将开始掌握编程的人和放弃学习编程的人区分来来的呢?在我看来,那些成功的人在“奔跑”前总先学会“走路”。
“每天进步一点点”是一句大家十分熟悉的有关成功的格言。但我认为结果会引导思考,对学会“走”的过程中急功近利地做出“优化”,不仅消磨了你的动力,而且降低了你达到目标的可能性。接下来让我们深入探讨一下为什么我是这么认为的。
成功的人都是先做好,然后才追求做得更好
在你阅读以下关于获取技能的过程的内容时,有三件事你需要牢记在心:你如何认知你的进展速度将取决于事的开端,你的真实进展速度和你认为的自己的真实进展速度却是每日不同的。为了更好的理解我所讨论的问题,让我们来看一幅图表。
这张图表简单的描绘出在开始学习某种技能前你所预想的学习过程:是一条线性曲线,在每一段相同的时间段里,你将习得的几乎是等量的技能。但在我看来这个结论并不正确。下面是我所得出实际的技能习得的过程。
我认为技能习得的真实过程是一系列的上升和平台期组成的。这就像健身一样。在开始阶段,你进步神速,接着你会经历一段瓶颈期。接着你会开始做一些较为复杂的运动,完成这些健身项目需要更多的力量以及不同的肌肉的相互配合。因此你又开始进步。获得技能也是同样的过程。
我不认为这一观点会令人们大吃一惊。但在这之中却蕴含这整件事情的关键:你每天所做的和你头脑中认为的自己每天所做的存在着很大的区别。当你开始学习新知识的时候,比如学习如何编程,有时候你此刻会幻想你会成为下一个扎克伯格。第二天你又觉得你可能有更好的机会成为一位全国橄榄球联盟中的著名选手,而非一个优秀的程序员。下图描绘出来你学习编写代码过程中的自我感觉:
我的经验告诉我,你如何“感觉”你的进度,比你真正实行的进度有着更为真实的效用。这也是为什么格言“每天进步一点点”会使人们误入歧途。如果你的目标是每天进步一点点,你会不断地密切关注自己的进度。但是你自身的进度测量计真的非常糟糕,甚至就是它成为了让你沮丧泄气的罪魁祸首。这正是大多数人放弃的原因。
我认为当一个人认识到上述学习进展的特点的时候,就是他开始成功掌握如何编程的时候。他们不会时刻关注自己进展得有多顺利,他们也不会日复一日地想着这件事。他们把精力都集中在学习这一行动上,把精力都集中在掌握基础知识上。
随后几个月之后,这些人达到“做得好”这个目标之后,便立刻开始踏上“做得更好”的旅程。这些人秉持着乐观的精神,尽力让自己每一天都做得更好。
这些人能做到这一点,是因为他们已经打下了良好的知识和经验基础,这也使得他们更加自信。他们很少陷入到情绪波动中,即使有,他们也做好了准备,对此从容不迫安然度过。
掌握好编程并不是说要在三十天内写出一个风靡全球的社交应用。通过编程成为百万富翁也许是一个理智的长期目标。但是热爱编程的人将编程视为学习的过程。他们不急不躁,除了投入时间学习外,也不多想些发财致富白日梦。
因为他们最终明白学习编程并不是将他们脑中现有的想法付诸现实,因为很可能这些想法都很烂。即使想法不错,在编程的过程中也许也会变得很糟糕。学习编程真正的目的是你在2年或是5年中后设计出的产品。如果你懂得如何编程,你可以为你的余生创业,而仅有的成本就是时间。
你正在学习编程吗?别急。慢慢来。享受过程,好好学习。
你最终会实现你的目标的。
转自:褪墨