前言

很多刚开始学习Python的初学者,一般看文章,看视频,都会需要直接获取源代码,其实这样对自己的学习是不怎么好的,因为无论是有没有其他语言的经验,入门Python都很简单。Python拥有简单直观的语法,方便的语法糖,以及丰富的第三方库。只要一个基础的Python教程,大家基本上都能无障碍的入门。在入门之后,很多人对于进一步学习的建议都是“做项目”、“看源码”,然而这样的建议实际是较难实现的,自己执行的效率会很低。

“这种时候如果有整理好的Python代码片段,如果有指导分析优秀开源代码的教程就好了。”

抱着这样的想法,我开始从自己“低效”的学习中,整理“高效”的干货,希望能够帮助到各位初学者。这就是“Python代码阅读”系列。

在这个系列中,最开始是大量Pythonic的代码片段,不仅展示了如何应用Python语法和标准库,还展示了一些有趣的技术和思维方式。

后续计划增加GitHub上流行的简单Python项目。以及一些小型的实用系统的实现。

通过下面的链接就可以进入到“Python代码阅读”系列合集的施工现场。

链接:“Python代码阅读”系列

初学Python的常见问题

对于初学者而言,Python入门很简单。入门之后只靠基础语法也完全可以做到平时写写脚本,解决自己工作、生活上的重复性劳动。想要什么功能,基本上都能找到方便的库。在只求应用,不求理解的情况下,很快就能实现日常表格处理、文件下载、邮件发送等功能。甚至像图像处理、OCR这样“高端”的功能也有对应的工具库可以使用。

但是做到这种程度只是小打小闹,想要真正的在开发工作中使用Python语言,或者是在GitHub上贡献开源代码,都是远远不够的。这时候,初学者的常见问题主要集中在以下四点:

学会了语法,但是不会应用。

仍然是用其他语言的逻辑在写Python代码,不是Pythonic的代码。

Python项目结构不合理。

缺少对更深入主题的研究,例如装饰器、异常处理、多进程多线程、设计模式等。

传统建议的解决方案

对于已经了解基础语法,学习了Python基础数据结构的初学者,传统的建议是做项目、看源码。这样的建议不能说不正确,但是在执行起来会有各种各样的问题,从而导致学习效率低下。

首先聊一下做项目

对于初学者而言,应聘到一个使用Python语言做开发的团队显然是不现实的。那么基本上项目的来源就是自己找的练手课题或者在GitHub上参与开源项目。

自己找个项目进行练手可以说是效果最差的方式了。它实际上还是摸着石头过河,接触不到优秀的源码和实现方法,也没有人指导。最终也只是实现了功能而已,不论是代码设计还是项目结构,都是闭门造车,提升有限。最大的作用也就是提高对语法、基本数据结构和标准库的熟练程度。

至于在GitHub上找项目,一般新手能够找到的优秀项目基本上都已经过了初始阶段。在这种情况下,对于初学者而言,加入维护的难度较大,能够做的工作更多的只是一些小bug的发现和修复,甚至于只能从文档方面开始。

然后聊一下看源码

对于初学者而言,虽然直接看源码复杂度较高,但是只要肯下功夫,用好搜索引擎,大部分功能性的源码还是可以看懂的。不过如果没有人指导的话,效率肯定是不高的。同时很可能只是看懂逻辑,明白了功能如何实现。如果没有一定的设计模式等知识的基础,难以发现和理解代码的设计思路和原因。实际“看源码”的作用就少了一半,得不到精华。

我的方法

我的方法也是从传统的方法里面来的。说白了就是自己受苦,自己从“低效”的“看源码”和“做项目”的学习中,整理“高效”的干货,挑选合适的源码和项目,配上合适的讲解,从而可以更好的被初学者接受,提高学习效率。

这就是“Python代码阅读”系列。

目前该系列还在努力连载施工中,通过下面的链接就可以进入到“Python代码阅读”系列合集的施工现场。

链接:“Python代码阅读”系列

“Python代码阅读”系列首先从简单实用的函数开始,聚焦单一功能性的函数。不仅展示了如何应用Python语法和标准库编写足够Pythonic的代码,还展示了一些有趣的技术和思维方式。同时这些代码片段也具备很高的实用性,我自己平时也会在其他项目中使用到。

后续的计划是增加GitHub上兼具实用性和趣味性的优秀Python项目的源码解读。从项目结构开始梳理,理清功能和逻辑,讲解代码设计和实现。

同时也计划增加一些趣味的小型系统的实现。例如小型区块链、数据库、docker、git甚至是编程语言等。通过一步一步的实现这些系统,不仅能够学习到Python编程,还能学习到这些系统的设计理念和内部实现逻辑。

施工进度与地点

目前“Python代码阅读”系列还处于第一阶段的编写中,也是最适合刚刚进行完Python基础语法学习的初学者的部分。系列中展示的代码片段可以尽快让初学者掌握如何应用Python语法和标准库,同时其实用的功能性,也可以在以后的开发中用到。

为什么我不推荐Python初学者直接看项目源码?工作五年的程序员给的忠告相关推荐

  1. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach

    一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 代 ...

  2. 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate

    一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点 ...

  3. python+django固定资产管理系统项目源码

    本固定资产管理系统主要包括登录管理员模块如下:首页.个人中心.用户管理.物品类型管理.资产设备管理.资产入库管理.设备申请管理.销毁信息管理.资产报表管理.聊天信息管理.聊天回复管理,用户模块:首页. ...

  4. Python实例练手项目源码 - 优美的彩虹线条

    游戏效果 源码 import turtle q = turtle.Pen() turtle.bgcolor("black") sides = 7 colors =["re ...

  5. Python实例练手项目源码 - 小猪佩奇

    游戏效果 源码 # coding: utf-8import turtle as tt.screensize(400, 300) t.pensize(4) # 设置画笔的大小 t.colormode(2 ...

  6. 极力推荐python初学者使用wingIDE

    2010-07-26 极力推荐python初学者使用wingIDE 文章分类:Python编程 wingIDE是一款收费软件,但是它的call-tips和auto-completion功能实在是太强大 ...

  7. part1:推荐一些适合练手、课程设计、毕业设计的python小项目源码,无任何下载门槛

    人生苦短,我用python,随着python这些年的流行,很多人开始使用python来实现各种功能.下面推荐一些适合用来练手.大学生课程设计作业.大学生毕业设计的python小项目,尤其适合新手,源码 ...

  8. python源码图片_初学者用python爬凡客图片的源码

    python学习最大的动力就是能写出一些可以运行的代码.感觉python真是的很强大. 下边的这部分python代码是我用来爬凡客T的图片,代码是初学阶段写的,比较简陋,没做修改,之前是可以用的.翻出 ...

  9. 国内看安卓源码网站推荐

    关键词:看安卓源码,Android源码 平时有很多技术网站介绍AMS,PMS,Handler,IntentService,livedata,workmanager,viewmodal等流程.其实看下安 ...

最新文章

  1. Maven 让事情变得简单
  2. (Win7)D盘Program Files文件夹不见了
  3. css调整表格在屏幕上的位置
  4. 如何表示数组所有数都不等于一个数_每日算法系列【LeetCode 523】连续的子数组和...
  5. 【数据竞赛】2020腾讯广告算法大赛冠军方案分享及代码
  6. 【知云】第十二期:处于风口浪尖上的直播视频网站,如何快速部署直播监管?...
  7. SAP Spartacus shipping address页面请求2 - Put Address
  8. [转] 最近点对距离问题
  9. go语言 error
  10. 实体属性变更历史记录框架(三)-变更历史记录从此无忧
  11. Linux启动流程与模块管理(15)
  12. linux系统查看服务进程,Linux服务器系统详细查看进程启动时间
  13. The word 'localhost' is not correctly spelled 这个问题怎么解决
  14. java info()方法_Java中的提供者getInfo()方法
  15. python里读取文件路径上一级路径及文件的方法
  16. Unity Apple登录接入
  17. DEVOPS:统一DEV、OPS和QA
  18. (转)淘宝面试的几个算法题
  19. sufficient statistics
  20. 用CDN的小伙伴注意了 小心阿里云注销你的备案

热门文章

  1. html在不同浏览器器下颜色不同,CSS在不同浏览器下实现颜色渐变效果
  2. oracle 10g分区表,oracle10g--11gR2分区表汇总四
  3. 【debug】UnboundLocalError local variable a referenced before assignment
  4. MySQL5.5.15_linux下mysql-5.5.15安装详细步骤
  5. 计算机组成原理r型指令logisim实现_大学本科计算机科学与技术专业知识体系
  6. java画布颜色切换_在本视频讲解演示中,扩展画布的目的是为了后面制作齿孔时操作起来方便,扩展部分更换了另一种颜色,是为了以示区别,能直观区分出票面部分。...
  7. Java与MySQL连接报错_java连接数据库报错(
  8. java的foreach_深入理解java中for和foreach循环
  9. MacOS 安装PHP5.6
  10. 设计模式8(享元模式,解释器模式)