原文发布于 太平洋夏令时间下午 6:00 • 2014年5月24日
告诉刚开始学习编程的人编程很简单,这是我见过最危险的事情之一。
这是你的大脑做的反应:

我的画作。(我编程比画画好。)
大多数编程并不需要特殊的大脑,但比起别人让你感觉的样子,它更让人沮丧且更混乱。有成千上万热情洋溢的博客文章、课程和应用程序,它们旨在以学习编程有一套简单明了的过程来吸引你。但它们很少提到设置环境的乏味过程(相信我,即使是你最善良的程序员朋友也不愿帮你,因为那东西太让人沮丧,没人记得自己是怎么搞定的)。
它们没告诉你,很多编程技巧其实在于培养在Google上提问的能力和知道哪些代码最适合复制粘贴。它们也没有告诉你一个大秘密:没有真正的掌握,没有最终级别。感觉迷失和愚蠢的焦虑不是你学会征服的东西,而是你学会共处的东西。
这个冬天我决定学习iOS。我在大学暑假自学了编程,所以我对自己学新语言的能力非常自负。我忘记了这有多难。在超越了我对Xcode的怨恨之后(这个“Storyboard”看起来像给小孩的,这不是真正的编程),我开始了一系列对我来说太高级的项目。结果iOS和网页开发不同;我预期会难的东西很容易,而那些应该容易的却很难。我对自己不耐烦和恼火。
我忘记了,对于程序员来说,最常见的状态是自我不满。作为一个程序员,有无限的东西要学。你可以成为某种语言或框架的专家,但如果你的工作是有效地构建东西,你会不断学习新工具,感觉不断被淹没。心理准备好感觉愚蠢会有所帮助。
心理学家Mihaly Csikszentmihalyi 提出了一个可视化学习过程的洞见方式(适用于任何学科):

来自“Flow: The Psychology of Optimal Experience”一书中的图片改编
我发现我的经历与这条线非常接近,并提出了这个递归编程学习食谱:
我是教程的忠实粉丝。在这个过程中,我做了一个应用来收集最好教程的推荐,这些都是程序员们用过并推荐的。希望它能缩短你在摸索阶段的时间,帮助你快速找到好的内容。
只要你学会在沮丧中磨练,你就会爬上山坡,看到自己的进步。接受自己无法理解一切,信任自己即便看不到进步也在变得更好,并且不要急 。祝你好运。
特别感谢Shuttleworth Foundation,他们的神奇快速资助促使我踏上学习新事物的道路,并给了我时间来做Teach Yourself To Code。也感谢Cody Brown,他在这篇文章上的帮助。
来源: Don’t Believe Anyone Who Tells You Learning To Code Is Easy 作者: Kate Ray