对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃。以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶段

NO.1 新手入门阶段,学习基础知识

总体来讲,找一本靠谱的书,由浅入深,边看边练。

网上的学习教程有很多,多到不知道如何选择。所有教程在基础知识介绍方面都差不多,区别在于讲的是否足够细(例如运行原理)以及是否有足够的练习。目前推荐大家看书《Python编程 从入门到实践》,作者是美国教师,内容从基础知识开始,循序渐进,层层深入,适合零基础者。课程内容第二部分有三个项目实战:外星人入侵、数据可视化、Web应用程序。

不要看很多本,专注于一本,从头到尾看下去,把里面的例子和习题都动手练习一遍,搞懂为什么。编程从一开始就离不开练习,光看是不可能看会的。只有你在电脑上一行一行的敲代码,才会发现其中没注意到的细节问题,才能有更深刻的理解。缩进、大小写、括号、引号、代码执行的方式等,都是早期学习的坑,切记,不要直接复制代码,一定要手动去敲代码、运行代码。

这个阶段最重要的就是:学好基础知识。掌握了基础之后,便可以开始做项目练习锻炼编程思维了。

NO.2 做项目练习阶段,锻炼编程思维

掌握了Python的基础知识后,你会写代码了,但是还无法掌握"编程思维"。因此需要更多的练习,来理解程序的结构设计、算法等,能用1行代码解决的事情,坚持不用2行代码;能1秒运算完成坚决不用2秒

网络上有很多的的Python入门练手项目,例如知乎《Python 的练手项目有哪些值得推荐》,里面有很多的练手项目。练习项目,可以锻炼自己的编程思维,同时了解Python的内置库和第三方库,开始学习如何使用这些库

编程入门最好能找一个已经会Python的人,在遇到问题时进行咨询,可以少走很多弯路。但是,要学会查看官方文档和搜索,学会如何更好地提问。没人愿意帮你写作业或是回答那些“一搜便知”的问题。学会解决问题的方法很重要,这将伴随你的编程生涯。

NO.3 真实的项目实战阶段,实际应用

经过一段时间的学习和练习,写过一些小的程序之后,往往会陷入瓶颈,这个时候的你会写代码会做题,但是对于真实的项目开发依然缺少认识(例如如何开始写游戏"外星人入侵"),一旦程序规模较大就无从下手,不知道从哪里开始。这个时候可以去挑战具体的项目了,爬虫、web开发、数据分析、机器学习等广阔的世界已经向你敞开

下面几个图谱可以提供给大家一些学习思路

在这个阶段,需要有明确的开发目标,并且对目标做一定的设计和功能划分,然后逐步开发直至完成。这其中会遇到各种问题,在不断解决问题时,你的开发水平和问题解决能力也将随之得到提高

还比如:以下是部分项目的实际应用,提供了解决思路和实现过程

  • 抓取美女写真图片并保存
  • 人脸识别-抓取颜值大于70分的美女图片
  • 电影票比价网
  • 12306抢票程序

编程心态很重要,因为编程是个理论与实践相结合的事情,并且实践更重要。从简单的程序开始,坚持练习。一定不能着急,欲速则不达。也不用太在意你做的项目本身是不是够酷炫够高大上。对学习阶段来说,不管好项目坏项目,只要是在写,都不浪费。当你的代码行数积累的一定程度时,你会发现自己的编程能力已经和当年不是一个档次了

NO.4 进阶提升,学习多线程和选择方向

这个阶段的你,已经可以写项目了,但是对于底层可能了解的还不够。例如,同样的代码量,如何使得代码运行的效率更快更节省内存?这些需要不断的提升,需要学习多线程和多进程。我目前处于这个阶段,也处于学习状态,所以讲的可能不完全对,一起探索

学习编程需要持之以恒,对于初学者需要选个感兴趣的领域,选择一个方向,专注的深入学习,努力成为该领域的专家。当然,大神一般都是个个领域都神通广大,谁让我们是菜鸟呢,还是先选个方向踏踏实实的努力吧

1. Web开发方向

建议看简单的框架flask,推荐《Flask Web开发:基于Python的Web应用开发实战》

2. 数据分析方向

建议看《利用Python进行大数据分析》,主要讲Pandas库和数据分析。很多金融巨头,用Python进行数据分析。引用大神Kirat的话说,“它正在快速代替主流金融机构中使用的工具和语言,并成为事实上的标准”

3. 科学计算方向

建议看《python_sci用python进行科学计算》

4. AI的机器学习方向

建议看《Hands-on ML with Scikit-learn and TensorFlow》

5. AI的计算机视觉方向

建议看《Python计算机视觉编程》,我还在看,虽然看得不多

6. 网络爬虫方向

Python入门学习指南的更多相关文章

  1. Python入门学习指南--内附学习框架

    https://blog.csdn.net/weixin_44558127/article/details/86527360

  2. Python入门学习:1.变量和简单的数据类型

    python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用   变量,顾名思义是一个可变的量, ...

  3. python入门学习:9.文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  4. python入门学习:8.类

    python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...

  5. python入门学习:7.函数

    python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数   使用关键字def ...

  6. python入门学习:6.用户输入和while循环

    python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...

  7. python入门学习:5.字典

    python入门学习:5.字典 关键点:字典 5.1 使用字典5.2 遍历字典5.3 嵌套 5.1 使用字典   在python中字典是一系列键-值对.每个键都和一个值关联,你可以使用键来访问与之相关 ...

  8. python入门学习:4.if语句

    python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试   if语句基本格式如下,注意不要漏了冒号 1if 条件 :2     ...

  9. python入门学习:3.操作列表

    python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表   循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...

随机推荐

  1. LCD: 2D-3D匹配算法

    LCD: 2D-3D匹配算法 标题:LCD:Learned Cross-Domain Descriptors for 2D-3D Matching 作者:Quang-Hieu Pham, Mikael ...

  2. wrk(1)- 详细使用

    介绍 wrk 是一个类似 ab(apache bench).jmeter 的压力测试工具,官方称它为:现代的 HTTP 基准测试工具 用 C 编写的 HTTP 协议压测工具 底层基于 epoll 和 ...

  3. list 分批导入db, 每1000条数据一批 , 从字符串中获取数字,小数, 版本号比较

    //这个有个弊端: 分组后分批导入, 是阻塞的,我没有导入完成,别人就不能导入, 这里可以优化成异步,线程池 public static void main(String[] args) { Rand ...

  4. Python 5种方法实现单例模式

    基本介绍 一个对象只允许被一次创建,一个类只能创建一个对象,并且提供一个全局访问点. 单例模式应该是应用最广泛,实现最简单的一种创建型模式. 特点:全局唯一,允许更改 优缺点 优点: 避免对资源的多重 ...

  5. 小白学k8s(9)-gitlab-runner实现go项目的自动化发布

    gitlab构建CI/CD 准备 docker部署gitlab 使用二进制部署gitlab-runner gitlab-runner注册 配置Variables 简单先来个测试 开始构建 遇到的报错 ...

  6. C#winform的Richtextbox控件实现自动滚动到最后一行功能

    这里有两种情况 如果是采用的是richtextbox的AppendText的方法添加的内容,则只需 设置HideSelection为false 如果采用的是其他添加内容的方法,则需要添加TextCha ...

  7. asp.net core 实现 face recognition 使用 tensorflowjs(源代码)

    功能描述 上传照片文件名及是系统要识别标签或是照片的名称(人物标识) 提取照片脸部特征值(调用 facemesh模型) 保存特征值添加样本(调用 knnClassifier) 测试上传的图片是否识别正 ...

  8. 磁盘文件监控(Java)并发送邮件通知、系统定期执行的办法

    以下是通过xml文件进行的监控路径.文件以及邮件信息的配置,读取xml文件使用的是三方jar包:dom4j 收发邮件采用的是最普通的javamail,需要两个jar包,mail.jar和activit ...

  9. 《面试补习》- Java集合知识梳理

    一.ArrayList ArrayList 底层数据结构为 动态数组 ,所以我们可以将之称为数组队列. ArrayList 的依赖关系: public class ArrayList<E> ...

  10. 深入学习Netty(1)——传统BIO编程

    前言 之前看过Dubbo源码,Nacos等源码都涉及到了Netty,虽然遇到的时候查查资料,后面自己也有私下学习Netty并实践,但始终没有形成良好的知识体系,Netty对想要在Java开发上不断深入 ...