关于学习python的建议

简介: 二、基础部分可以跟着廖雪峰的教程学,很好的教程可以跟着骆昊的Python100天可以查阅菜鸟教程当一本字典

一、前提部分

有计算机的常识。至少在安装Python,调环境变量能够看着教程能跟上,常识性的东西就随便翻翻书就行了。

二、基础部分

可以跟着廖雪峰的教程学,很好的教程

可以跟着骆昊的Python100天

可以查阅菜鸟教程当一本字典


三、书籍推荐


Learn Python the Hard Way

Think Python: How to Think Like a Computer Scientist

四、进阶部分

Data Science from Scratch

Python for Data Analysis

Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

Deep Learning with Python

Beginner’s Guide To Using PyTorch For Deep Learning

进阶部分就是一些数据科学相关的内容了,不是必须看的。基础部分基本上涵盖了Python所有应用领域的一个概览。可以挑选感兴趣的应用领域,再做更深层次的研究



(下文来自Python部落: https://python.freelycode.com/contribution/detail/571


高效学习的能力。John Sonmez说, 至少有5种我们犯的错误会影响高效学习.


1.一本书从头看到底,一页不漏: 我们只会记住我们读过的一小部分, 一些不会马上用的概念是时间和精力的极大浪费。可以花时间那样做,但不是刚开始的时候。 相反,你应该把精力放在当前需要学习的部分,而忽略其他部分。


2.没有计划地学习: 这方面我是一个惯犯。有时候我会因为一个新技术而变得很兴奋,接着马上投入进去,开始使用它,买很多书,读,读,读,用,用,用, 看一些相关的视频,订阅一些博客和新闻通讯,读的更多,用的更多 ,最后我还是原地打转,没有什么大的进步。这很糟糕。虽然我乐在其中,但是我却从未因此这样变成一个专家。


3.未能缩小范围: 有清晰的界限能让我们容易决定一个新的资源是否值得你花时间。 这就是为什么学习Python的最好的途径是试着用它开发些东西。为了完成一个任务,你会明白Python哪些部分是你不需要了解的,你会发现开始你把范围缩的越小,学到的就越多而且进步越快。


4.试着同时学两样(或更多)的东西:如果你是因为对Django 网页应用开发感兴趣而学习Python,那么很可能你在犯这个错误。你这里学点Python,那里学点Django,再学点Python,然后再学点Django.   本质上你就是我们特立尼达人喜欢说的“陀罗泥”,即转动了很多次,但是实际上没前进。


5.在实践之前投入太多时间学习: 因为我们害怕失败。我们想在尝试之前搞清楚我们在做什么。所以我们在付诸行动之前会花很多时间学习。过去我就是这样。具有讽刺意味的是我开始知道的越多,意识到自己不知道的也就越多,从而又想学更多。这使我更害怕尝试做些事情因为我知道我会做的狗屎一样。谁会想写狗屎一样的代码呢? 我们都想写优美的规范的Python代码。不要像我这样。不用等准备好了再开始: 做!学!


John Sonmez写的“软件开发者犯的5种学习错误”。


我的建议


步骤1:熟悉Python, Python社区很棒的一面是它持续关注具备好的文档。 它是免费而且优秀的。马上把它好好利用起来吧。 然后,读下“Python之禅”,它可以帮助你建立写Python代码需要具备的思维模式。


步骤2: 编写你的第一个程序, 想一个应用,然后把它用Python写下来,重点是学会用这门语言思考。但这就是这次实践的主题,当你只学你实现特性需要的知识时,应用程序会引导你下一步该学什么。 以后你可以经常回过头来学更多。


步骤3:多学一点Python,现在我建议你再多花点时间学习下这个语言,Python功能很齐全,意味着它有一个巨大而且很棒的标准库。当你实现你的应用程序的时候你可能已经匆匆翻阅了下文档,不错,我知道我是那样做的。再多学一点。这里是值得你学习的章节:1, 2, 3, 4, 5, 6.1, 6.2, 26.4 和 27.3. 其他部分继续浏览下即可。你不需要Python渊博的知识,只要大概了解Python有什么功能。你需要一些没有涉足过的知识(或将来你计划花时间去探索)的时候,再多投入些时间在其他部分才是明智的,通过找机会重构你的应用或增加更多的功能把新学到的知识运用到实践中。


步骤4: 开发,开发和开发更多的程序,记住重要的不是语言而是你用语言做什么(除非你是研究编程语言理论,编译器设计等之类的东西)。如果你有相关的专业知识,比如在数学,物理,经济和生物学领域,那么你可以把Python作为你的秘密武器去做一些很棒的事情进而推动那些领域的发展。如果你想不出要开发什么东西,那么你可以到Python部落(python.freelycode.com)上去找一个课程学习一下,他家的课程都是以项目为主体的,在讲项目的过程中给你传授知识,很有实践性.


步骤5:拓宽自己的视野,先做再去学习。这样很棒。但是,你肯定有知识漏洞。这是主动寻求更高级知识的时候。你完成了很多真实的应用,而且可能有很多问题。这样很好。这两个不错的资源可以满足你的求知欲:


          1. 流畅的Python(http://shop.oreilly.com/product/0636920032519.do


          2. 高效的Python(http://www.effectivepython.com/


Note:


1. 我不得不强调Python文档的质量。我已经说过文档Python教程和Python标准库,但是很少听人谈论过Python语言参考这个文档。 当我写Ruby忘记了一个结构体的语法和语义时我完全忽视了这样的文档,拥有这些信息的权威资源可以让你有信心地编写程序,比如如果你忘记了if语句的语法,你可以查阅这个文档,其中"The if statement"部分有详细解释,而不用去Stack Overflow上提问。


2.阅读PEP8。 如果你已经写了大量的Python,  Raymond Hettinger 做了一个很棒的题为Beyond PEP8的演示(同样)值得仔细看看。


3.从一开始就养成写好文档的习惯。Docstring Conventions是一个学习你应该遵守的约定的好资源。


4.读其他人的代码。我建议从Kenneth Reitz的代码开始。比如你可以看看tablib,你也可以从你用过的和听过受欢迎的库里面找到其他资源。阅读代码是有益的,因为它让你看到其他人是怎么使用自动散布型的Python。


5.David Beazley做了一些不错的东东, 当你想脑洞大开时,可以看看。


成为一个Python程序员专家需要花数年时间,但是打下坚实的基础只要几周就可以。如果你按照我的建议有意识地去实践,你就可能会成功。


相关文章
|
20天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
39 3
|
2天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
6天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
5天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
2天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
1天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
2天前
|
存储 索引 Python
Python学习的自我理解和想法(4)
今天是学习Python的第四天,主要学习了列表。列表是一种可变序列类型,可以存储任意类型的元素,支持索引和切片操作,并且有丰富的内置方法。主要内容包括列表的入门、关键要点、遍历、合并、判断元素是否存在、切片、添加和删除元素等。通过这些知识点,可以更好地理解和应用列表这一强大的数据结构。
|
2天前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!
|
8天前
|
安全 程序员 Python
Python学习的自我理解和想法(1)
本篇博客记录了作者跟随B站“黑马程序员”课程学习Python的第一天心得,涵盖了`print()`、`input()`、`if...else`语句、三目运算符以及`for`和`while`循环的基础知识。通过实际编写代码,作者逐步理解并掌握了这些基本概念,为后续深入学习打下了良好基础。文中还特别强调了循环语句的重要性及其应用技巧。
|
17小时前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。