如何自学成 Python 大神?这里有些建议

人生苦短,我用 Python。
为何?
简单明了的理由固然是开发效率高。可是学习 Python 的初学者每每会面临如下残酷的现状:
网上充斥着大量的学习资源、书籍、视频教程和博客,可是大部分都是讲解基础知识,不够深刻;也有的比较晦涩,难以理解。
若是你真的想要高效地学习 Python,那就须要掌握如何过滤网上的垃圾教程资源的技能,并从其余有经验的程序员或在线编程社区中得到帮助。
假若你没有任何编程知识,或者知之甚少,从一张白纸起步,或许会更容易一些。
在本篇文章中,咱们将分享 6 位技术专家学习 Python 的最佳方法,也许当你学习举步维艰之时,他们的经验将会帮你躲避不少没必要要的坑,以及可让你学会如何经过 Python 教程编写出色的 Python 程序。程序员

Quan Nguyen
第一位 Quan Nguyen,是来自越南的国际学生,在美国印地安那州 DePauw 大学攻读计算机科学和数学专业学位,同时还攻读哲学专业的学位。他两年前开始使用 Java 进行编程,后来发现本身须要一种具备更高可读性且可以快速实现原型开发的编程语言,不久以后,Python 就成为他最喜欢的语言。
他对数据科学和机器学习领域很是感兴趣,特别是对文本的情感分析。此外,他对人脸和物体识别也具备很是丰富的经验。算法

最初学习 Python 时,我使用的主要编程语言仍是 Java。之因此学习 Python,是由于我想要使用一种可读性更高而且可以快速实现原型开发的编程语言(最直接的反映就是编程语言的“print”语句)。
第一阶段学习
从一开始,我本身很是喜欢用 Python 编写代码,由于 Python 语法不只直接、直观,并且具备高度的一致性。一种特定的语法除了适用于特定的数据结构以外,还适用于其余相似的数据结构,好比 Python 的内置函数 len(),它用于返回一个Python列表连接 Java 中则有多种不一样的语法,如 [variable].length、[variable].length()、length([variable])。
就如何高效地学习 Python 而言,勤加练习是最好的途径。
在我我的的学习经历中,首先我是经过阅读 Codecademy 的 Python 在线指南连接 语法,固然也有其余相似的教程或指南来帮助你学习 Python 语法。
在第一阶段的学习以后,保持必定的持续性并继续学习 Python 是相当重要的。
进阶
在此阶段就须要一些中高级的教程或编程书籍,或者解决一些具备挑战性的编程问题。可实践的网站有:
Project Euler连接
HackerRank连接
CodeFights连接
dailyprogrammer连接
虽然教程和书籍从多个角度提供不一样的编程教学,让你能够深刻了解该语言的特性,但实际的上手编程让你们有了一种更加有趣且更具挑战性的通道来学习不一样的编程技巧、数据结构和第三方库,从而解决不一样的编程问题。
这两种方法都有各自存在的价值,二者的结合将会让你对编程语言了解得更全面。
再次强调,关键点仍是要在于对编程保持持续性,让你的大脑保持住对语言语法的了解,并改善你解决问题的思惟过程。
实践
建立本身的项目,或加入开源社区连接 Github,这些都是编程的必经之路。对于像 Python 这样的语言来讲更是如此,现在开发者社区正以惊人的速度增加,天天都有新的库和项目在快速更新。
经过学习一个新的 Python 库,你不但能够继续熟悉这门语言,还能够增长你的知识面,为将来解决实际问题打下基础。
在开源项目上与其余人一块儿工做将有助于对特定主题进行深刻研究和了解,同时增长你的专业性和可信度。
Dibakar Saha
第二位 Dibakar Saha,是孟加拉工程技术学院(隶属于 Maulana Abul Kalam 科技大学)计算机科学与工程专业的一名 B.Tech 学生。他使用了不少编程语言,如 C、C ++、Java、Android、VB.NET、VB六、Python、Javascript 等。在他的博客连接 Python 项目。数据库

从我我的经验来说,学习一门编程语言最好的方法就是挑选一个问题,而后用编程语言来解决它。
想要解决一个问题,你须要很是清楚地了解问题自己。个人意思是你须要了解输入、输出、约束条件、规则和许多其余的东西。
如下是我推荐的一些步骤:
了解 Python 的基础知识
掌握任何一门编程语言的基础都是很是重要的。你至少首先应该明白如何输入和输出。
同时须要对 Python 中的列表、元组、集合和字典连接 等不一样的数据结构足够熟悉,可以理解循环和列表。
O'Reilly 出版的《Learning Python 第 5 版》和 Google 的 Python 在线教程连接 能够帮助你对 Python 基础进行足够的了解。在看书的同时,你还应该跟随你所学的教程进行编程练习。假设你今天学习了输入和输出,那么编写一个程序,以便你能够实现该功能。可是,若是你已经熟悉了这一点,那就没必要了。
作项目
当你学习了 Python 的基础知识以后,就须要作一个真正的项目来实践了。
该项目能够是任何东西。能够是一个简单的 GUI 计算器项目,也能够是一个能够区分消息是“spam”仍是“ham”的复杂 AI 项目。
在这种状况下,有一个很适合初学者的网站能够帮助你,那就是 Automate the Boring Stuff with Python连接 AI 或数据分析领域的初学者,你不妨看看这个连接
持续专一于这个问题,直到你能解决全部的子问题。
先把问题放到一边,作一些与原问题有关的简单问题,而后再回来解决原来的问题。
经过谷歌搜索解决方案是能够的,可是要尽可能先独立解决问题,本身编写代码,以后在去看别人是如何写的。
借鉴其余高质量代码
假设你是初学者,那么你极可能写的代码缓慢而丑陋。所以你须要阅读别人优秀的代码。能够了解一下 GitHub 或者其余开源平台的 Python 项目。
了解 Python 模块和库
Python 有一大堆免费的库和模块能够直接拿来使用,所以你须要了解经常使用的 Python 库,好比 NumPy、SciPy、Pandas、Matplotlib 等。
这些库拥有丰富的功能,你没必要本身从头开始编写像贝叶斯类这样的算法。使用库可让你的代码量更少且易读。
Meenakshi Agarwal
Meenakshi Agarwal 是 TechBeamers.com 网站的联合创始人。她是 Lucknow 大学计算机科学专业毕业生,拥有计算机应用硕士学位。她曾与大型跨国公司合做,花费数年时间,使用 C / C ++、Visual C ++、Python、Java、J2EE、C#、DotNet、Selenium、FitNesse 和其余一些技术进行软件开发,产品设计,测试和自动化。编程

我是 Meenakshi Agarwal,一名计算机科学专业的毕业生,在软件产品开发和测试方面有丰富的经验。因为我对编程和写做充满热情,因此我开始使用 Techbeamers连接
在个人职业生涯中,我学过不少的编程语言。可是 Python 是我最喜欢的一个。由于我是经过自学掌握 Python 的。我没有参加任何线上、线下的培训,主要经过在线教程和一些书来学习 Python。
在分享个人 Python 学习方法以前,你首先要清楚学习 Python 的理由。
Python 的如下优势足以说服你学习它:
Python 很是简单直接。你几乎能够像伪代码同样读写它。
它有丰富的内置库以及第三方框架和库。
它有一个强大的社区,能够帮助你得到任何与编程有关的答案。
如今让咱们看看你如何快速学习 Python。
首先是核心语法,简单的数据类型、变量、关键字、条件判断(好比if ... else)和控制语句(好比 loop)等基本语法块。
掌握基本语法以后,编写一些简单的程序,如阶乘、斐波纳契数列、单数/偶数、计算器等等。
下一步是了解列表、集合、元组、字典等特殊的数据结构。再次使用这些技能来解决一些实际问题,并使用这些数据结构来构建程序。
而后学习错误处理(异常连接
以后,了解 Python 中函数连接
了解 Python 的模块和库。Python 有很是多的库,虽然没有直接包含,可是很容易安装,没有任何理由去从新造轮子。
如今是帮助他人学习 Python 的时候了。教会别人是增强你所学知识的最好方法之一。
参加论坛上的讨论贴,帮助其余成员解决问题。加入社区,并考虑在 StackOverflow 或 Reddit 上回答问题。
最后,选择一个专业领域。例如,你能够开始投身机器学习。这将须要你学习一些第三方库和包,如 Pandas、NumPy、SciPy 等。
Aniruddha Chaudhari
Aniruddha Chaudhari 拥有计算机科学硕士学会(来自印度 NIT Trichy),他是 CSEstack.org (Programming and Computer Science Portal)的创始人。Python 是他第一个也是他最喜好的语言。除此以外,他还学习了多种编程语言,如 C、C ++ 等。他的博客连接 Python 教程。浏览器

同其余编程语言(如 C、C ++ 和 Java)相比,Python 学习起来很容易,至少入门很容易。
Python 有两个版本:Python 2.x 和 Python 3.x。选择合适的 Python 版本很是重要。
有不少大公司使用 Python 2.x 构建项目。因此若是你想参与这些项目,Python 2.x 是正确的选择。若是你不肯定,那么选择 Python 3.x 吧,由于 Python 3.x 是将来。
若是你想有效地学习 Python,你首先应该专一于两件事:
了解 Python 中的数据结构;
熟悉 Python 库的使用。
Python 数据结构包括字符串、列表、元组等等。
它们的区别是什么?什么时候使用哪一种结构及其各类关联的方法来操纵数据?
Python 提供的库很是强大。有大量的库可用于各类项目。
例如,若是你想成为一名数据科学家,有许多模块和库供你使用,如 Panda、Numpy、Tensoflow 。找到你感兴趣的领域,并搜索该领域的库,这些库一般均可以避免费使用。
为了进行实际编程,须要遵循以下步骤:
建立一个目录来保存全部的 Python 程序;
开始先开发一些小项目。若是你正在学习 GUI,那么能够开发一个计算器连接
把实用函数编写成一个 Python 程序;
在新的 Python 程序中使用这些实用函数做为模块。(重复使用代码是很好的作法,能够节省大量时间。)
从你的小项目中创造出一些东西来激励本身,给本身一些值得学习的东西,并保持持续。找机会奖励本身。开发本身的兴趣保持长期学习!
学习一门编程语言不是要知道它全部的语法。而是了解它的特色和优点,以及你能够用它解决什么实际问题。至于语法你随时均可以经过 Google 进行查询。
你练习的越多,对编程语言的掌握就越好。用 Python 进行快乐编程!
Krishna Kant Mishra数据结构

我是 Krishna Kant Mishra,喜欢看板球,解决数学难题和听音乐。我来自印度,是一名计算机科学工程专业的毕业生。我目前在 Wipro Technology 公司担任 VMWare / Cloud 管理员。
高效学习 Python 的方法
首先要回答的问题是我为何学习 Python?这是前提。
学习 Python 的基础知识很简单,但想要将知识应用到项目中可能很困难。我自身在尝试学习没有上下文和应用程序的代码。
如下是我高效学习 Python 的技巧:
1、学习 Python 语法
毫无疑问,你须要掌握基本知识。你应该有一个基本的语法在你的脑海中,至少可以知道用[:]进行字符串操做。
若是你连基本的语法都不了解,那么很难实现有用的东西。可是不要学习基础方面花太长的时间。咱们的目标是学习很是基础的知识,而后在本身感兴趣的领域开始本身的项目。
我本身花了不到一个星期的时间,在 Codecademy 上学习 Python 的基础知识。这足以开始一个项目了。
2、看尽量多的教程
假设我想了解 Python 中的 SQLite 数据库。
我首先在 Google 上搜索教程并扫描搜索结果,而后选择深刻和易于理解的教程。
我一般使用“Print Friendly&PDF”(谷歌浏览器扩展)将在线教程转换为 PDF,以便我能够离线阅读在线教程。固然阅读书籍也能够,我选择了特定领域且通俗易懂的书籍(SQLite database in Python)。
在学习过程当中若是遇到困难,我会在 Reddit、StackOverflow 和 Quora 等社区中向其余 Python 程序员寻求帮助。
问题解决以后,我会想一个我能够实现的项目,好比把我从网上抓取的数据存储在数据库中。
个人原则是,不要只阅读教程,你须要亲自动手写代码,不然很容易遗忘。
独立完成项目
掌握了 Python 语法的基本知识以后,你又完成了 Python 中一个特定领域的教程。如今就能够开始一个项目了。
你的项目能够是任何东西:
自动化领域(Practical Programming for Total Beginners连接
编写一些你感兴趣的东西,好比数据分析(Python Programming Tutorials连接
须要注意的是:不是不提倡看教程,而是不提倡看大量的基础教程。例如,当你尝试执行特定的项目时,Python 编程教程是能够查看的。
可是要尽可能独立,先尝试本身解决问题,而后再看别人是怎么解决问题的。
不断迭代写好的代码
不断温习 Python 语言特性,找出哪些方法是已通过时的。因此,再次强化字典的使用,以及对字符串进行切片和反转处理等等。
当你意识到你的代码很差时该怎么作
在这一点上,你能够把本身的代码与其余人的进行比较。比较时,请记住如下问题:
如何使个人代码更快?
如何改进个人代码?
总结
Python 发展和变化很是之快。大概只有少数人能够声称本身彻底理解它。你须要进行持续地学习和开发项目。
若是你这样作的话,你会发现本身在 6 个月前写的代码简直糟糕得无法看。若是你有这样的体会,那证实你走在正确的轨道上。
Python 是一门很是有趣和有益的语言,若是使用正确的学习方法,我相信任何人均可以达到高水平的掌握程度。
Cliff John Hill框架

入门
Python 从一开始就被设计成一门易学的语言。最有效的学习方法是经过在线课程学习,好比:
Google 的 Python 教程:
连接
Codecademy 一些课程:
连接
Python.org 的 Python 教程:
连接
学习 Python 之时,首先须要掌握简单的语法和基本概念。我的建议找一个感兴趣的开源项目并投入其中。
进阶
进一步的培训能够来自 PyCon讲座连接 YouTube 在线得到。Python Mush Watch 连接 我推荐 Raymond Hettinger 的视频(他很是擅长搞演讲)此外 David Beazly、Brandon Rhodes、Guido van Rossum 和 Ned Batchelder 的教程也不错。
“Python Crash Course”这本书很棒,它可让你快速掌握基本知识,而后使用 Python 进行一些实用的编程。
Python 学习资源汇总
如下是一些有用的学习资料,能够帮助你学习 Python。
Python官方文档
Python 3.6.3 文档连接
Python 2.7.14 文档连接
Python 好书推荐
Tony Gaddis 的《Starting Out with Python》
Python Crash 课程:Eric Matthes 撰写的《Python编程 从入门到实践》
Zed Shaw 的 《"笨办法"学 Python》
Doug Hellmann 的 《The Python Standard Library by Example》
Al Sweigart 的 《Python 编程快速上手:让繁琐工做自动化》
Allen B. Downey 的 《像计算机科学家同样思考 Python》
Mark Pilgrim 的《Dive Into Python 3》
Python 程序员播客
Michael Kennedy 的 Talk Python To Me Podcast:
连接
Michael Kennedy 和 Brian Okken 主持的 PythonBytes:
连接
obias Macey 主持的 Podcast.__init__:
连接
Kenneth Reitz 和 Alex Gaynor 主持的 Import This: A Podcast for Humans
Test and Code Podcast:
连接
Python 程序员简报
Pycoder’s Weekly连接
PythonTips连接
ImportPython连接
Python Weekly连接
最后,也欢迎你们在评论区补充 Python 的学习资料,技术之路,咱们共同进步。
原文:
连接
做者:Rapture Godson
译者:安翔
责编:苏宓
————— END —————机器学习