学习编程的历程
参考:Why Learning to Code is So Damn Hard
概述
该文章参考自 Why Learning to Code is So Damn Hard,主要描述了学习编程并以此为一项技能/职业的心路历程,并给出在该道路上的「求生技巧」。
学习编程的艰辛历程四个阶段
-
hand-holding honeymoon
该过程充满喜悦感,有丰富的资源支持,让你感觉成就满满,主要是学习基本语法。 -
cliff of confusion
痛苦地意识到实际上困难得多,不断调试和出现挑战,似乎无动力解决提出的问题。 -
desert of despair
漫长而孤独的旅程,新方向似乎可行但是却经常是在原地绕圈圈,你渴望可以获取资源以解决问题通过该过程,但是请小心「狂躁的幻影」使你误入歧途 -
upswing of awesome
终于寻找到一条可行之路,构建出解决方法,但代码依旧是像纸牌屋一样脆弱。此时你掌握了一些模式,程序看上去还可以,但你需要弥补不足,以达到实际工作需求的能力水平。
两大影响因素
基本上每个阶段都有两个因素影响:
-
Resource Density
密度线条越密集表示越多资源
资源密度随着问题研究越深入而变得越小,特别是在 desert of despair 阶段。但是一旦你熟悉问题和需要搜索的内容。你就可以使用更多的技术工具,如专业博客。关键是要了解你要问的问题,问对问题资源又会出现。
-
Scope of Knowledge
每个阶段学习的新主题的总体范围- 当你开始编程时,需要的知识范围非常狭窄即可。
- 然后在解决实际问题时,则需要快速扩展知识面,因为面对一个明确的问题却看似没有「正确」的答案。
- 进入第三阶段,知识范围将会扩大,此时需要了解如何使用工具,需要学习语言和 CS 基础知识等。
每次去谷歌搜索都会陷入另一个问题去,让你不知所措,但感觉应该去了解更多东西,此时甚至还不知道你对于什么是不懂,也不知道需要补充什么知识。
只有当你找到正确方向,需要学习的范围才再次缩小,找到需要解决问题的技术及其在的生态系统的位置,最终绘制出一条通往它的路径,并进入职业生涯。这会继续缩小求知范围,并变得更专注。
绝望的沙漠
学习编程的第三阶段知识范围的迅速增加和资源密度的下降这个有毒组合即造成了「绝望的沙漠」(实际上这个沙漠是有边界,但是你一开始并不知道该如何到达)。
沙漠漫长而充满危险。你会发现自己被沿途的「狂躁的幻影」所吸引——各种诱人的资源看似拥有你正在寻找的解决方案,也许你报名参加 Coursera、Udacity 或 edX 的几门 MOOC 课程,或者你找到了一个教程,试图带你一路走来。但实际问题是没有现成的简单答案——寻求「救赎」的诱惑太大了,你会辜负当初完成其他人没有完成的任务这个承诺。
你不能在一个星期或一个月或一个大学课上学习到这些东西(以解决特定问题实现整个项目),无论别人说什么,都不要陷入此地而拒绝前行!
你怎么知道需要学习什么,或者你是否正在学习正确的东西?
你可能会感到完全迷失,只有到你终于能够按照期望的方式构建一些东西。但是,如果有足够的毅力和良好的指南针,你最终会发现你终于上手并找到一些解决方法。
求生技巧
求生技巧使用正确的方法策略以确保方向正确
Hand-Holding Honeymoon
在该阶段多尝试不同资源和项目,并最终选择一个合适的学习资源。在该阶段,所有代码都是相同的,应保持开发态度。一旦找到合适的东西就坚持下去。完成他们的入门课程,这将为您提供编写基本脚本和应用程序所需的所有基础知识。
Cliff of Confusion
几乎每个人都会体验该令人沮丧的过程,因为成为开发者的唯一方法就是开发。教程是一种很好的方式,但是你需要让自己脱离安抚奶嘴并在某些时候面对现实世界。三个建议:
- 与他人合作与分享。
- 阅读他人的代码以获取良好的模式。
- 从小项目做起,不断构建。
Desert of Despair
通过「绝望的沙漠」的关键是:
- 有一个强大的目标。清楚你想要完成什么,否则会追逐你的尾巴一样学习各种有趣却无生产力的东西。
- 找到一条通往预设目标的强大路径。
- 专注避免分心。
Upswing
该阶段可开发应用程序,通过该阶段进入工作前需要做三件事:
- 寻求并遵循最佳方案,提高代码质量。
- 检查假设,不断修复漏洞。
- 解决那些很少被处理,但对过渡到专业环境非常重要,包括测试、数据建模、体系结构和部署等内容。
获得反馈是当中重要的一环。