美文网首页Deep Read
学习编程的历程

学习编程的历程

作者: BenThomson | 来源:发表于2019-08-09 10:55 被阅读1次

参考: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

该阶段可开发应用程序,通过该阶段进入工作前需要做三件事:

  • 寻求并遵循最佳方案,提高代码质量。
  • 检查假设,不断修复漏洞。
  • 解决那些很少被处理,但对过渡到专业环境非常重要,包括测试、数据建模、体系结构和部署等内容。

获得反馈是当中重要的一环。

相关文章

网友评论

    本文标题:学习编程的历程

    本文链接:https://www.haomeiwen.com/subject/jdecjctx.html