对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃。以下是结合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. Proteus中包含的传感器类型(Transducers)

    1. 传感器列表 2. 部分传感器的测量电路 (1)光照传感器,搭采样电阻,测电压输出. (2)距离传感器,带采样电阻,测电压输出. (3)粉尘传感器,测PWM脉宽 其余传感器多为总线类型的传感器,各 ...

  2. AI推理单元

    AI推理单元 推理服务供了一套面向 MLU(Machine Learning Unit,机器学习单元)设备的类似服务器的推理接口(C++11标准),以及模型加载与管理,推理任务调度等功能,极大地简化了 ...

  3. CUDA 11功能清单

    CUDA 11功能清单 基于NVIDIA Ampere GPU架构的新型NVIDIA A100 GPU在加速计算方面实现了最大的飞跃.A100 GPU具有革命性的硬件功能,CUDA 11与A100一起 ...

  4. CUDA统一内存分析

    CUDA统一内存分析 PascalMIG 如 NVIDIA Titan X 和 NVIDIA Tesla P100 是第一个包含页 GPUs 定额引擎的 GPUs ,它是统一内存页错误处理和 MIG ...

  5. CUDA 11功能展示

    CUDA 11功能展示 CUDA 11 Features Revealed 新的NVIDIA A100 GPU基于NVIDIA安培GPU架构,实现了加速计算的最大一代飞跃.A100 GPU具有革命性的 ...

  6. Single Shot Multibox Detection (SSD)实战(下)

    Single Shot Multibox Detection (SSD)实战(下) 2. Training 将逐步解释如何训练SSD模型进行目标检测. 2.1. Data Reading and In ...

  7. C++标准模板库(STL)——vector常见用法详解

    vector的定义 vector<typename> name; 相当于定义了一个一维数组name[SIZE],只不过其长度可以根据需要进行变化,比较节省空间,通俗来讲,vector就是& ...

  8. Bind DNS服务——转发与区域记录更新

    Linux基础服务--Bind DNS服务 Part4 转发与区域记录更新 一个DNS服务器不可能保存所有的区域记录,所以我们一般都会将其他的区域纪录转发到其他的服务器上进行解析. Bind9提供了全 ...

  9. 【VBA】读取另一个excel工作簿中的内容

    后台打开工作簿读取内容源码: Sub subOpenWorkbook() Dim datebase As String datebase = "... ....xlsx" Appl ...

  10. 05:JS(01)

    内容概要 JavaScript编程语言开头 数值类型 字符类型 布尔值 null与undefined 对象 数组 自定义对象 流程控制 函数 内置对象 时间对象 正则对象 JSON对象 BOM操作(j ...