程序员写过简历的都知道,先说精通->后说熟悉->最后说了解,要把精通放在最前面。
But 很少人会说自己精通Python,这也是因为Python的应用领域是真的多,最好还是说自己精通的领域,而不是语言,除非你真的是大佬。
一、首先,什么是精通?
我认为精通一门编程语言,就是要了解它的一切。比如说:
- 它产生的背景
- 它解决了哪些问题
- 它的设计思想是什么
- 它有哪些优势和缺陷
- 它有哪些经典的项目
- 它应该在什么情况下被使用
- 它现在的发展状况是怎样的
- ......
而在我们实际的工作当中大部分人是停留在会用的层面,能够完成基本的工作任务,这是不能成为“精通”的。打个比方就是像学数学一样,“会用公式解题”和“能够推导出这个公式”,这在根本意义上是两码事。
二、如何“精通”Python?
2.1 理解Python特性
- 简单易学: Python 与 C、C#、Javascript 和 Java 等其他编程语言相比较时,Python 是一种非常直接的语言,它允许你轻松地开始编程。它使我们在开发 Python程序时,专注的是解决问题,而不是搞明白语言本身。
- 面向对象:Python既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
- 可移植性:Python 是一种跨平台的编程语言,这意味着建立在 Mac OSX 上的 Python 应用程序可以在 Linux 操作系统上运行,反之亦然。只需安装 Python 解释器,Python 程序就能在 Windows PC 上执行。这样,Python 程序就可以在各种系统上运行,包括 Windows、Linux、Unix 和 Macintosh。
- 大型标准库:Python 标准库包含用于日常编程的一系列模块,随 Python 标准版提供,无需额外安装。Python 包含了正则表达式、单元测试、Web 浏览器以及其他实用工具。它包括使用操作系统,读取和写入 CSV 文件,生成随机数,以及使用日期和时间。
- 开源:Python 编程语言的特点之一就是开源,也就是说你可以自由地发布这个软件的拷贝,阅读它的源代码,对它做改动,把它的一部分用于新的自由软件中。
2.2 熟练使用标准库
Python是一个依赖强大的组件库完成对应功能的语言,为了便捷实现各项功能,前辈大牛们打造了多种多样的工具库公开提供给大众使用,而越来越多的库已经因为使用的广泛和普遍及其功能的强大,已经成为Python的标准库。
在这个标准库以外还存在成千上万并且不断增加的其他组件 (从单独的程序、模块、软件包直到完整的应用开发框架),均可以在网络上搜索到并下载使用。
Python常用标准库:
- 文本
- 二进制数据
- 数据类型
- 数学
- 函数式编程
- 文件与目录
- 持久化
- 压缩
- 文件格式化
- 加密
- 操作系统工具
- 并发
- 进程间通信
- 互联网
- HTML与XML
- 互联网协议与支持
- 多媒体
- 国际化
- 编程框架
- Tk图形用户接口
- 开发工具
- 调试
- 运行时
- 解释器
- 导入模块
- Python语言
- 其它
- Windows相关
- Unix相关
2.3 了解数据结构场景
数据结构和Python是相辅相成。
一来,Python语言的语法简单,交互性强。用Python来讲解数据结构等主题,比C语言等实现起来更为容易,更为清晰。
二来,随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。并且,Python是种语言,而数据结构和算法正是教你如何高效的使用各种语言,所以如果想高效使用Python,学算法和数据结构无异是如虎添翼。
2.4 读过甚至贡献过源代码
阅读Python开源代码的原因:
- 在工作过程中遇到一些问题 Google 和 StackOverFlow 等网站找不到解决办法,可以翻源码
- 对某些项目或者方向非常感兴趣,可以通过阅读源码来学习进阶
- 学习遇到瓶颈需要汲取开源项目的经验和用法来做提高
有目的地阅读开源项目:
- 从平时能接触到的那些项目中选取。有时候不去看 Django 的代码,因为日常工作基本遇不到,遇到了现翻就好了
- 一个方向只看一两个典型的就可以了,比如 Web 框架只看过 Bottle 和 Flask 的源码
- 清楚自己阅读源码的目的,没必要揪细节,有时候当黑盒看,知道输入输出就可以了。
三、总结
其实找工作的时候,你会发现很多人用“精通”这样的字眼,但实际上是学的越多,约会觉得自己渺小,越不敢用“精通”之类的词,除非真的是大牛。
学无止境,路漫漫兮,希望大家都能朝着精通的方向努力。