怎样避免陷入无止境地看教程的陷阱
我们可能都曾遇到过这样的情况:学习编程的时候,一个教程接着一个教程地学,但是不清楚自己学到什么了程度。然后你开始自我怀疑:“这太难了。”或“也许编程不适合我。”我知道你懂这种感受。
我自己在最近就切身体会到了这种感觉。我本身算是个比较自信的PHP攻城狮,打算学习Python—尤其是Django。
我搜索了一些相关资料并找到了看似完美的教程,足够复杂富有挑战,又足够简单不至于击垮我的兴趣。
作为一个基于项目实战的教程,我对完成后的项目相当喜欢。我认为将它添加到我的成长作品集会是很酷的一件事。
跟着教程做到接近80%的时候,我突然产生了一股自我怀疑。我已经看了视频教程并一个个字敲了所有的代码,我已经有了一个简单的项目可以展示给他人,可为什么我感觉反倒没有刚开始那样好?
跟着这个教程又花了几个星期的晚上,我有了一个漂亮的完工项目。即便如此,我还是觉得在没有指南的情况下我是不具备重新实现这个项目的技能的。所以,将它放到我的作品集里真的好吗?
将一个在外观和功能上与别人的一模一样的项目展示出来真的说服力吗?而且代码和GitHub教程上的一模一样。
如你所见,跟着教程学习,接触到新的技能,是很棒的。但是只跟着教程学习,你无法掌握作为一名合格的初级工程师所需的更多技能,我指的是:
- 设计和组织项目
- 了解哪些工具对于一个具体项目是最佳选择
- 尝试通过搜索来解决遇到的一些问题
- 解决在实际项目开发中无可避免的一些问题
教程是快速上手的好办法
为了避免大家误解,交代一下相关背景,我是一个29岁的初级码农,目前在一家软件开发公司工作。我在一年前转行进入编程行业,
很多新手码农一样,在开始学习高级教程之前我先完成基础的教程。我主要是学习PHP(因为在我开始学习编程的时候听说PHP是全世界最好的语言),我很快就熟悉了语法和一些基本用法。
大概花了9个月的时间,我完成了足够多的教程,有了足够的理解,也有了足够的动力去说服一家软件开发公司给我提供一份工作。(你可以通过这篇文章了解到我是如何说服老板给我工作机会的 take a chance on me and pay me to learn to code.)
让我能在如此短的时间内得到一份编程工作,得益于我创建的可以展示的实际项目。值得注意的是,是我自己的项目,而不是跟着教程复制粘贴的那种。
教程也只能帮你到这里了 之后你需要开发实际项目
不要理解错了我的意思–教程是很棒的,尤其是在新手学习基础的情况下。当然,教程的质量是良莠不齐的,解释的详细程度也大相径庭。但是一个教程接着一个教程的学习是无法让你成为一个专业的开发者的。
你必须开发自己的项目。一旦你对你选择的语言的语法和基本的实现有了一定的认识,你就可以开始开发属于自己的东西了,不再是“手把手”式的学习。
当我向别人说这些的时候,通常得到的回应是:“开发什么呢?我一点想法都没有。”
额,实际上没人指望你创造出什么牛逼的东西来,而且你应该不具备这样的技能去做这样的事情,就算你有想法。
这里有一份清单,列出了你可以开发的500个项目,有例子: http://rosettacode.org/wiki/Category:Programming_Tasks 。
你也可以开发类似博客这样的项目。是的,有无数个教程都是基于构建博客的。你可能还会复制、粘贴一些代码,这也许不是一个令人印象深刻的项目,但是。。。
开发属于你自己的博客。坐下来,在开始之前,制定好每一步的计划和特色功能。搜索并选择一门你想用的语言和框架。了解怎么安装需要的工具,构建开发环境,通过包管理工具安装所需的依赖等。当你卡在某个环节时,Google或者通过可靠的技术社区去解决你遇到的一些问题。
通过这样的方式你的学习效率可能比跟着任何一个教程学习都快很多,你自己开发的项目的在你作品中的价值也远远大于其他几十个跟着教程做的项目的总和。
取决于你选择的项目的复杂程度,在你找工作的时候你的个人作品集里可能就不再需要其他的东西了,只是可能。你的代码可能不是非常出色,但这是你自己写的代码。你可以解释每一行代码的意义,你可以解释你是如何实现的和为什么这样做。
同时,你也证明了你可以管理一个项目,单独完成,学习需要的新技能,并递交最终完成的产品。对于潜在的雇主而言,你现在拥有了几项有价值的技能。
如果花12到18月的时间去学习,还没有找到一份工作,或者说你总感觉实际尚未成熟,别灰心,不要放弃。不要开始有这样的想法:你需要花动辄上万的学费去参加什么牛逼的培训班。只需要开始开发你自己的东西你就会惊讶于你进步的速度!
通过freeCodeCamp找到工作的人数在不断增长可能也是因为它基于项目的学习方式。freeCodeCamp是一个不错的学习平台,不过本文就不替原作者多做宣传了。本文翻译自 https://medium.freecodecamp.com/how-to-dig-yourself-out-of-the-coding-tutorial-rut-7d3b2232f234