Python 成长之路

来源:互联网 发布:用工作站玩游戏知乎 编辑:程序博客网 时间:2024/06/14 21:01

由于工作需要,学习了Python,只是掌握了皮毛,为了更好的学习Python,特给自己制定了学习计划,在此记录。目前是draft版本,很多资料都是网络上找到,自己学习相关资料后再做修改,会不定时更新~


起步阶段之基础语法:

[Python简史 ]:文章介绍了Python的背景。

[ 廖雪峰的 Python 3 教程 ]:适合初学者的入门教程。

[Python官网文档 英文在线 ]:实践中的大部分问题,都可以在官网中找到答案。 [Python3.5.2文档.pdf 站内下载]


[The Hitchhiker’s Guide to Python 英文 ]:Python初学者和专家,关于Python安装、配置和日常使用的最佳实践手册。

[ The Hitchhiker’s Guide to Python 中文 ]:供不习惯英文版的童鞋查看,只是翻译太渣了,中英版本对比着来会好一点。

[ The Hitchhiker’s Guide to Python 源码 ]:是网站源码的存放路径。


起步阶段之类库:

[Python官网类库文档 ]:你可以看到标准库模块的列表。这里也是标准库最好的学习资料。

[ Python.Cookbook(第2版)站内下载 ]



起步阶段之框架:

  • Web.py:已故Aaron Swartz的框架。一句话介绍"web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions."。接触的第一个Web框架,后来模仿MovableType,写了一个简单的博客,见Blog on Github,在线demoPastime Paradise;碰到的坑点是模板中嵌套Python代码一直有缩进问题。

  • Flask:一句话介绍"Flask is a lightweight web application framework written in Python and based on the Werkzeug WSGI toolkit and Jinja2 template engine. It is BSD licensed. Flask is called a microframework because it keeps the core simple but extensible"。因为工作变动,练习过一段时间的Flask,以便熟悉开发的工具链;如果没有Rails,我想这才是自己首选的Web开发框架: simple but extensible and for fun。实战教程The Flask Mega-Tutorial

  • Tornado:来自FriendFeed的异步框架,FriendFeed被Facebook收购后开放了源代码,见Tornado on Github。一句话介绍"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed"。Tornado主要特点是non-blocking,如果你想开发real-time的Web应用,Tornado是一个不错的选择。

  • Django:一句话介绍"Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.",接触不多,作为全栈式框架,听说它的组件都是Made in Django。更多资料见Django资料


  • 起步阶段之环境搭建:


    实战阶段之爬虫:

    写个爬虫,需要深入了解re、urllib2、sqlite3、threading,Queue等几个模块。需要用上多线程抓取,正则表达式分析,并发资源控制,重新开启程序自动继续抓取和分析。


    实战阶段之项目


    提升阶段之原理

    Python源码剖析]

    [ Python学习手册(第4版)01 站内下载 ] [ Python学习手册(第4版)02 站内下载 ]


    提升阶段之数据库:

    在项目开发中,数据库应用必不可少。这里汇总下目前接触过的数据库和使用教程。

    SQL,计算机出身的人应该都学过,若有疑问可以参考Wikipedia SQL,并使用SQLite做下练习。

    • PEP249: DB API:数据库访问接口规范,当时还做了一份笔记

    • SQLite:教程见SQLite Python Tutorial;若要深入了解,推荐The Definitive Guide to SQLite;看此书时,做了一些好句子、段落的摘要,见Sentences in SQLite 3

    • MySQL:教程见Python MySQL Database Access

    • Oracle Database:有可能这是最庞大的数据库,所以需要专职的DBA。官方教程The Mastering Oracle+Python Series,快速入门教程cx_Oracle Quick Start

    • SQLAlchemy:Python的ORM标准和框架,解决面向对象编程和关系数据库模式不匹配的问题。

    数据库理论除了SQL,还有另一派NoSQL。

    关于常见NoSQL产品的比较见Main NoSQL Database Comparison;若果需要一些NoSQL的理论知识和基本概念,见The NoSQL Ecosystem、Big Data与NoSQL。目前仅用过MongoDB和Redis

    • MongoDB:如果熟悉SQL,MongDB的学习成本会很低;相关资料见Python Language Center in MongoDB;用过的两个驱动:1)PyMongo,提供了类似Mongo Shell的接口;2)MongoEngine: A Python Object-Document-Mapper for working with MongoDB,即MongoDB的'ORM'框架,此时变成了'ODM',MongoEngine on Github

    • Redis:Redis需要一些学习成本,入门推荐The Little Redis Book;用过的Python客户端驱动Redis-py;更多客户端见Redis Clients

    • NoSQL建模:SQL发展了几十年,有很成熟的建模技术,那么NoSQL呢,见陈皓:NoSQL数据建模技术,原文NoSQL Data Modeling Techniques

    • 更多资料:NoSQL英文站点见NoSQL Database;NoSQL中文论坛见NoSQL Fan:关注NoSQl相关的新闻和技术。NoSQL Fan中,MongoDB和Redis资料很多,已经形成了资料专题,包括介绍、内部实现、应用与优化、新闻等,总能发现你想要的东西:1)NoSQL Fan:Redis资料汇总专题;2)NoSQL Fan: MongoDB资料汇总专题

    提升阶段数据结构与算法


    提升阶段安全

    • Python灰帽子

    Python社区

    • 啄木鸟社区
    • 42区:网站开发.漫游指南
    • Python on V2EX
    • Python4cn
    • 豆瓣Python小组
    • 哲思社区


    Python周刊

    • Python Weekly:每周更新,包括Python相关的文章、教程、演讲、书籍、项目、工作等。
    • Pycoder's Weekly:与Python Weekly类似,两者可以互为补充,了解过去一周动态。
    • 码农周刊:developerWorks出品的周刊,来自国人的分享。这里不仅仅是Python。

    Python相关文章


    其他

    Python学习 相关书籍下载


    Python项目源码网址

    Python 3 Cookbook on Github





    原创粉丝点击