首页 存档 技术 查看内容

Python学习资源

2018-3-30 13:00 |来自: 互联网 298 0

摘要: 本文选自《开发者头条》2 月 28 日最受欢迎文章 Top 3,作者 dylanninin ,感谢 _Reyn 分享。 欢迎分享:http://toutiao.io/contribute Python是在工作期间零零碎碎学习起来的。当时正值部门申购图书,鉴于Python的 ...

本文选自《开发者头条》2 月 28 日最受欢迎文章 Top 3,作者 dylanninin ,感谢 _Reyn 分享。

欢迎分享http://toutiao.io/contribute

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这样的语言是为经验丰富的程序员组成的团队进行专业开发而设计的,他们专注于代码运行时的效率。因此,这些语言有些部分非常复杂。而你关注的是如何编程,不需要那些复杂性。你需要的是这样的语言: 对单个的编程新手来说,它易学易记。

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


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


正如文中提到的一样,我学习Python很大一部分原因就是朋友的介绍;经过一些练习之后,你会发现自己越来越喜欢Python的简洁。印象最深的一次,要属部门一次关于Web Service的技术交流会,主持人用Java来演示XML RPCJSON RPCSOAP,不说混杂着各种Annotation,连这些协议都未所有触及,就疯狂的演示各种语言的客户端程序了。鉴于此,我花了几天时间看了下wiki,然后用Python做了几个原型,还附加地看了REST,这时你会发现用Python来解释会更加简明,这大概就是 声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部