整体计划

现在,我们先将月计划细化成周计划。

第一周:熟悉 Python

要积极探索 Python 的使用方法,尽可能多的完成下面这些任务:

· 第一天:基本概念(4 小时):print,变量,输入,条件语句

· 第二天:基本概念(5 小时):列表,for 循环,while 循环,函数,导入模块

· 第三天:简单编程问题(5 小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等

· 第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等

· 第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表。

· 第六天:面向对象编程(OOP)(6 小时):对象,类,方法和构造函数,面向对象编程之继承

· 第七天:算法(6 小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)

别急着安装 Python 环境!

这看起来很矛盾,但是你一定要相信我。我有几个朋友,他们因为语言工具包和 IDE 安装的失败而逐渐失去了学习下去的欲望。因此,我的建议是先使用一些安卓 app 来探索这门语言,比如编程英雄或者在线代码游乐场 Repl等等。如果你是个技术小白,安装 Python 环境可不是你的首要任务。

第二周:开始软件开发(构建项目)

接下来,让我们朝着软件开发任务进军吧!不妨尝试综合你学到的知识完成一个实际的项目:

· 第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期,我建议你在 VS code 中安装 Python 扩展或使用 Jupyter notebook。

· 第二天:Github(6 小时):探索 Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request)。

· 第三天:第一个项目——简单计算器(4 小时):熟悉 Tkinter,创建一个简单的计算器

· 第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它。如果你不知道你该做什么,可以查看下面的清单

· 第七天:托管项目(5 小时):学习使用服务器和 hosting 服务来托管你的项目。创建一个 Heroku 设置并部署你构建的应用程序。

为什么要写项目?

如果仅仅按部就班地学习课堂上或视频中的内容,你无法拥有独立思考能力。所以,你必须把你的知识应用到一个项目中。当你努力寻找答案时,你也在慢慢地学会这些知识。

第三周:让自己成为一名程序员

第 3 周的目标是熟悉软件开发的整体过程。你不需要掌握所有的知识,但是你应该知道一些常识,因为它们会影响你的日常工作。

· 第一天:数据库基础(6 小时):基本 SQL 查询(创建表、选择、Where 查询、更新)、SQL 函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等

· 第二天:使用 Python 数据库(5 小时):利用一种数据库框架(SQLite 或 panda),连接到一个数据库,在多个表中创建并插入数据,再从表中读取数据。

· 第三天:API(5 小时):如何调用 API。学习 JSON、微服务(micro-service)以及表现层应用程序转换应用程序接口(Rest API)。

· 第四天:Numpy(4 小时):熟悉 Numpy并练习前 30 个 Numpy 习题第五、六天:作品集网站(一天 5 小时):学习 Django,使用 Django 构建一个作品集网站,也要了解一下 Flask 框架。

· 第七天:单元测试、日志、调试(5 小时):学习单元测试(PyTest),如何设置和查看日志,以及使用断点调试。

真心话时间(绝密)

如果你非常「疯狂」,并且非常专注,你可以在一个月内完成这些任务。你必须做到:

· 把学习 Python 作为你的全职活动。你需要从早上 8 点开始学习,一直到下午 5 点。在此期间,你可以有一个午休时间和茶歇时间(共 1 小时)。

· 8 点列出你今天要学的东西,然后花一个小时复习和练习你昨天学过的东西。

· 从 9 点到 12 点:开始学习,并进行少量练习。在午饭后,你需要加大练习量,如果你卡在某个问题上,可以在网上搜索解决方案。

·

· 严格保持每天 4-5 小时的学习时间和 2-3 小时的练习时间(每周最多可以休息一天)。

· 你的朋友可能会认为你疯了。走自己的路,让别人去说吧!

如果你有一份全职工作,或者你是一名学生,完成这些流程可能需要更长的时间。作为一名全日制学生,我花了 8 个月的时间来完成这份清单。现在我是一名高级开发人员。我妻子在美国一家大银行工作。她花了 6 个月才完成本文中提到的任务。所以,不管花多长时间,一定要完成它们。

第四周:认真考虑工作(实习)问题

第 4 周的目标是认真思考如何才能被录用。即使你现在不想找工作,你也可以在探索这条道路的过程中学到很多东西。

· 第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接。

· 第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中。

· 第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上。

· 第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题。

· 第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面。

· 第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3 个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们。

· 第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天 的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。

为工作做准备

现实情况是,你永远不可能百分之百地为工作做好准备。你所要做的就是精通一两件事,并且熟悉其它的事情,最终通过面试。一旦你开始工作了,你会在工作过程中学到很多。

享受学习的过程

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的开发人员。

如果你能在 28 天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名程序员的正确特征了。

初学者学习Python需循序渐进,可以从以下内容入手学习:

1. Python基础知识

学习任何一门编程语言都需要学习相关语法知识,Python基础知识的学习主要包括Python解释器执行原理、字符编码、注释、变量、缩进、流程控制、文件操作、数据类型、数据类型内置方法、字符串格式化、运算符、输入输出、三元运算、collections、列表、字典、元组、集合、IO操作、文件增删改查、函数等。

2. 函数和常用模块

函数和常用模块的学习内容主要包括装饰器原理和使用、高阶函数、迭代器与生成器、函数式编程、函数递归、二分查找、模块介绍、re正则模块、os\sys模块、subprocess模块、shuti\shelve\itertools模块、hashlib模块、logging日志模块、time\datetime\traceback模块、json\pickle\yam\configparser处理模块、urllib\paramiko模块等。

3. 面向对象

Python面向对象知识的学习主要包括面向对象和类介绍、创建类、经典类与新式类、面向对象的三大特性、类的普通成员、字段方法属性、类的高级成员、静态字段、静态方法、静态属性、类方法、MetaClass\AbstractClass、类成员修饰符等。

4. 网络编程基础

Python网络编程基础学习内容包括Python模块SocketServer使用和源码剖析、GIL内部机制、线程锁、事件、生产者消费模型、进程的使用、进程间数据共享等。

5. 数据库、缓存、队列

Python数据库、缓存、队列学习内容为Python操作redis、Python操作memcache、rabbitMQ消息队列、数据库介绍、mysql数据库安装使用、mysql管理、mysql数据类型、常用mysql命令、创建数据库、外键、增删改查表、权限、事务、索引、Python操作mysql等。

6. Web开发基础

Python之Web开发基础学习内容为HTML基础、CSS基础、JavaScript基础、局部变量和全局变量、集合、数组、字典、函数参数、原型、面向对象、作用域、dom编程、jquery介绍、jquery选择器、jquery属性和CSS操作、jquery文档处理、jquery筛选、jquery事件托管、jquery事件、jquery ajax、jquery扩展方法、bootstrap使用、EasyUI介绍和使用等。

7. Web框架学习

Python之Web框架学习内容为Web框架本质、socket服务器、基于反射的路由系统、WSGI介绍及原理实现、开发自己的Web框架、MVC和MTV、路由系统、模板、django基础学习与使用、普通路由和动态路由、模板引擎、ORM介绍、Django ORM增删改查学习、自定义tag、django进阶学习与使用、模型绑定、Form表单验证、Django ORM进阶学习、ModelForm、自定义Validator等。

以上是Python入门学习基础内容,初学者可以按照以上内容并结合项目进行学习,可以实现Python的轻松入门,然后选择需要从事的领域进行深入学习,便可成为真正的Python技术工程师。

Python上手很容易, 基本有其他语言编程经验的人可以在1周内学会Python最基本的内容

它们包括:

1.常用内置类型(int, float, bool, bytes, str, list, dict, set)的使用.

2.分支if-else 循环while 迭代for的语法.

3.def定义函数, 调用函数.

你再花1周学习些:

1.类

2.异常

此时, 有些人就在简历中得意的自称"会"Python了.

但是学到如此程度, 在实际编程中会经常遇到挫折, 主要源自理解不够深入, 仅仅Python语法和API层面体验了一下.

随意列举一些新手普遍存在的问题:

不了解Python对象模型, 变量名, 对象概念含混.

不了解可变对象和不可变对象, 尤其是int.

不了解切片意味着拷贝, 在循环中大量使用, 影响效率.

不了解切片是浅拷贝还是深拷贝.

遇到bytes和str(2.7中的str和unicode)就头晕.

经常在需要使用is的场景使用==.

不了解def是运行时执行语句, 并且是赋值语句.

类属性和实例属性混淆.

不了解在函数中修改可变对象参数会对调用者产生影响, 导致莫名其妙错误.

企图在函数中修改全局变量, 没有使用global, 而创建了本地变量.

以可变对象做函数默认参数.

拥有某项技能的程序员的价值, 可以用学习技能所需的成本来衡量.你用2周学习达到的这种程度, 对于企业就是没有价值的, 因为老板可以让一个公司里任意其他语言的程序员经过2-3周的学习就能达到你现在的程度.Python的简洁易用, 快速开发对项目有价值, 但这不是你的价值, 是Python的价值.所以提高自身价值, 也就是不让别人轻易追上你. 以极低的成本替代你.

你只能快跑, 进一步学习, Python语言层面还需要学习下面一些内容:

使用生成器, 迭代器

函数式编程, 匿名函数lambda, map, reduce, filter

列表解析, 字典解析, 集合解析, 生成器解析

运算符重载(__setattr__, __getattr__, __getitem__, __gt__, __lt__...)

property, 描述符(__get__, __set__, __delete__)

上下文管理器(__enter__, __exit__)

深入理解面向对象

上述都是语言层面的,属于内功.实战中当然也需要一些更为具体的外功, 训练外功可以从熟悉Python标准库开始, 这些模块能进入标准库说明他们足够好并且在实际项目中足够常用, 列举一些极为常用的:

正则表达式 re

迭代工具 itertools

常用数据结构 collections, heapq, array

处理二进制数据 struct

随机 random

系统调用 os

Python对象序列化 pickle

多进程多线程处理 threading, multiprocessing

网络 socket, urllib

10系统参数 sys

无论练习内功或外功,结合实战都是最好的训练方式和检验手段, 可以根据个人情况以及喜好选择, 如:

使用django, flask开发网站.

开发网络爬虫或使用Python爬虫框架(如scrapy).

写一些自动化运维脚本, 定时读取某软件log, 出现异常自动发邮件.

使用selenium对网站进行测试.

使用Python开发树莓派小车(电机,传感器驱动).

使用Python开发Vim插件, 如在vim中做一个音乐播放器.

使用Python做算法题, 如leetcode.

opencv做图像识别.

使用numpy和pandas做数据处理.

使用机器学习库sklearn, tensorflow做应用.

使用PyQt编写桌面应用.

使用scipy, matplotlib做科学计算.

使用Python做渗透测试.

建议选择小项目进行实训, 有些新手上来就想定一个大目标, 做的时候很挫折, 往往半途而废.把小东西先实现, 然后优化. 接下来添加新功能, 慢慢迭代把小东西做大. 这样在做的时候,每实现一个小功能你都会有成就感, 激励继续前进.

可能经过比较漫长的一段时间, 你成为了一个熟练的Python应用程序员, 还有些高级话题可以继续学习:

装饰器

元类

这些高级话题在开发框架中经常使用, 它们可以帮你创建更灵活的代码.

通常自称一个月光速学了会Python的人基本都不是天才, 只是浮躁, 目标定的比较低而已.

不要太过急功近利, 慢慢玩, 精进.

如果你觉着编程有趣, 成长也就不再痛苦, 祝学习愉快.

python怎样算学的好_python怎么学习好相关推荐

  1. python基本输入与格式化_Python导学基础(三)输入、格式化输出、基本运算符

    一:输入 1.python3中的input inp_username=input("请输入您的密码:") # "18" print(inp_username) ...

  2. python编程可以自学么-怎么能学习好python编程?有自学的方法吗?

    许多零基础的同学们怀疑自学Python究竟能不能,回答是肯定的.自学肯定是可以的,可是必须必备一些标准,文中我和大伙儿汇总一下,具有什么标准可以自学Python. 很多人要想自学Python,要想吃P ...

  3. python自动化办公实例展示_python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  4. 用python输出世界你好汉_python print 格式输出跟老齐学Python之有容乃大的list(4)

    [0, -2, -4, -6, -8] 有了这个内置函数,很多事情就简单了.比如: 复制代码 代码如下: >>> range(0,100,2) [0, 2, 4, 6, 8, 10, ...

  5. python使用pickle保存和加载机器学模型

    python使用pickle保存和加载机器学模型 # 导入需要的包和库: # Import Required packages #-------------------------# Import t ...

  6. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  7. Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...

    Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...

  8. python判断素数的函数_Python素数prime函数练习_Python源码实操

    Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...

  9. python有哪些方向、应该怎么学-大牛5大方向分析,完整Python 学习路线墙裂推荐!...

    Python的学习,知识涵盖极为广泛,对不同应用目标的学习,进阶的路线有很大的差异,下面由小博,也就是我!给大家带来了干货知识点.有什么问题可以交流~ 分别从常见的测试运维,大数据处理,金融分析,机器 ...

最新文章

  1. 北大博士“最高荣誉”,出炉!
  2. 刚刚引来985大学建校区,这座城市再牵手世界名校办学!
  3. 周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”| CCF-GAIR 2020...
  4. “load”: 不是“torch::jit”的成员
  5. 用yum安装配置搭建lamp环境--超简单!
  6. input 不显示边框_不需要使用JavaScript
  7. html 页面工具,html页面工具-htmlUnit
  8. P7276-送给好友的礼物【dp】
  9. mysql odbc ado性能差异_ODBC、OLEDB和ADO之间的关系 ,以及性能比较
  10. 利用js实现 禁用浏览器后退
  11. php 第二次出现位置,php – Preg Replace – 替换匹配的第二次出现
  12. 一种内核到用户空间的高效数据传输技术
  13. 本地虚拟机部署java项目(tomcat8 ,jdk8,VMWare)
  14. iOS底层探索之类的结构(上):ISA
  15. BCH编译码的matlab性能分析
  16. 如何在电脑上下载抖音视频
  17. 不同证券的资产收益率统计(2012-2020年)
  18. 微型计算机中lo设备的含义是,专转本计算机 基础知识.doc
  19. java调用dll 指针参数_java调用c dll,指针参数和结构体参数搞定
  20. 房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文

热门文章

  1. php异步处理下载文件,php异步处理-上传文件
  2. 前端数据库——WebSQL和IndexedDB
  3. 程序设计与算法----递归之神奇的口袋
  4. AES-加密解密工具类
  5. 基于 SOA 的组件化业务基础平台
  6. oracle 存储过程循环打开游标数据处理
  7. UVALive 3942 Trie加速dp
  8. css 相对单位rem详解
  9. 报表工具之JasperReports+iReport(1)
  10. 用python开发一个影视网站_GitHub - lyzhanghai/movie_project: 一个使用Python+Flask开发的微电影网站...