如何自学成 Python 大神?这里有些建议
点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
人生苦短,我用 Python。
为什么?
简单明了的理由当然是开发效率高。但是学习 Python 的初学者往往会面临以下残酷的现状:
网上充斥着大量的学习资源、书籍、视频教程和博客,但是大部分都是讲解基础知识,不够深入;也有的比较晦涩,难以理解。
如果你真的想要高效地学习 Python,那就需要掌握如何过滤网上的垃圾教程资源的技能,并从其他有经验的程序员或在线编程社区中获得帮助。
倘若你没有任何编程知识,或者知之甚少,从一张白纸起步,或许会更容易一些。
在本篇文章中,我们将分享 6 位技术专家学习 Python 的最佳方法,也许当你学习举步维艰之时,他们的经验将会帮你躲避很多不必要的坑,以及可以让你学会如何通过 Python 教程编写出色的 Python 程序。
Quan Nguyen
第一位 Quan Nguyen,是来自越南的国际学生,在美国印地安那州 DePauw 大学攻读计算机科学和数学专业学位,同时还攻读哲学专业的学位。他两年前开始使用 Java 进行编程,后来发现自己需要一种具有更高可读性且能够快速实现原型开发的编程语言,不久之后,Python 就成为他最喜欢的语言。
他对数据科学和机器学习领域非常感兴趣,特别是对文本的情感分析。此外,他对人脸和物体识别也具有非常丰富的经验。
最初学习 Python 时,我使用的主要编程语言还是 Java。之所以学习 Python,是因为我想要使用一种可读性更高并且能够快速实现原型开发的编程语言(最直接的反映就是编程语言的“print”语句)。
第一阶段学习
从一开始,我自己非常喜欢用 Python 编写代码,因为 Python 语法不仅直接、直观,而且具有高度的一致性。一种特定的语法除了适用于特定的数据结构之外,还适用于其他类似的数据结构,比如 Python 的内置函数 len(),它用于返回一个Python列表(https://coolpythoncodes.com/python-list-tutorial)、元组、字符串、集合等多种数据结构的长度,而在 Java 中则有多种不同的语法,如 [variable].length、[variable].length()、length([variable])。
就如何高效地学习 Python 而言,勤加练习是最好的途径。
在我个人的学习经历中,首先我是通过阅读 Codecademy 的 Python 在线指南(https://www.codecademy.com/learn/learn-python)来熟悉Python 语法,当然也有其他类似的教程或指南来帮助你学习 Python 语法。
在第一阶段的学习之后,保持一定的持续性并继续学习 Python 是至关重要的。
进阶
在此阶段就需要一些中高级的教程或编程书籍,或者解决一些具有挑战性的编程问题。可实践的网站有:
Project Euler:https://projecteuler.net
HackerRank:https://www.hackerrank.com
CodeFights:https://codefights.com
dailyprogrammer:https://www.reddit.com/r/dailyprogrammer
虽然教程和书籍从多个角度提供不同的编程教学,让你可以深入了解该语言的特性,但实际的上手编程让大家有了一种更加有趣且更具挑战性的通道来学习不同的编程技巧、数据结构和第三方库,从而解决不同的编程问题。
这两种方法都有各自存在的价值,两者的结合将会让你对编程语言了解得更全面。
再次强调,关键点还是要在于对编程保持持续性,让你的大脑保持住对语言语法的了解,并改善你解决问题的思维过程。
实践
创建自己的项目,或加入开源社区(https://coolpythoncodes.com/julien-danjou)和 Github,这些都是编程的必经之路。对于像 Python 这样的语言来说更是如此,如今开发者社区正以惊人的速度增长,每天都有新的库和项目在快速更新。
通过学习一个新的 Python 库,你不但可以继续熟悉这门语言,还可以增加你的知识面,为未来解决实际问题打下基础。
在开源项目上与其他人一起工作将有助于对特定主题进行深入研究和了解,同时增加你的专业性和可信度。
Dibakar Saha
第二位 Dibakar Saha,是孟加拉工程技术学院(隶属于 Maulana Abul Kalam 科技大学)计算机科学与工程专业的一名 B.Tech 学生。他使用了很多编程语言,如 C、C ++、Java、Android、VB.NET、VB6、Python、Javascript 等。在他的博客(https://evilporthacker.blogspot.hk)中,有很多他参与过的高质量的 Python 项目。
从我个人经验来讲,学习一门编程语言最好的方法就是挑选一个问题,然后用编程语言来解决它。
想要解决一个问题,你需要非常清楚地了解问题本身。我的意思是你需要了解输入、输出、约束条件、规则和许多其他的东西。
以下是我推荐的一些步骤:
了解 Python 的基础知识
掌握任何一门编程语言的基础都是非常重要的。你至少首先应该明白如何输入和输出。
同时需要对 Python 中的列表、元组、集合和字典(https://coolpythoncodes.com/python-dictionary) 等不同的数据结构足够熟悉,能够理解循环和列表。
O'Reilly 出版的《Learning Python 第 5 版》和 Google 的 Python 在线教程(https://developers.google.com/edu/python/introduction?csw=1) 可以帮助你对 Python 基础进行足够的了解。在看书的同时,你还应该跟随你所学的教程进行编程练习。假设你今天学习了输入和输出,那么编写一个程序,以便你可以实现该功能。但是,如果你已经熟悉了这一点,那就不必了。
做项目
当你学习了 Python 的基础知识之后,就需要做一个真正的项目来实践了。
该项目可以是任何东西。可以是一个简单的 GUI 计算器项目,也可以是一个可以区分消息是“spam”还是“ham”的复杂 AI 项目。
在这种情况下,有一个很适合初学者的网站可以帮助你,那就是 Automate the Boring Stuff with Python(https://automatetheboringstuff.com)。如果你是 AI 或数据分析领域的初学者,你不妨看看这个(https://pythonprogramming.net)。如果一个项目看起来太难了,那么你可以采用下列解决方案之一:
持续专注于这个问题,直到你能解决所有的子问题。
先把问题放到一边,做一些与原问题有关的简单问题,然后再回来解决原来的问题。
通过谷歌搜索解决方案是可以的,但是要尽量先独立解决问题,自己编写代码,之后在去看别人是如何写的。
借鉴其他高质量代码
假设你是初学者,那么你很可能写的代码缓慢而丑陋。因此你需要阅读别人优秀的代码。可以了解一下 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(http://www.techbeamers.com),这是一个面向来自世界各地的程序员、测试人员和其他IT专业人员的电子学习平台。
在我的职业生涯中,我学过很多的编程语言。但是 Python 是我最喜欢的一个。因为我是通过自学掌握 Python 的。我没有参加任何线上、线下的培训,主要通过在线教程和一些书来学习 Python。
在分享我的 Python 学习方法之前,你首先要清楚学习 Python 的理由。
Python 的以下优点足以说服你学习它:
Python 非常简单直接。你几乎可以像伪代码一样读写它。
它有丰富的内置库以及第三方框架和库。
它有一个强大的社区,可以帮助你获得任何与编程有关的答案。
现在让我们看看你如何快速学习 Python。
首先是核心语法,简单的数据类型、变量、关键字、条件判断(比如if ... else)和控制语句(比如 loop)等基本语法块。
掌握基本语法之后,编写一些简单的程序,如阶乘、斐波纳契数列、单数/偶数、计算器等等。
下一步是了解列表、集合、元组、字典等特殊的数据结构。再次使用这些技能来解决一些实际问题,并使用这些数据结构来构建程序。
然后学习错误处理(异常:http://www.techbeamers.com/python-try-except-beginners)和文件管理(文件I/O:http://www.techbeamers.com/python-file-handling-tutorial-beginners)。
之后,了解 Python 中函数(https://coolpythoncodes.com/python-function)和类(https://coolpythoncodes.com/object-oriented-programming-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 ++ 等。他的博客(http://www.csestack.org/python/)上有很多非常棒的 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,那么可以开发一个计算器(http://www.csestack.org/code-for-gui-calculator-in-python),从社交网站获取数据并进行分析;
把实用函数编写成一个 Python 程序;
在新的 Python 程序中使用这些实用函数作为模块。(重复使用代码是很好的做法,可以节省大量时间。)
从你的小项目中创造出一些东西来激励自己,给自己一些值得学习的东西,并保持持续。找机会奖励自己。开发自己的兴趣保持长期学习!
学习一门编程语言不是要知道它所有的语法。而是了解它的特点和优势,以及你可以用它解决什么实际问题。至于语法你随时都可以通过 Google 进行查询。
你练习的越多,对编程语言的掌握就越好。用 Python 进行快乐编程!
Krishna Kant Mishra
我是 Krishna Kant Mishra,喜欢看板球,解决数学难题和听音乐。我来自印度,是一名计算机科学工程专业的毕业生。我目前在 Wipro Technology 公司担任 VMWare / Cloud 管理员。
高效学习 Python 的方法
首先要回答的问题是我为什么学习 Python?这是前提。
学习 Python 的基础知识很简单,但想要将知识应用到项目中可能很困难。我自身在尝试学习没有上下文和应用程序的代码。
以下是我高效学习 Python 的技巧:
一、学习 Python 语法
毫无疑问,你需要掌握基本知识。你应该有一个基本的语法在你的脑海中,至少能够知道用[:]进行字符串操作。
如果你连基本的语法都不了解,那么很难实现有用的东西。但是不要学习基础方面花太长的时间。我们的目标是学习非常基础的知识,然后在自己感兴趣的领域开始自己的项目。
我自己花了不到一个星期的时间,在 Codecademy 上学习 Python 的基础知识。这足以开始一个项目了。
二、看尽可能多的教程
假设我想了解 Python 中的 SQLite 数据库。
我首先在 Google 上搜索教程并扫描搜索结果,然后选择深入和易于理解的教程。
我通常使用“Print Friendly&PDF”(谷歌浏览器扩展)将在线教程转换为 PDF,以便我可以离线阅读在线教程。当然阅读书籍也可以,我选择了特定领域且通俗易懂的书籍(SQLite database in Python)。
在学习过程中如果遇到困难,我会在 Reddit、StackOverflow 和 Quora 等社区中向其他 Python 程序员寻求帮助。
问题解决之后,我会想一个我可以实现的项目,比如把我从网上抓取的数据存储在数据库中。
我的原则是,不要只阅读教程,你需要亲自动手写代码,否则很容易遗忘。
独立完成项目
掌握了 Python 语法的基本知识之后,你又完成了 Python 中一个特定领域的教程。现在就可以开始一个项目了。
你的项目可以是任何东西:
自动化领域(Practical Programming for Total Beginners:https://automatetheboringstuff.com)
编写一些你感兴趣的东西,比如数据分析(Python Programming Tutorials:http://pythonprogramming.net/dashboard)
需要注意的是:不是不提倡看教程,而是不提倡看大量的基础教程。例如,当你尝试执行特定的项目时,Python 编程教程是可以查看的。
但是要尽量独立,先尝试自己解决问题,然后再看别人是怎么解决问题的。
不断迭代写好的代码
不断温习 Python 语言特性,找出哪些方法是已经过时的。所以,再次强化字典的使用,以及对字符串进行切片和反转处理等等。
当你意识到你的代码不好时该怎么做
在这一点上,你可以把自己的代码与其他人的进行比较。比较时,请记住以下问题:
如何使我的代码更快?
如何改进我的代码?
总结
Python 发展和变化非常之快。大概只有少数人可以声称自己完全理解它。你需要进行持续地学习和开发项目。
如果你这样做的话,你会发现自己在 6 个月前写的代码简直糟糕得没法看。如果你有这样的体会,那证明你走在正确的轨道上。
Python 是一门非常有趣和有益的语言,如果使用正确的学习方法,我相信任何人都可以达到高水平的掌握程度。
Cliff John Hill
入门
Python 从一开始就被设计成一门易学的语言。最有效的学习方法是通过在线课程学习,比如:
Google 的 Python 教程:
https://developers.google.com/edu/python/introduction
Codecademy 一些课程:
https://www.codecademy.com
Python.org 的 Python 教程:
https://www.python.org
学习 Python 之时,首先需要掌握简单的语法和基本概念。个人建议找一个感兴趣的开源项目并投入其中。
进阶
进一步的培训可以来自 PyCon讲座(http://pyvideos.org),几乎所有的讲座都可以通过 YouTube 在线获得。Python Mush Watch (http://pymust.watch)的视频比较集中,另外 我推荐 Raymond Hettinger 的视频(他非常擅长搞演讲)此外 David Beazly、Brandon Rhodes、Guido van Rossum 和 Ned Batchelder 的教程也不错。
“Python Crash Course”这本书很棒,它可以让你快速掌握基本知识,然后使用 Python 进行一些实用的编程。
Python 学习资源汇总
以下是一些有用的学习资料,可以帮助你学习 Python。
Python官方文档
Python 3.6.3 文档:https://docs.python.org/3
Python 2.7.14 文档:https://docs.python.org/2.7
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:
https://talkpython.fm
Michael Kennedy 和 Brian Okken 主持的 PythonBytes:
http://pythonbytes.fm
obias Macey 主持的 Podcast.__init__:
https://www.podcastinit.com
Kenneth Reitz 和 Alex Gaynor 主持的 Import This: A Podcast for Humans
Test and Code Podcast:
http://pythontesting.net/test-podcast
Python 程序员简报
Pycoder’s Weekly:http://www.pycoders.com
PythonTips:https://pythontips.com
ImportPython:http://importpython.com/newsletter
Python Weekly:https://www.pythonweekly.com
最后,也欢迎大家在评论区补充 Python 的学习资料,技术之路,我们共同进步。
原文:
https://coolpythoncodes.com/best-way-learn-python-programming
作者:Rapture Godson
译者:安翔
责编:苏宓
————— END —————