zoukankan      html  css  js  c++  java
  • Python

    学习Python的三种境界

     

    前言

    王国维在《人间词话》中将读书分为了三种境界:“古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树,独上高楼,望尽天涯路’。此第一境也。‘衣带渐宽终不悔,为伊消得人憔悴。’此第二境也。‘众里寻他千百度,蓦然回首,那人却在灯火阑珊处’。此第三境也。我从入门Python到现在也没有多少时间,所以写如此大的一个题目必定会引发各种批判,当然我没有想造一个大新闻,只是想根据自己的学习历程做一个简单的总结,同时将这三个阶段对应的一些好的书籍简单介绍介绍。

    正文

    Python的用途十分广泛,不同的程序员将其用于不用的领域,不同的程序员将自己的代码打包成库,供其他程序员使用,避免少造轮子,各种库的使用,加之Python本身的灵活性、易读性,易写性,使用的人越来越多,tiobe统计编程语言的使用率如下:Python在一年之间使用排行榜中上升了3名,而且各大公司在招聘员工的时候如果能掌握Python,肯定是一个加分项,因为Python在文本处理,小程序的写作方面具有太强的优势,前段时间一个朋友让帮忙改下他们公司logo的颜色,第一个想到的就是用Python,女票让我帮她预处理大数据,第一个想到的仍然是Python等等,当然并没有说其他语言不好,也不是为了讨论哪种语言更好,只是Python确实是一门会让人幸福的语言,下面粗浅的说说我对Python学习过程中的境界划分以及推荐书籍。

    第一个阶段:初级,掌握Python的语法和一些常用库的使用

    • 这里首先推荐廖雪锋在网上的书籍,这是Python2.7版本的,这本书适合于重头开始一直读完,作为一个开发人员,除了基本的语法,这本书里面提到了一些其他的常用的库,看了廖老师写的很多东西,感觉他的思路,以及写博客写书的高度,概括性,原理性都十分好,这本书读完之后,相信就可以动手写很多东西了,可以尽情的玩转Python解释器了。
    • 另外还有一本书《Python参考手册》,这本书也十分的有用,关于Python的方方面面基本都囊括在内,可以作为一本Python字典来查询使用方法,十分好用。
    • 掌握一门语言最好的方法就是用它,所以我觉得边学语法边刷Leetcode是掌握Python最快的方式之一。

    很多只需要将Python作为脚本或者就是写一些小程序处理处理文本的话,到这一个阶段就足够了,这个阶段已经可以帮我们完成很多很多的事情了。但是如果是一个专业学习Python的,恐怕还需要努力的升级:首先,国内的大多数人都是学习了其他语言(C,C++,Java等)之后来学习Python的,所以Python和这些语言的不同,也就是pythonic的东西需要一些时间去学习了解和掌握;另外,对于自己领域的领域的库构架的掌握也需要很长的时间去掌握;最后,如果想独立完成一个Python的项目,项目的布局,发布,开源等都是需要考虑的问题。

    第二个阶段:中级,掌握自己特定领域的库,掌握pythonic写法,非常熟悉Python的特性

    • 推荐的第一本书是《编写高质量代码--改善python程序的91个建议》,这本书大概的提了下Python工程的文件布局,更多的总结了如何写出pythonic的代码,另外,也介绍了一些常用的库。
    • 要想深入的了解Python,有的时候看看Python的源码也是很重要的,自己通过读懂源码,来彻底的了解Python的核心机制,这里推荐《Python源码剖析——深度探索动态语言核心技术》,这本书并没有看完,只是在需要深入了解Python某个功能或者数据结构的时候看看相关章节,也觉得受益匪浅。
    • 自己领域的书籍和资料也肯定很多,比如web开发的构架都有很多,只有了解熟悉了所有构架,在选择的时候才能衡量利弊,然后深入掌握某些构架。

    这个阶段过后,可以写出pythonic代码,可以通过PEP8的检查,可以为开源社区做贡献了,可以将一个Python文件写的十分好,但是如果要用Python开发一个大型项目,还是有很多东西需要掌握的,比如项目的文档,项目的发布,下载,项目性能和案例等等。

    第三个阶段:高级,从整个工程项目着眼,考虑document,distribution,性能优化等

    • 目前只看了一本书《the hacker guide to python》,看的是英文版的,这本书对项目的布局,文档,性能,发布等做了很多详细的介绍,我觉得写的还是很不错,只不过本人还需要再读几遍。
    • 对于大多数人来说,很难有机会从头开始一个有意义的大型工程项目,所以自己可以用Python实现一些简单的功能,简单的项目,这个灵感可以去知乎或者quora搜索,很多前辈都分享了自己的经验。

    从大局入手,规划好项目的布局,设定好相应的文档说明,提供工程下载安装的方法,带几个demo,每个类,每个函数,每行代码都反复推敲,写出pythonic的程序,相信这时候Python于我们便是信手拈来了!

    总结

    本文只是我认为的学习Python的三种境界,以我粗浅之眼光,肯定有太多太多的不足,而且自己也就是一个介于初级和高级Python程序员的水平,写这个文章,也算是给自己设立的一个目标吧。

    不向静中参妙理,纵然颖悟也虚浮 立乎其大 和而不同 古之成大事者,不惟有超世之才,亦必有坚韧不拔之志
  • 相关阅读:
    PAT (Advanced Level) 1060. Are They Equal (25)
    PAT (Advanced Level) 1059. Prime Factors (25)
    PAT (Advanced Level) 1058. A+B in Hogwarts (20)
    PAT (Advanced Level) 1057. Stack (30)
    PAT (Advanced Level) 1056. Mice and Rice (25)
    PAT (Advanced Level) 1055. The World's Richest (25)
    PAT (Advanced Level) 1054. The Dominant Color (20)
    PAT (Advanced Level) 1053. Path of Equal Weight (30)
    PAT (Advanced Level) 1052. Linked List Sorting (25)
    PAT (Advanced Level) 1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5455911.html
Copyright © 2011-2022 走看看