专栏首页Crossin的编程教室Python老司机给上路新手的3点忠告

Python老司机给上路新手的3点忠告

在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面:

  • 网上找了很多资料,不知道从哪里看起
  • 买了本书,过了很久也没有看完第一章
  • 开始还能跟着写几行代码,后来突然就看不懂了
  • 也看了些教程和视频,似乎明白了,但还是没法自己写代码
  • 入门了很多次,每次过两个月就又全忘了

对于初学者,尤其是自学者,太多问题可能成为你编程之路上的坎,一不小心就从入门到放弃了。

我在知乎上有个超过万赞的回答:你是如何自学 Python 的?

(https://www.zhihu.com/question/20702054/answer/19022301 没点过赞的赶紧去点个赞支持一下)回答里面分享了零基础自学 Python 的一些经验。在原答案的基础上,今天再展开来谈一谈。

你需要一个明确的学习目标

很多人会说,我有目标啊,就是要学会编程,然后还要找份高薪的程序员工作。这是一种目标,但不是明确的、具体的、可执行的学习目标。这就好比说“我要幸福”、“我要做自己想做的事”但没有具体标准一样,对你的行动没有任何指导意义。

你要学编程,是为了去写一个自动脚本抢票抢优惠券,还是平常处理大量文件时候可以自动化?是为了验证你股票上的交易策略是否可靠,还是做一个网页推广自己的品牌?如果你的目标是为了找工作,那是想做开发游戏还是桌面软件,是数据处理还是网站,前端还是后端?编程是一个很广泛的概念,明确你的目的,学习时才能有方向,也更能坚持下去。

也许有不少人觉得,我也不清楚,只是想多学个技能,总归会有好处吧。而且我都还没学呢,怎么知道之后要做什么?这个出发点可以理解,但我仍然建议:必须给自己定一个小目标。哪怕你开脑洞随便想一个需求也是好的。不然这种先学了再说的状态很难让你坚持下去。

你不必担心定错了目标就走上了弯路,它总比没有目标要好多了。它只是你学习初期的一个里程碑,等你能顺利完成它,后面还有更多的目标供你选择。

先建立整体的认知

在软件开发领域有这样一句话:

过早的优化是万恶之源。

在编程学习里同样有效。很多人会追求某种一步到位的终极路线,表现出来就是:

  • 希望别人推荐一套最佳教程
  • 先理论后实践
  • 钻入细节的牛角尖

似乎看起来没什么不对,明确路线、打好基础、按部就班,很符合一贯的教育理念啊。就好像你执意要优化你的代码一样,如果我说你这么做是错的,倒显得我有问题。

但事情是分时机的,正确的事情在不合适的时间去做,就会导致错误的结果。过早地陷入局部细节,追求理论基础,很容易让初学者困惑,以至于在某个点上卡壳,无法继续学习下去。浅显易懂和专业性强本来就是很难调和的两个维度,很多教程之所以优秀,是因为它内容体系完善,但对于你来说真的合适吗?

对于早期学习者,尤其是非专业的自学者来说,囫囵吞枣、不求甚解才是更合理的打开方式。

借用网上的这张图,编程与之很类似。如果说图上的点是编程相关的各种概念和技术,学习的过程就好比绘制这张图:你通过学习,了解了这些技能点,并将其连接起来。

一种绘制方法就是先画好一个点的细节,再从这个点出发精确画出通往下一个点的线,依次一个个画下去。这是种看似稳妥,实际上却低效且很容易出错的方式。更合理的方法是:先确定纸上点的大体分布,画出他们的轮廓,然后画好关键位置上的点,连接关键点,之后再逐步完善分支和细节。

学习编程是一个反复迂回、不断迭代的过程,而不是一路到底的单行道。

在刚接触编程的时候,你根本无须在意太多细节,而是更应该对编程有个直观的印象,知道技术能够实现什么,体会编程的乐趣。这和上一点是相辅相成的:当你有了一个目标,就可以去了解达到目标需要哪些知识点、怎样的学习路径,以此来确立自己要学习的内容;而当你对编程的有一个整体的认知,又会更清楚自己学了编程可以做什么,让自己的目标更明确。

选择合适的起点和路线

在有了明确的目标,建立了整体的认知之后,接下来的事情就很自然了:选择一个合适你的起点,朝着通往目标的方向,开始你的学习,点亮技能图谱上的点,并将其连接起来。否则,盲目地从一个不恰当的地方开始,比如选了一本起点较高的书,或是上手就去折腾某个框架,就会事倍功半,效率很低,甚至导致放弃。所谓“欲速则不达”,就是这个道理。

如果你做了上一点,有些基本的整体认知,自然就会明白那些“21天精通XX”、“两个月成为数据分析师”的宣传语有多荒唐。

以上三点,通俗来说就是,你要弄清楚:

  1. 学了干嘛
  2. 学哪些内容
  3. 从哪学起

你去随便找一款目前市面上流行的手机游戏,会发现它们的新手引导也是类似的套路:

  1. 向你说明游戏的胜利条件,引导你取得一场胜利(明确目标)
  2. 让你体验一套高级别高配置的阵容(整体的认知)
  3. 指导你游戏基本操作和初期的升级(起点和路线)

这些游戏经过精心设计,力求让玩家成瘾。对于学习也是如此,让自己尽快“上瘾”,才能深入下去。

以上只是学习编程的一个开端,针对上手之后的建议,我还有几点重要提示,会在接下来的文章中继续分享。关于学习编程的经验,欢迎大家留言讨论。

本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:crossin

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 新手学习编程的最佳方式是什么?

    回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着...

    Crossin先生
  • 编程学习中的瓶颈

    刚学习编程的时候,几乎每天都会有收获,昨天会用 if 了,今天会调用函数了,明天又会 get 到新的技能。这时候也许你会觉得自己正在快速成长势不可挡。然而过了一...

    Crossin先生
  • 我是如何在自学编程9个月后找到工作的

    昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他自学编程 9 个月后找到工作的经历。文章不到一天就得到3千多赞,2百条回复。我看了下内容,非常中肯...

    Crossin先生
  • 这可能是最全的编程入门指南

    为何要学编程 乔布斯说,「每个人都应该学习编程,因为它教会你思考的方式」。 我们学习编程,是不一定要成为程序员的。就像每个人都应该学习法律,但不是都要成为律师;...

    老九君
  • 小学生编程入门从哪种编程语言学起?

    如果是编程零基础学习者,那么以Scratch为切入点是个不错选择。Scratch语法基于一系列孩子们可以拼插彼此的图形化“代码块”,其设计极具交互性,甚至单击一...

    贝尔科教
  • Codecademy 你值得拥有,非常棒的编程学习网站

    Codecademy 它是一个免费有趣的在线互动编程学习网站,目前提供了 HTML/CSS/PHP/Javascript/Ruby/jQuery/Python...

    非著名程序员
  • 我是如何在自学编程9个月后找到工作的

    昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他自学编程 9 个月后找到工作的经历。文章不到一天就得到3千多赞,2百条回复。我看了下内容,非常中肯...

    Crossin先生
  • 编程小白 | 每日一练(71)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • 学习汉语和学习编程的异同点

      同理,学习编程,也必须先学习编程语言的基本语法,我们前面所讲解的就可以认为的Java的编程语法。

    黑泽君
  • 他们在阿佤山区学编程

    人工智能时代到来之际,边疆贫困地区的孩子们不应再落后于时代。至少在编程这件事上,有机会和发达地区的孩子们站在同一起跑线上。面向智能时代的到来,要能够让孩子们具备...

    腾讯智慧教育

扫码关注云+社区

领取腾讯云代金券