JSON

Python Resource

字号+ 作者:H5之家 来源:H5之家 2016-02-03 10:07 我要评论( )

Python是在工作期间零零碎碎学习起来的。当时正值部门申购图书,鉴于Python的动态、快速等特性,就申请买了一本《Python核心编程》,内容可谓全面,但翻译实在太差,有些概念看了几遍也没弄清楚,所以只匆匆翻阅完了解一个大概。后来在豆瓣上看了下评分,不

Python是在工作期间零零碎碎学习起来的。当时正值部门申购图书,鉴于Python的动态、快速等特性,就申请买了一本《Python核心编程》,内容可谓全面,但翻译实在太差,有些概念看了几遍也没弄清楚,所以只匆匆翻阅完了解一个大概。 后来在豆瓣上看了下评分,不到8分的样子,顺便做了下简评“只能说看这本书省去了初学者看电脑的眼疲劳,可以快速浏览一窥全貌。不过相比公开课,或者网上的教材,太不适合入门;尽管我还是硬着头皮差不多看完,也差不多入门”。

对Python有所了解之后,断断续续写了一些简单的程序,按先后顺序汇总如下:

  • BBS账户批量导入工具:基于Discuz!,数据库为MySQL,直接读取Excel中的数据批量导入即可;当时正好在找代码片段分享的网站,就贴在snipplr上,这应该是我的第一个可以用的Python程序。

  • 复杂密码生成工具:关于这个还有一段趣事,见本站Complex Password Utility,源代码PasswordGen on Github。

  • 邮件测试工具:碰到的Java程序员们连一个简单的SMTP测试用例都懒得写,所以整了一个Python版,参考email: Examples;用Telnet当然也可以,见本站Telnet Introduction。

  • LDAP 账户查找工具:那时公司出了所谓的内网导航,提供查找员工的电话、邮件等信息,但后来残了,邮件地址不再显示(在一个靠邮件来沟通的公司,可见这种残会有多残),所以写了一个脚本自己用,见源代码LDAPSearch on Github。

  • Java Service接口测试用例生成工具:在For Rails中提到过,思路见模板jUnit TestCase Gist。

  • Markdown Blog程序:使用Web.py开发的Blog程序,自动渲染Markdown格式成HTML,见Blog on Github,在线demo。

  • 单词排行程序:同学在邮件中提到Writing an Hadoop MapReduce Program in Python,手上正好有Oracle Database 11g的全部文档,所以动手统计了一下词频,不知道每年的高考、考研的英语高频词汇是不是这样统计出来的。

  • 以上大概是自学Python以来写过的一些程序,大部分代码还在,从中可见Python代码写得很不成熟;分析起来无非就是Python基础不过关、对标准库第三方库不熟练、受时间精力约束程序缺少锤炼、阅读源代码太少等之类的原因;当然,也很业余。

    为什么是Python

    前段时间写For Rails时,稍微概括了下自己的工作,这里再提一下:我是一枚Java攻城狮,工作两年多,主要做Java Web开发,期间转去做了一年多的Oracle DBA,维护Oracle EBS,也当过Linux Administrator。似乎涉猎的东西太多太浅,有点样样稀松的嫌疑。

    那么,为什么要学Python呢?我觉得可以先看看Peter的Teach Yourself Programming in Ten Years,中文翻译见十年学会编程。

    关于语言的选择,这里直接抄录十年学会编程:

    不少人问我,他们首先该学哪种编程语言。没有绝对的答案,不过请考虑以下几点:

  • 用你的朋友的。当被问起“我该用哪种操作系统,Windows,Unix, 还是Mac?”,我总是回答:“你朋友用什么,你就用什么。” 你从朋友那能学到知识,这种优势可以抵销不同操作系统或语言之间本质的差异。也考虑你将来的朋友:程序员社区 — 你将成为它的一部分如果你继续往前走的话。你选择的语言是否有一个成长中的社区,还是人数不多、即将消亡?有没有书籍、网站、在线论坛回答你的问题?你喜欢论坛里的那些人吗?

  • Keep it simple, stupid. 象C++和Java这样的语言是为经验丰富的程序员组成的团队进行专业开发而设计的,他们专注于代码运行时的效率。因此,这些语言有些部分非常复杂。而你关注的是如何编程,不需要那些复杂性。你需要的是这样的语言: 对单个的编程新手来说,它易学易记。

  • 练习。你偏爱哪种学弹钢琴的方式:通常的交互式的方式,你一按下琴键就能听到音符;还是“批量”模式,你只有弹完整首曲子才能听到音符? 显然,用交互模式学习弹钢琴更容易些,编程也一样。坚持用交互模式学习并使用一种语言。

  • 有了上面的准则,我推荐的第一个编程语言是Python或Scheme。因人而异,还有其它好的选择。如果你的年纪是10岁以下,你可能更喜欢Alice。关键是你要选择并开始实践。

    正如文中提到的一样,我学习Python很大一部分原因就是朋友的介绍;经过一些练习之后,你会发现自己越来越喜欢Python的简洁。印象最深的一次,要属部门一次关于Web Service的技术交流会,主持人用Java来演示XML RPC、JSON RPC、SOAP,不说混杂着各种Annotation,连这些协议都未所有触及,就疯狂的演示各种语言的客户端程序了。鉴于此,我花了几天时间看了下wiki,然后用Python做了几个原型,还附加地看了REST,这时你会发现用Python来解释会更加简明,这大概就是奥卡姆剃刀所讲的简单有效原理吧。

    一点Python编程资料

    因为Python学习得很业余,所以想加强理解,提高编程技能;在工作之余顺手收藏了一些Python相关的资料,有一些看了一部分就搁置了,但时常还是会想起来是不是该抽点时间继续看看。基于以上原因,就动手整理一份Python编程的资料作为索引,以后会陆续更新。

    入门和基础

    Python有Python 2.x 和Python 3.x 之分,争论很多,见Python2orPython3。初学者不用考虑这个问题,可以从Python 2.x入门,之后再讨论会多一些理性。

  • 洪强宁:Python于Web 2.0网站的应用:豆瓣网洪强宁在QCon北京2010中的技术分享,若不能访问,请自备梯子;另外,豆瓣的阿北很值得关注。

  • A Byte of Python:即简明Python教程,边看边练习就对Python有基本的了解,可以轻松存活。

  • Google’s Python Lessons:Google出品的Python教程,值得信赖。

  • Python Documentation:Python在线文档,若嫌枯燥,可以直接看Python Standard Lib。

  • 42区:python入门指引:江湖人称张教主的Python资料索引。

  • CS61A: SICP with Python:作为计算机相关人士,SICP都不了解,实在很惭愧,所以来还债了。这应该是起源于MIT的SICP教程,一个用Python,一个用Scheme。

  • 看到一个有趣的python的招聘测试:同学发的一个贴,总结了一下应聘中遇到的问题,并给出了相应的资料来学习。如果想检测下自己的Python水平,请自觉移步。

  • MOOC们:在线公开课很多,见课程图谱;仅在Codecademy上学了一点;现在希望能够每天跟进一些感兴趣的课程,多多学习。

  • 书:去年6月份一同事离职,我买了两本黑客与画家,一本送给他(博客一起去看海),另一本给部门老大;他回送了一本Python源代码剖析,看书名就知道是讲底层原理的,有机会啃啃。

  • 源代码:直接到Github上去找吧。

  • Python与数据库

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

    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。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 交互式数据可视化,在Python中用Bokeh实现

      交互式数据可视化,在Python中用Bokeh实现

      2016-02-03 08:43

    • python自学指引&json作业要求

      python自学指引&json作业要求

      2016-01-17 12:21

    • python中的json使用

      python中的json使用

      2016-01-17 08:20

    • Python下如何对JSON文件进行机器学习分析?

      Python下如何对JSON文件进行机器学习分析?

      2016-01-15 19:04

    网友点评
    g