Python程序员!变身!这有一张最高效成长路线图(附资源)

大数据文摘 2019-02-26 11:49
关注文章

大数据文摘出品

编译:李雷、胡笳、夏雅薇


这是一篇关于如何成为python开发者学习路线图的非常规咆哮体文章。


本文不仅仅是学习Python的最佳书籍、视频和课程合集,还涵盖了初学者和初中级人员在学习过程中遇到的一些比较大的问题,并且Stack Overflow上也找不到类似的问题或解决方法。



为何选择Python?


为什么要学习Python呢?为什么不选择目前流行的其他20种语言中的一种呢?当你开始时,会有许多这样的疑问。


选择你的第一个编程语言就像选择你的第一个皮卡丘。


一个语言本身怎样并不是那么重要,重要的是程序员要知道如何用这门语言做成一些牛逼的事。


如果你并不想学Python,那么本文不适合你。当你对自己的决定有信心并专注于后面的学习时,你将更可能成功。选择哪种语言并不重要,但是一旦做出了选择,就要坚持下去。


互联网上充斥着大量关于各种语言和框架比较的言论,足以让任何理性人产生选择障碍。



我见过有初中级程序员声称他们会3-4种语言。他们倾向于泛泛的了解各种语言,却无法写好任何一种语言的程序,这就是想要尝试一切而不钻研某一门的后果。


Python是一种设计精良的语言,还有大量的在线文档和教程。并且它还被用于很多领域,所以无论你的水平如何,都有很多值得学习的东西。不过其他20种语言大多也是如此。


每种语言都有它的优点和缺点以及它最适合的应用场景。Python最常用的3个用途是数据处理,Web应用后端程序和自动化脚本。基于其设计基本原则所追求的清晰度和简洁性,Python可以说是初学者的最佳选择。


你总能听到这样的声音,“你做出了错误的选择”。十有八九说这些话的人就是想向你推销某些东西或者他们自身缺乏安全感。


怎样学习Python?


既然你已经选择了Python,那么我们来谈谈如何学习它。


其实很简单,选择一个教程并完成它。然后再学习另一个,周而复始。


只学一本书或一个视频课程是不够的。还需要以渐增的方式不断接触代码,这需要有耐心、毅力和付出(以及其他优秀品质)!


因此我提出了一个给初学者的基本学习流程。作为人类(我上次测试过,AI对学习python不感兴趣),你的学习路线图可能会有所不同,但只需以它为参考就可以了。明白何时进入更高层次的学习非常重要,大多数人知道得太晚了。


1.基础 – 用python思考怎样把那些无聊的工作自动化。试试官方教程“The Python Tutorial / python.org”。 学会使用交互式学习工具python koans和版本管理工具git。

2.自学教程 – 学习RealPython.com上的文章和Corey Schafer的教学视频,阅读《Python初学者指南》(The Hitchhiker’s Guide to Python”),尽可能的多读多看。学习Flask(用 Python 编写的轻量级 Web 应用框架)官方教程。

3.文档 – 通过阅读Python文档学会使用Python库,可以从requests库开始。开始构建你自己的程序,任何程序都行,不要忘记参考步骤2中的文章和视频。

4.交流 – 翻看过去的Pycon技术大会的视频,它们的含金量很高。强烈推荐书籍《编写高质量的python代码》(Effective Python)和《Powerful Python》以及Talk Python Training上的课程

5.源代码 – 浏览你最喜欢的Python包的代码,现在正是参与Python开源项目的好时机。


您可能更想选择edX课程而不是阅读书籍,但其实学哪个课程都无所谓,整个学习过程才重要。


通过阅读书籍建立坚实的基础。


  • 按照教程用Python完成单个任务,如发送电子邮件或读写文件,这会让你了解许多有用的Python包和库。

  • 逐渐养成阅读文档的习惯,使用Python库构建小型应用程序。

  • 深入理解语言及其工具,了解该领域的资深人员正在做什么。

  • 直接阅读源代码。


如果你已经尝试过上图中所有的资源,下面的链接有更多有用的资料


https://www.fullstackpython.com/best-python-resources.html


在学习任何教程时,记得要编写代码作为练习,仅仅阅读代码示例是不够的。


学习通用问题的解决



就像水彩和油画有一点点不同一样,学习语言(框架/库)和学习编程之间也存在细微的差别。


在你学习诸如“Web全栈开发”课程之前,请明白它不会让你成为一名优秀的程序员,只会教你用一个特定的流程来解决一个简单的问题。(的确,大多数这种课程中搭建的web应用程序是很简单的。)知道如何搭建虽然很好,但能够设计自己的程序就更好了。要留意编程结构、设计模式和算法,这些并不是Python所特有的,对所有语言都差不多。


坚持下去,自然会发现规律。


寻找答案


如果你遇到困难(会的,还可能不止一次),请在放弃之前尝试解决它。很可能有人之前已经遇到过同样的问题并且在网上发布了解决方法,去网上搜吧。此外,Python社区(一个全世界使用Python的程序员交流社群)也很不错,在那你可以随时向人们寻求帮助。还可以加入Gitter上的Python频道。


https://gitter.im/FreeCodeCamp/python


哇Python!


Python中有很多值得学习的东西。它可以被用于许多领域,不要跳过基础知识的学习而直接转到特定的专业领域。比如,学习科学计算包PyTorch应该在学会打包之后,使用Django应该在使用虚拟环境之后。从长远来看,深入掌握Python的知识是值得的。某个特殊库的使用可以减少调试程序所花费的时间。



需要花多少时间来学习?


9条命吧。


学习东西需要时间,而且比大多数人告诉你的要长的多。你不可能在几个月内成为程序员专家,好事多磨。我建议你首先关注Python至少一年,避免在这一年里分心,但不要害怕学习其他新事物。Python并不是成为一个技术全面的开发人员的唯一知识。学习Git,Markdown,HTML也很不错。在这个过程中你可能还要重拾JS或统计学。


持续不断的学习,而不是只学一次就够了!

明白学习/构建周期


任何创造性的/研究性的努力都有两个不断重复的阶段 – 学习和构建。


在学习阶段,你应该专注于积累知识。阅读书籍,完成每个教程并熟悉已经掌握的知识。


在构建阶段,你可以通过应用前一阶段获得的知识来创造新的东西。不要怀疑你的技能,不要相信那些说你不行的声音,编写自己的应用程序,完成后回去继续学习。


要平衡这两个阶段,比如一到两个月的学习阶段,然后是一个月的构建阶段,大多数人都害怕开始构建阶段。


成为这场游戏的求学者


探索有关你正在学习的语言的一切知识,了解你所在领域的领军者,勇于提问,了解为什么要这样设计。


你可以在GitHub上关注Kenneth Reitz,在上下班路上听Talk Python,根据Python pep8编程规范来编写代码等等。你这样做并不是因为这是学习内容,而是因为你想要知道关于Python的一切。


相关报道:

https://hackernoon.com/a-realistic-roadmap-to-becoming-a-python-developer-ab5872959509


{{panelTitle}}
支持Markdown和数学公式,公式格式:\\(...\\)或\\[...\\]

还没有内容

关注微信公众号