分享

十年前,我希望有人可以这样教我编程

 kantuoga 2018-06-16
浚宇是编程思维 Python 基础班四期的教练。十年前,浚宇刚开始接触编程,那时的他面对屏幕上闪烁的光标,手足无措,特别渴望有一个人能像高考前的语文老师一样,手把手教自己编程要注意什么,要怎么做;十年后,他写下了这篇文章,既是送给十年前的自己,教他如何学习编程,也是送给刚接触编程的你,希望可以帮助你成功跨过编程的门槛。(注:本文方法适用于编程入门阶段)

print 'hello,world'

当屏幕上出现这行代码的时候,我仿佛回到了十年前 C 语言的实验室里。

那个时候手机还是诺基亚,人人网才刚刚兴起,大一不让带电脑;那个时候一群程序小白,坐在科技感极强的教室里,碰到了电脑,紧张又兴奋;那个时候面对屏幕上闪烁的光标,手足无措。到现在我都记得,那个时候特别渴望有一个人能像高考前的语文老师一样,手把手的教自己,编程要注意什么,要怎么做。

十年后,我写下了这段文字,既是教十年前的自己,也是送给刚接触编程的你,希望可以对你有所帮助。

源头

找到起源

市面上有太多 Python 教程,随便一搜都能找到很多,打开看一看,大同小异。无论是什么样的教程资料,能够告诉你的无非是这些内容:

  • 程序的语法:语法中主要包括变量的定义、程序控制结构(for、if、While)、逻辑运算符、类和对象(如果是面向对象的语言会有)、函数、特殊的结构(有一些有指针的语法)等;

  • 注意事项:一些书里可能会有一些容易出错的注意事项,编程的意见和建议等等;

  • 案例:实际的语法代码案例;

  • 作业:给你布置的初级的编码任务。

如果你看的是一本实战类的书籍,还会有一些项目等等。

但这些都是二手信息,并非 Python 的源头。

当我们接触到全新的编程语言时,首先应该问问自己,这个语言是谁在什么时候发明的?起源是什么?为什么要发明这个程序?现在程序谁在维护?源码在哪里?官方文档在哪里?按照这样的思路,你才能找到一门编程语言的源头。

比如,用搜索引擎搜索「Python」,无论是哪一个搜索引擎,一定会有这两个内容:

  • Python 官方网站:https://www./

  • Python 维基百科:https://en./wiki/Python

总这里出发,能够最快、最准确了解到 Python 的信息,你再也不需要别人的评价和指点了。随着对上述文档的充分理解,你会逐渐对 Python 产生感性认识,能够初步的写一些简单的代码了。

在苦海中遨游,一次就够了

「hello, world」并不是全部,编程是否能够突破门槛,关键还是在会写一些简单的代码之后。除了官方文档和基本语法,还有其他一些高质量资料很有帮助:

  • 帮助注释:一般的编译环境都会包含帮助信息,其内容和官方文档高度一致;

  • Google 搜素:Google 搜索能够帮助我们精准解决点对点的问题。

到目前为止,我们已经有了所有食材,面对这么多优质信息材料,如何消化才是关键。此时,你会遇到的几大拦路虎:

  • 语言:这是第一大拦路虎,对于很多刚进入计算机门槛的人来说,大家可能还没有意识到,这是一个英文主导的世界。优质的信息翻译成中文直到它在中文世界流行需要五年甚至更久,而各种程序在英文环境下才是最稳定的。所以你必须要过语言关,直到可以在英文的 Linux 环境中自如使用以及能够阅读英文文档。

  • 范式:无论是 Linux 的命令帮助文档还是 Python 的命令帮助文档,解释方法本质上是一致的:它们都给出了命令、参数、用法、示例等。掌握了范式,看得懂帮助,能够实践起来,你便胜利在望。

面对这些拦路虎,除了死磕之外,就是死磕。但是死磕也有自己的方法:

  • 多理解原理:无论是现在的源头学习还是后续的实践,你一定会遇到很多问题。有的人解决了问题,不明就里,得过且过。这样浑浑噩噩,可能很多年后也只能是一个初级码农。任何学科知识都可以当成一张大网。我们找到了源头,就把网提了起来。那么网络中间的连接呢?提问的方式是最好的建立连接方法。编程世界里语法是最基础的。但是语法背后的内隐知识,只有自己不断的刨根问底,才能习得;

  • 制作学习卡片:计算机知识太过庞杂,怎么办?使用卡片是一个好办法。每一次学习结束 6-12 小时后,尝试编制自己的学习卡片,不借助任何外在材料,靠自己的大脑,把核心的内容梳理出来。一开始有困难时正常的,但只要你坚持一段时间以后,会有让你意想不到的效果;

  • 尝试教别人:认知心理学已经有了研究,证明在同等条件下,即使是在大脑里想象自己教自己学习,都会提高学习效率。你可以尝试想象你在教一段时间之前的自己,当然,如果你能找到伙伴一起学习,互相教,会有更深刻的体会。

实践

计算机是一门实用的学科。有了工具,有了方法,还必须要实践。另外,实践和前面的源头学习是相辅相成的,并不是线性的前后关系。学了就要实践,实践了得继续学习,然后无限循环。

要有结果

任何一次实践,都可以模拟自己在教自己。告诉自己现在在做什么,准备如何来做,要有什么样的成果。而且每一次实践都要去总结。我们的结果可以是一段代码,也可以是一篇文章,或者一个卡片,甚至是和同学的一次沟通。无论是什么,都要注意一点:既然做了,就要做完。

要有输出

结果并不完全代表输出。每一次的学习要有结果,而一段时间之后,需要一个输出,这个输出一定要可以展示给别人看。它可以是自己的一个项目,可以是学习后的演讲。这个输出要让自己足够自豪,能够证明是自己经过一段时间努力后的成果。不要担心自己的输出不够复杂,罗马不是一天建成的,我们要相信时间的力量。

相信时间

刚开始接触大量代码时,及其郁闷,很多看不懂。可是现在,豁然开朗。两三个月前接触数据科学课时,毫无头绪,及其沮丧。现在,已经可以帮助自己解决工作的问题了。所以,相信自己,相信时间,相信沧海桑田。

工具

优秀的工具都有着自己的设计逻辑,也大多是简洁、美观的,这是一种享受。

不要害怕自己是小白,直接使用最专业的工具,和大牛使用同样的平台。在我们这个时代,GitHub 是再好不过的平台了,在上面你可以和全世界的程序员在一起互相交流学习,只要你使用它,你会感受到那里蕴含着无穷的力量。

如果能做到这些,相信你绝对可以通过掌握一门编程语言来走进计算机的世界,也相信你一定可以走得更远。所以,话不多说,开始动手吧!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多