怎样学好python编程-怎样学 Python?

0715更:

干货图谱上一个!! />

根据我自己的经验来说,想从零开始学Python,以后也确实想找相关的工作,基本是下边这三种方式:继续上学。报个这方面的专业,学上两三年,老师就在身边,有啥不懂的问题,直接办公室走一趟,毕业的时候去找工作不成大问题;

看书自学。这块可以看看我之前推荐的GitHub【Python百天之路】-骆昊,对细节把握很到位!

在网上找视频课自学。你可以利用碎片时间去学,时间上会更节省,我为了苦学Python大概买了十多门课吧。

读研读博这件事时间成本比较高,我对自己没有完全的自信,所以我思考再三,还是决定踏入社会浪潮了。(但是对于学习能力强,本科也比较优秀的学生,非常建议继续读研读博,未来踏入社会起薪会非常高,我现在身边就有两个博士大神,我只能膜拜了。。。)

进入社会之后,我基本就是买书和看视频自学,这回给你们来个全方位安利:

一、网站推荐

1、Python

Python初学者的法宝,如果你想下载Python,最好还是在这个网址去下,不要想着用一些不明来源的安装包。在这里,你不仅可以下载各种版本的Python源代码和安装程序,更有各种文献资料、Python交流社区,还会告诉你Python的最新行情,不得不感叹,这功能太强大! />Welcome to Python.org​www.python.orgv2-ff06c339780f23112c1cbbbb284158ff_ipico.jpg

2、菜鸟教程

站内的知识点很全面,无论你想学习哪种领域,都可以轻松在这里找到合适的资料。 />菜鸟教程 - 学的不仅是技术,更是梦想!​www.runoob.com

3、Codecademy

这个学习网站很大的优势就是在浏览器上直接编写代码,轻松解决了初学者程序环境安装的困扰。 />https://www.codecademy.com/​www.codecademy.com

4、Coursera

如果你英文比较好,交流没有问题的话,比较推荐这个网站。这是一个课程学习网站,内容涵盖编程各个领域,目前已经和200+所大学合作课程,还可以在线读学士、硕士学位。 />https://www.coursera.org/​www.coursera.org

5、CSDN

如果说你的英文是难题,给你推荐CSDN,是国内老牌程序员社区,里边有各领域博文、资料、课程,基本很多专业问题都可以在这里查。 />CSDN学院-IT实战派​edu.csdn.net?utm_source=eduxy_zhihu_0710_thdz_edu

二、书籍推荐

1、《笨办法学Python》

如果是初学Python的话,没有什么编程基础,还是比较适合从这本开始学的。整体是以习题的方式开始引导初学者学习编程。 />笨办法学Python​m.tb.cn

2、《Python Cookbook》

这本书既有知识点的详细讲解,又有更多高阶用法的延伸,对于已经有一定基础但是掌握不牢的同学来说,无疑是值得拥有的好书。 />Python Cookbook​m.tb.cn

3、《流畅的Python》

这本书对于Python的高级用法探究很深入,涵盖了数据结构、对象、并行与并发、元编程等多个方向。 />流畅的Python​m.tb.cn

三、课程推荐

其实,除了学习网站和书籍,我还在网易云课堂、51、慕课、CSDN学院买了不下10套关于Python入门的课,在得到也买了时间管理课。

我自己的话,因为我是想进行系统学习,也想节省一些学习时间,加上我也比较懒,非得有人督促着才能坚持不懈,所以我选了CSDN的Python训练营。Python工程师-CSDN学院​t.csdnimg.cnv2-e059f149d5f1062e4b6e4831078ae220_180x120.jpg

最近正在学习Python的进阶领域-AI,这回同样参与了一个训练营,深刻感受到监督使人进步!不为别的,也是希望自己以后的工作范围更广,也能跟上时代的脚步。人工智能工程师​marketing.csdn.net

也许有人会问:"你干嘛把自己逼得那么紧,安安稳稳的不就很好了吗?”

作为一个人,如果长期处于一个舒适安逸的环境,慢慢就会被这种安逸笼罩,变得懒惰,原本拥有的能力也会逐步减弱,当有一天危险来临,所在的舒适圈被打破,连生存下去都是个难题!

所以,为了好好活下去,要不跳出舒适圈,要不就扩大你的舒适圈。

跳出舒适圈,意味着你要彻底离开现在的区域,也许是换个城市、换个工作、甚至换个行业,让自己重新拥有危机感,让新环境逼着你去成长;扩大舒适圈,就是让自己能生存的舒适范围更大,主动学习、提升你的能力。

我选择的是从零开始全方向提升,因为我想着,既然要痛苦,就直接痛苦这一次。

Github上有一篇从"从新手到大师”的百天之路!绝对干的干货,之前和大家分享过了,还是一样推荐!(在后面!!!)

首先讲一下Python的学习路线

Python学习路线图:

python语言基础

(1)Python3入门,数据类型,字符串

(2)判断/循环语句,函数,命名空间,作用域

(3)类与对象,继承,多态

(4)tkinter界面编程

(5)文件与异常,数据处理简介

(6)Pygame实战飞机大战,2048

python语言高级

(1)Python常见第三方库与网络编程

(2)Python正则表达式

(3)邮箱爬虫,文件遍历,金融数据爬虫,多线程爬虫

(4)Python线程、进程

(5)Python MySQL数据库,协程,jython

python全栈工程师前端

(1) HTML

(2) HTML5

(3) CSS

(4) CSS3

(5) 网页界面设计实战

(6) javaScript

(7) jquerry

(8) jquerry EasyUI, Mobile简介,photoshop

(9) Bootstrap

python全栈工程师后端

(1) Django入门

(2) Django高级

(3) Django实战

python全栈工程师后端高级

(1) Flask开发原理

(2) Flask开发项目实践

(3) Tornado开发原理

(4) Tornado开发项目实践

Linux基础

(1) 文件处理命令

(2) 权限管理命令

(3) 帮助命令

(4) 文件搜索命令

(5) 压缩解压命令

(6) 命令使用技巧

(7) VIM使用

(8) 软件包管理

(9) 用户和用户组管理

(10) Linux Shell开发

Linux运维自动化开发

(1) Python开发Linux运维

(2) Linux运维报警工具开发

(3) Linux运维报警安全审计开发

(4) Linux业务质量报表工具开发

(5) Kali安全检测工具检测

(6) Kali 密码破解实战

python数据分析

(1) numpy数据处理

(2) pandas数据分析

(3) matplotlib数据可视化

(4) scipy数据统计分析

(5) python 金融数据分析

python大数据

(1) Hadoop HDFS

(2) python Hadoop MapReduce

(3) python Spark core

(4) python Spark SQL

(5) python Spark MLlib

python机器学习

(1) 机器学习基础知识简介

(2) KNN算法

(3) 线性回归

(4) 逻辑斯蒂回归算法

(5) 决策树算法

(6) 朴素贝叶斯算法

(7) 支持向量机

(8) 聚类k-means算法

学习的三大原则

1、简单入手原则

从简单的开始。任何事情从简单的开始,容易入门,容易产生"兴趣",然后是有成就感,有自信才容易把学习进行下去。所以Python学习应遵守"简单原则",包括看代码、写代码都应从最简单的开始,因为简单原则有巨大的优点。

2、循序渐进原则

很多大神上来就强调什么完美的逻辑,优越的语法,其实这些在初学时是没有必要的。为什么这么说?可能有些朋友也发现了,其实Python也好,包括学习任何一门自己语言也好,比如英语、日语。最重要的不是什么逻辑,语法,而是为了达到沟通和交流目的,敢于开口交流(九年义务哑吧英语除外)。Python就是人和机器交流的语言,开始得敢说,机器能听懂了,能完成基本功能了。我们再慢慢的提高完美的逻辑,优越的语法哈,不可能一上来就写个四大名著出来。当然,开始还是可以养成一些好的基础习惯的,比如多写备注,多写总结,分享心得。多说一句,为什么要分享心得,虽然有很多人写了很多资料,但那不是我们的收获,根据"学习金字塔理论”我们可知,吸收效率最高的学习方法是"能给别人讲会了”。

3、从量到质原则

只有从量变才能到质变,这个是颠覆不破的道理,外国人说"重复是技能之母”(repetition is the motherof skill),中国人说"熟能生巧”(su neng sheng qiao),其实都是一个意思。可以回忆一下我们学习过的任何一种技能的过程。无论是游自行车还是骑泳,都是重复同一类动作的过程,慢慢的把这项技能变成身体的一部分。任在刚开始学习Python编程时,重复原则就更为重要。

入门的基本方法

关于学习的方法,也是孔子和弗洛伊德一起写的对联,上联是"隔行如隔山”,下联是"隔行不隔理”,横批"啥都一样”。学习的方法基本上就是:学教材、看案例、查字典,对应下面的方法。

1、系统学习法

Python也是:单词、语法、文章。从False、None、True、and、as、assert、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield入手,再学习函数、类、模块到项目。这种学习的方法就是找一本书,然后一页一页的看,一页一页的敲,慢慢的就会建立起自己的知识结构,这样的好处是基础比较扎实,从易到难,问题是成效慢,易枯燥。

2、模仿学习法

模仿是人类成长进步的永恒阶梯。孩子成长就是个模仿的过程,他们每天模仿父母、周围的人、电视。我们编程的模仿就是大量的看别人的代码,然后模仿。如何看别人的代码呢?a、先看大概,知道人家的代码大体上要完成什么功能。

b、再来精读,看看人家每句话都是怎么说的。

c、找到差距,自己背着写一次完成同样功能的代码,再看看与高手们代码的差别。

d、融会贯通,把自己得到的内容精髓和大神们的代码结合起来,慢慢变成自己的代码风格。

3、目标除障法

这种学习方法,比如先想到要西天取经,遇到问题再通过各种办法来解决。在这里又细分成一些具体的方法,比如:a、观察法:认真看代码哪里出问题了,这绝对不是废话。

b、去除法:把程序的语句减少到最小,看核心语句是不是出现了问题。

c、分割法:出现问题,把代码分成几块,看看哪块出现问题。

d、比较法:把别人的程序和自己的比较,把有问题的和没有问题的代码比较。

e、添加法:实现了一个小功能,再慢慢的增加更多的功能,也是一种学习方法。

提高的具体方法

学习基础Python单词、语法、文章学的差不多了,就要提高到Python的高级境界。如何提高呢?

1、给自己创造到好的学习环境

找到一台好电脑,一本好的教材,"拳不离手,曲不离口”每天拿出时间来学习,还是说熟能生巧的问题。

2、到Python论坛

当然不能光看不说,到论坛学习的时候,还需要学会问和分享,在那里充分展示自己的收获,终极目标找到一群志同道合的人。

3、找高手一对一指导

现在高手很多,可以主动跟他们交流,或者花钱找一个高手学习,也不是不可以。

4、还是多进行编程练习

多看项目代码,给自己提出更高的目标,遇到问题再找高手去提问。最后,聪明的你一定会发现,上边的那些方法其实学什么都行。

Github上有位名叫骆昊 (jackfrued) 的资深程序员,为大家规划了一条从"从新手到大师”的百天之路!我觉得这个模式你可以参考一下。

现在已经有5w+星了! />

给初学者的几个建议:Make English as your working language.

Practice makes perfect.

All experience comes from mistakes.

Don't be one of the leeches.

Either stand out or kicked out.

先附上github地址:https://github.com/jackfrued/Python-100-Day​github.com

下面是这个一百天计划里面的学习框架,我在这里放上来。

Day01~15 - Python语言基础

Python简介 - Python的历史 / Python的优缺点 / Python的应用领域

搭建编程环境 - Windows环境 / Linux环境 / MacOS环境

从终端运行Python程序 - Hello, world / print函数 / 运行程序

使用IDLE - 交互式环境(REPL) / 编写多行代码 / 运行程序 / 退出IDLE

注释 - 注释的作用 / 单行注释 / 多行注释Day02 - 语言元素

程序和进制 - 指令和程序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制

变量和类型 - 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换

数字和字符串 - 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码

运算符 - 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑运算符 / 身份运算符 / 运算符的优先级

应用案例 - 华氏温度转换成摄氏温度 / 输入圆的半径计算周长和面积 / 输入年份判断是否是闰年Day03 - 分支结构

分支结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图

if语句 - 简单的if / if-else结构 / if-elif-else结构 / 嵌套的if

应用案例 - 用户身份验证 / 英制单位与公制单位互换 / 掷骰子决定做什么 / 百分制成绩转等级制 / 分段函数求值 / 输入三条边的长度如果能构成三角形就计算周长和面积Day04 - 循环结构

循环结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图

while循环 - 基本结构 / break语句 / continue语句

for循环 - 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序

应用案例 - 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡Day05 - 构造程序逻辑

基础练习 - 水仙花数 / 完美数 / 五人分鱼 / Fibonacci数列 / 回文素数

综合练习 - Craps赌博游戏

函数的作用 - 代码的坏味道 / 用函数封装功能模块

定义函数 - def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数

调用函数 - Python内置函数 / 导入模块和函数

函数的参数 - 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数

函数的返回值 - 没有返回值 / 返回单个值 / 返回多个值

作用域问题 - 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字

用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块)

字符串的使用 - 计算长度 / 下标运算 / 切片 / 常用方法

列表基本用法 - 定义列表 / 用下表访问元素 / 下标越界 / 添加元素 / 删除元素 / 修改元素 / 切片 / 循环遍历

列表常用操作 - 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找

生成列表 - 使用range创建数字列表 / 生成表达式 / 生成器

元组的使用 - 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换

集合基本用法 - 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空

集合常用操作 - 交集 / 并集 / 差集 / 对称差 / 子集 / 超集

字典的基本用法 - 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空

字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法

基础练习 - 跑马灯效果 / 列表找最大元素 / 统计考试成绩的平均分 / Fibonacci数列 / 杨辉三角

综合案例 - 双色球选号 / 井字棋

类和对象 - 什么是类 / 什么是对象 / 面向对象其他相关概念

定义类 - 基本结构 / 属性和方法 / 构造器 / 析构器 / __str__方法

使用对象 - 创建对象 / 给对象发消息

面向对象的四大支柱 - 抽象 / 封装 / 继承 / 多态

基础练习 - 定义学生类 / 定义时钟类 / 定义图形类 / 定义汽车类Day09 - 面向对象进阶

属性 - 类属性 / 实例属性 / 属性访问器 / 属性修改器 / 属性删除器 / 使用__slots__

类中的方法 - 实例方法 / 类方法 / 静态方法

运算符重载 - __add__ / __sub__ / __or__ /__getitem__ / __setitem__ / __len__ / __repr__ / __gt__ / __lt__ / __le__ / __ge__ / __eq__ / __ne__ / __contains__

类(的对象)之间的关系 - 关联 / 继承 / 依赖

继承和多态 - 什么是继承 / 继承的语法 / 调用父类方法 / 方法重写 / 类型判定 / 多重继承 / 菱形继承(钻石继承)和C3算法

综合案例 - 工资结算系统 / 图书自动折扣系统 / 自定义分数类

使用tkinter开发GUI

使用pygame三方库开发游戏应用

"大球吃小球”游戏Day11 - 文件和异常读文件 - 读取整个文件 / 逐行读取 / 文件路径

写文件 - 覆盖写入 / 追加写入 / 文本文件 / 二进制文件

异常处理 - 异常机制的重要性 / try-except代码块 / else代码块 / finally代码块 / 内置异常类型 / 异常栈 / raise语句

数据持久化 - CSV文件概述 / csv模块的应用 / JSON数据格式 / json模块的应用字符串高级操作 - 转义字符 / 原始字符串 / 多行字符串 / in和 not in运算符 / is开头的方法 / join和split方法 / strip相关方法 / pyperclip模块 / 不变字符串和可变字符串 / StringIO的使用

正则表达式入门 - 正则表达式的作用 / 元字符 / 转义 / 量词 / 分组 / 零宽断言 /贪婪匹配与惰性匹配懒惰 / 使用re模块实现正则表达式操作(匹配、搜索、替换、捕获)

使用正则表达式 - re模块 / compile函数 / group和groups方法 / match方法 / search方法 / findall和finditer方法 / sub和subn方法 / split方法

应用案例 - 使用正则表达式验证输入的字符串Day13 - 进程和线程进程和线程的概念 - 什么是进程 / 什么是线程 / 多线程的应用场景

使用进程 - fork函数 / multiprocessing模块 / 进程池 / 进程间通信

使用线程 - thread模块 / threading模块 / Thread类 / Lock类 / Condition类 / 线程池计算机网络基础 - 计算机网络发展史 / "TCP-IP”模型 / IP地址 / 端口 / 协议 / 其他相关概念

网络应用模式 - "客户端-服务器”模式 / "浏览器-服务器”模式

基于HTTP协议访问网络资源 - 网络API概述 / 访问URL / requests模块 / 解析JSON格式数据

Python网络编程 - 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块

电子邮件 - SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / poplib模块 / imaplib模块

短信服务 - 调用短信服务网关Day15 - 图像和文档处理用Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果

读写Word文档 - 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理

读写Excel文件 - xlrd模块 / xlwt模块

生成PDF文件 - pypdf2模块 / reportlab模块

Day16~Day20 - Python语言进阶常用数据结构

函数的高级用法 - "一等公民” / 高阶函数 / Lambda函数 / 作用域和闭包 / 装饰器

面向对象高级知识 - "三大支柱” / 类与类之间的关系 / 垃圾回收 / 魔术属性和方法 / 混入 / 元类 / 面向对象设计原则 / GoF设计模式

迭代器和生成器 - 相关魔术方法 / 创建生成器的两种方式 /

并发和异步编程 - 多线程 / 多进程 / 异步IO / async和await

Day21~30 - Web前端入门用HTML标签承载页面内容

用CSS渲染页面

用JavaScript处理交互式行为

jQuery入门和提高

Vue.js入门

Element的使用

Bootstrap的使用操作系统发展史和Linux概述

Linux基础命令

Linux中的实用程序

Linux的文件系统

Vim编辑器的应用

环境变量和Shell编程

软件的安装和服务的配置

网络访问和管理

其他相关内容

Day36~40 - 数据库基础和进阶关系型数据库概述

MySQL的安装和使用

SQL的使用DDL - 数据定义语言 - create / drop / alter

DML - 数据操作语言 - insert / delete / update / select

DCL - 数据控制语言 - grant / revoke

相关知识范式理论 - 设计二维表的指导思想

数据完整性

数据一致性

在Python中操作MySQLNoSQL概述

Redis概述

Mongo概述

Day41~55 - 实战DjangoDay41 - 快速上手Web应用工作原理和HTTP协议

Django框架概述

5分钟快速上手

使用视图模板Day42 - 深入模型关系型数据库配置

管理后台的使用

使用ORM完成对模型的CRUD操作

Django模型最佳实践

模型定义参考加载静态资源

用Ajax请求获取数据Day44 - 表单的应用表单和表单控件

跨站请求伪造和CSRF令牌

Form和ModelForm

表单验证实现用户跟踪

cookie和session的关系

Django框架对session的支持

视图函数中的cookie读写操作Day46 - 报表和日志通过HttpResponse修改响应头

使用StreamingHttpResponse处理大文件

使用xlwt生成Excel报表

使用reportlab生成PDF报表

使用ECharts生成前端图表

配置日志和Django-Debug-ToolbarDay47 - 中间件的应用什么是中间件

Django框架内置的中间件

自定义中间件及其应用场景返回JSON格式的数据

用Vue.js渲染页面网站优化第一定律

在Django项目中使用Redis提供缓存服务

在视图函数中读写缓存

使用装饰器实现页面缓存

为数据接口提供缓存服务文件上传表单控件和图片文件预览

服务器端如何处理上传的文件

富文本编辑器概述

wangEditor的使用Day53 - 短信和邮件常用短信网关平台介绍

使用螺丝帽发送短信

Django框架对邮件服务的支持网站优化第二定律

配置消息队列服务

在项目中使用celery实现任务异步化

在项目中使用celery实现定时任务Python中的单元测试

Django框架对单元测试的支持

使用版本控制系统

配置和使用uWSGI

动静分离和Nginx配置

配置HTTPS

Day56~60 - 实战FlaskDay56 - Flask入门

Day57 - 模板的使用

Day58 - 表单的处理

Day59 - 数据库操作

Day60 - 项目实战

Day61~65 - 实战TornadoDay61 - 预备知识并发编程

I/O模式和事件驱动Tornado概述

5分钟上手Tornado

路由解析

请求处理器Day63 - 异步化aiomysql和aioredis的使用WebSocket简介

WebSocket服务器端编程

WebSocket客户端编程

项目:Web聊天室Day65 - 项目实战前后端分离开发和接口文档的撰写

使用Vue.js实现前端渲染

使用ECharts实现报表功能

使用WebSocket实现推送服务

Day66~75 - 爬虫开发网络爬虫的概念及其应用领域

网络爬虫的合法性探讨

开发网络爬虫的相关工具

一个爬虫程序的构成Day67 - 数据采集和解析数据采集的标准和三方库

页面解析的三种方式:正则表达式解析 / XPath解析 / CSS选择器解析Day68 - 存储数据如何存储海量数据

实现数据的缓存Day69 - 并发下载多线程和多进程

异步I/O和协程

async和await关键字的使用

三方库aiohttp的应用Day70 - 解析动态内容JavaScript逆向工程

使用Selenium获取动态内容自动提交表单

Cookie池的应用

验证码处理Scrapy爬虫框架概述

安装和使用ScrapySpider的用法

中间件的应用:下载中间件 / 蜘蛛中间件

Scrapy对接Selenium抓取动态内容

Scrapy部署到Docker分布式爬虫的原理

Scrapy分布式实现

使用Scrapyd实现分布式部署Day75 - 爬虫项目实战爬取招聘网站数据

爬取房地产行业数据

爬取二手车交易平台数据

Day76~90 - 数据处理和机器学习

Day91~100 - 团队项目开发软件过程模型经典过程模型(瀑布模型)可行性分析(研究做还是不做),输出《可行性分析报告》。

需求分析(研究做什么),输出《需求规格说明书》和产品界面原型图。

概要设计和详细设计,输出概念模型图、物理模型图、类图、时序图等。

编码 / 测试。

上线 / 维护。

敏捷开发(Scrum)- 产品所有者、Scrum Master、研发人员 - Sprint产品的Backlog(用户故事、产品原型)。

计划会议(评估和预算)。

日常开发(站立会议、番茄工作法、结对编程、测试先行、代码重构……)。

修复bug(问题描述、重现步骤、测试人员、被指派人)。

评审会议(Showcase)。

回顾会议(当前周期做得好和不好的地方)。

补充:敏捷软件开发宣言个体和互动 高于 流程和工具

工作的软件 高于 详尽的文档

客户合作 高于 合同谈判

响应变化 高于 遵循计划 />

角色:产品所有者(决定做什么,能对需求拍板的人)、团队负责人(解决各种问题,专注如何更好的工作,屏蔽外部对开发团队的影响)、开发团队(项目执行人员,具体指开发人员和测试人员)。

准备工作:商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。

敏捷团队通常人数为8-10人。

工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任务量,最小任务量标准为工作时间不能超过两天,然后估算总体项目时间。把每个任务都贴在白板上面,白板上分三部分:to do(待完成)、in progress(进行中)和done(已完成)。项目团队组建团队的构成和角色

说明:谢谢付祥英女士绘制了下面这张精美的公司组织架构图。 />编程规范和代码审查(flake8、pylint) />影响代码可读性的原因:代码注释太少或者没有注释

代码破坏了语言的最佳实践

反模式编程(意大利面代码、复制-黏贴编程、自负编程、……)团队开发工具介绍版本控制:Git、Mercury

敏捷闭环工具:禅道、JIRA

项目选题和理解业务选题范围设定CMS(用户端):新闻聚合网站、问答/分享社区、影评/书评网站等。

MIS(用户端+管理端):KMS、KPI考核系统、HRS、CRM系统、供应链系统、仓储管理系统等。

App后台(管理端+数据接口):二手交易类、报刊杂志类、小众电商类、新闻资讯类、旅游类、社交类、阅读类等。

其他类型:自身行业背景和工作经验、业务容易理解和把控。需求理解、模块划分和任务分配需求理解:头脑风暴和竞品分析。

模块划分:画思维导图(XMind),每个模块是一个枝节点,每个具体的功能是一个叶节点(用动词表述),需要确保每个叶节点无法再生出新节点,确定每个叶子节点的重要性、优先级和工作量。

任务分配:由项目负责人根据上面的指标为每个团队成员分配任务。 />

制定项目进度表(每日更新)

概念模型和正向工程UML(统一建模语言)的类图 />通过模型创建表(正向工程)

python manage.py makemigrations app python manage.py migrate

物理模型和反向工程PowerDesigner />

2.通过数据表创建模型(反向工程)

python manage.py inspectdb > app/models.py

项目开发中的公共问题数据库的配置(多数据库、主从复制、数据库路由)

缓存的配置(分区缓存、键设置、超时设置、主从复制、故障恢复(哨兵))

日志的配置

分析和调试(Django-Debug-ToolBar)

好用的Python模块(日期计算、图像处理、数据加密、三方API)

REST API设计RESTful架构API接口文档的撰写

项目中的重点难点剖析使用缓存缓解数据库压力 - Redis

使用消息队列做解耦合和削峰 - Celery + RabbitMQ

单元测试测试的种类

编写单元测试(unittest、pytest、nose2、tox、ddt、……)

测试覆盖率(coverage)

项目部署部署前的准备工作关键设置(SECRET_KEY / DEBUG / ALLOWED_HOSTS / 缓存 / 数据库)

HTTPS / CSRF_COOKIE_SECUR / SESSION_COOKIE_SECURE

日志相关配置Linux常用命令回顾

Linux常用服务的安装和配置

uWSGI/Gunicorn和Nginx的使用Gunicorn和uWSGI的比较对于不需要大量定制化的简单应用程序,Gunicorn是一个不错的选择,uWSGI的学习曲线比Gunicorn要陡峭得多,Gunicorn的默认参数就已经能够适应大多数应用程序。

uWSGI支持异构部署。

由于Nginx本身支持uWSGI,在线上一般都将Nginx和uWSGI捆绑在一起部署,而且uWSGI属于功能齐全且高度定制的WSGI中间件。

在性能上,Gunicorn和uWSGI其实表现相当。虚拟化技术(Docker)

性能测试AB的使用

SQLslap的使用

sysbench的使用

自动化测试使用Shell和Python进行自动化测试

使用Selenium实现自动化测试Selenium IDE

Selenium WebDriver

Selenium Remote Control测试工具Robot Framework介绍MySQL数据库调优

Web服务器性能优化

3.代码性能调优多线程

异步化

4.静态资源访问优化云存储

CDN

作者:骆昊 (jackfrued)

来源:github

希望能够帮助到想要学好Python的同学!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值