专栏首页机器之心用半励志的方式告诉你,怎么学习Python开发

用半励志的方式告诉你,怎么学习Python开发

选自hackernoon

作者:Ramit Mittal

机器之心编译

参与:Tianci Liu、刘晓坤

一篇 Python 开发学习路线的高度主观、并不怎么励志、也不传统,甚至太诚实、略显粗暴的文章。

本文并不只是一篇融合了经典 PYTHON 学习书籍/视频/课程中观点的大汇编,而且还覆盖了一些初、中级学习者在学习过程中会面临的更大的问题——一些 Stack Overflow 未收录也未能解决的问题

为什么学习 PYTHON?

不管怎么说,为什么应该学习 PYTHON,而不是其他 20 多门当下流行的语言之一?当你选择开始自己的 PYTHON 之旅时,这个问题会(一天之内)多次突然出现在你的脑海里。

选择你的第一门编程语言就像选择一只新手的宝可梦。

相较于程序员在使用既定语言时所展示的开发技巧,以及磨炼并整合更加通用的编程技巧的能力,语言本身的特性并没有那么重要。

如果你希望从另一门语言开始学习,现在就关掉这篇文章,顺从自己的喜好吧。只要对自己的选择自信不动摇,专注于相应的课程,你成功的几率会更高。选择哪门语言并不重要;重要的是,一旦你做出自己的选择,就要坚持下去。

网络上有无数关于语言/框架间比较的争论,足以使任何一个头脑清醒的人陷入分析困难,怀疑自己原先的选择,最终放弃学习。

我见过一些初、中级程序员声称掌握 3~4 门语言。他们倾向于了解每门语言所有的细枝末节,但没有一门是真正能够拿来编程的。这就是尝试太多、而没有专注其一的结果。

PYTHON 是一门设计非常优美的语言。网上也可以获得非常多的文档和教程。除此之外,PYTHON 在非常多领域中都有应用,因此无论你是什么水平,都有非常多可以探索的东西。不过,对于这些流行的 20 多门语言中的绝大多数而言,这些话也同样适用。

每门语言都有自己的优点和缺点,及其最适合的应用场景。PYTHON 最流行的 3 个应用场景是:数据处理、网络应用的后端编写和自动化脚本。我们有理由相信,PYTHON 是对于初学者而言最好的一门语言,因为这门语言的设计原则之一就是强调简洁明了。

你总能听到「你选错了语言」的声音。十有八九,这些说法都来自一些尝试推销产品、或是自己陷入了严重不安的人。

怎么学习 PYTHON?

既然已经做出了自己的选择,那么就开始谈谈怎么学习 PYTHON 吧。

很简单。选择一门教程,完成学习,然后选择下一门。劳逸结合,持续重复。

只学习一本书或是视频课程并不能掌握 PYTHON。你需要经常处于在编程的环境中,逐渐增大练习强度。耐心、毅力、投入(以及其他优秀品质)是必不可少的!

以下是我会推荐给初学者的一个基本流程。如果你是人类(我之前检查过,AI 目前对学习 PYTHON 还没有兴趣),那么你的学习路线可能会有稍许不同,所以以下说明仅作参考。重要的是,应该知道什么时候开始下一阶段的学习,绝大部分人开始得太晚了。

也许相较于读书,你更愿意在 edX 上选择一门课程。相较于具体的教程/课程而言,整体过程会更加重要。

  • 通过读书,建立扎实的基础。
  • 开始学习利用 PYTHON 实现一个小的独立项目的教程,如发邮件、写文件。借此机会,你会了解到对于 PYTHON 开发者而言有用的包和库。
  • 开始培养阅读文档的习惯。利用已有的库,搭建小的应用程序。
  • 开始培养关于语言及其工具更深度的理解。了解领域内专家的工作。
  • 开始接触源代码。

如果你已经学习完了上图中的 PYTHON 资料,这里还有一些实用资源可供使用:https://www.fullstackpython.com/best-python-resources.html

在学习任何教程时,注意要顺着思路亲自写代码。仅仅阅读示例代码是远远不够的。

学习通用的问题解决方法

「学习一门语言(或者框架/库)」和「学习编程」之间有着细微的差异,就像「水彩」和「绘画」的差别。

在付费开始一门「全栈网络开发」课程之前,首先要知道,学习这样一门课并不会让你变成一个优秀的程序员。它只会教你解决简单问题的一个具体方法步骤(是的,绝大多数这些课程中搭建的网络应用确实是非常简单的问题)。掌握这样一个解决方法固然很好,但能够设计自己的解决方案才是最好的。把注意力集中在程序结构、设计模式和算法上。这些知识并不只是 PYTHON 独有的,而在几乎所有的语言中,都是相同的。

坚持下去,就会柳暗花明。

寻找答案

在遇到困难时(你一定会的,而且不止一次),首先尝试(自己)解决问题,然后再去其他地方寻求帮助。很有可能,其他地方,也有其他人之前遇到了相同的问题,并把解决方案记录在了网络上。同时,PYTHON 社区(全世界使用 PYTHON 并积极参与到与其他 PYTHON 程序员联系的人们)非常受欢迎。不管什么时候,你都可以在那里寻求帮助。

哇哦!PYTHON!

PYTHON 中有非常多可以学习的知识,在非常多的领域中都有它的身影。不要跳过基础知识,直接进入一个特定领域的专业内容上。应该在学会打包后再开始 PyTorch 的学习,掌握虚拟环境后,再开始接触 Django。掌握深度的 PYTHON 知识,长远而言会得到更大的回报。当你在程序中使用自己高度定制化的库时,可以减少花在 debug 上的时间。

学习需要多久时间?

9 个图中展示的周期。

熟练掌握知识需要时间。比绝大多数人告诉你的还要久。你不可能在几个月内变成一个编程专家。优秀事物需要时间和精力的打磨。我建议你至少在原生 PYTHON 上花费至少一年的时间。你会遇到让你分心的事和消遣娱乐,尽量避免它们,但不要害怕去学习新知识。成为一个全面的开发者,不只需要 PYTHON。学习 Git、Markdown、HTML 也会让你获益匪浅。在整体的学习过程中,你还可能需要掌握 JS 和统计学。

保持学习的状态,但不是仅仅学习已有知识!

掌握「学习-构建」的周期

在任何有创造力的/科学的努力中,都会有这样两个不断重复出现的阶段。

学习阶段:在此阶段,你应该专注于积累知识。读书,完成所有的教程并挖掘所有现有的东西。

构建阶段:在此阶段,你应该通过使用在前一个学习阶段所获得的知识,构建出一些东西。相信自己的能力,忽视那些说你不行的声音,写属于自己的应用。在完成后,回去继续学习。

在两个阶段间找好平衡。在一到两个月的学习阶段后,开始一个月的构建阶段。绝大多数人总是害怕而不敢开始进入构建阶段。

成为一个学生

探索你的语言的所有知识,了解你的领域的前辈,提出问题,思考为什么某个东西是这样设计的。

原文链接:https://hackernoon.com/a-realistic-roadmap-to-becoming-a-python-developer-ab5872959509

本文为机器之心编译,转载请联系本公众号获得授权。

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

本文分享自微信公众号 - 机器之心(almosthuman2014)

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

原始发表时间:2019-02-03

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jeff Dean等发文《Nature Medicine》,综述深度学习在医疗领域的应用

    本文介绍了医疗行业中的深度学习技术,主要从计算机视觉、自然语言处理、强化学习和通用方法这些方面入手。主要介绍了这些计算技术对关键医疗领域的影响,并探索了如何构建...

    机器之心
  • 入门 | 完全云端运行:使用谷歌CoLaboratory训练神经网络

    机器之心
  • 从自编码器到生成对抗网络:一文纵览无监督学习研究现状

    选自Medium 机器之心编译 参与:Nurhachu、蒋思源、吴攀 无监督学习是深度学习的圣杯。它的目的是希望能够用极少量且不需要标注的数据训练通用系统。本文...

    机器之心
  • 编程小白 | 每日一练(128)

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

    C语言入门到精通
  • 面试必会函数源代码 strcpy/memcpy/atoi/kmp/quicksort

            继上一次发表了一片关于参加秋招的学弟学妹们如何准备找工作的博客之后,反响很大,顾在此整理一下,以便大家复习。好多源自july的这篇博客,也有很...

    bear_fish
  • 网络安全八大“隐形人口”,你占了几条?

    虽然,“隐形人口”是对网络安全从业人员现状的娱乐解读,但是其中也不乏一些“真相”。2018年2月,中国信息安全测评中心发布的《中国信息安全从业人员现状调研报告(...

    安恒信息
  • JS 获取URL中的参数值

    本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为...

    Alone88
  • 如何掌握所有的程序语言

    很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道标题问题的答案,所以总感觉这个问题是如此“低级”,一直没来得及回复 : P 可是...

    哲洛不闹
  • select2 没有 allowClear 不生效

    一个会写诗的程序员
  • leetcode31场双周赛

    给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。

    你的益达

扫码关注云+社区

领取腾讯云代金券