职业定义
Python 开发工程师是指运用 Python 进行软件开发的工程师岗位。Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使 用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 而 Python 开发工程师就是从事 Python 语言的软件开发相关工作的人员的统称。
任务职责
开发Web
常用的 Web 框架有 Django、 flask。
数学处理
NumPy 扩展提供大量与许多标准数学库的接口。
开发项目
数据挖掘、深度学习、人工智能 等项目都得用 Python 开发。
文本处理
python提供的re模块能支持正则表达式,还提供 SGML,XML 分析模块,许多程序员利用 Python 进行 XML 程序的开发。
数据库编程
程序员可通过遵循 Python DB-API(数据库应用程序编程接口)规范的模块与 Microsoft SQL
Server,Oracle,Sybase,DB2,MySQL、SQLite 等数据库通信。Python 自带有一个 Gadfly 模块,提供了一个完整的 SQL 环境。
网络编程
提供丰富的模块支持 sockets 编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如 Zope,Mnet 及 BitTorrent. Google 都在广泛地使用它。
游戏开发
有 pygame 等模块用来快速开发游戏。
知识背景
Python 语言开发经验
大学课程
Python 程序设计
职业技能
Python编程语言基础
Python 语言基础是入门 Python 的第一步,Python 对于新手来说十分友好,入门相对容易同时又可以干很多事,例如网站开发、运维、数据、爬虫等,在诸多方面,Python 都是一门非常方便顺手的工具语言。目前国内很多比较知名的网站,例如豆瓣、知乎、果壳、饿了么等,都是 Python 应用的典型。这也给了国内 Python 开发者一阵强心剂,Python 的生态环境可以支撑起重量级的 产品。
算法与数据结构
编写良好的代码需要了解常用的算法和数据结构,虽然你可能很少会自己实现,但是对于 Python 语言中一些常用数据结构如 list, tuple, set, frozenset, dict 和 collections 模块中的 OrderedDict, defaultdict, deque, namedtuple, Counter 等应该知道什么时候用。最主要的还是了解算法中递归,二分等常用思想,写出高效易用的代码。如果你想在线练习,可以做一些 Acm 基础题或者去 leetcode 等网站刷题。
计算机网络对于应用开发者来说,大部分时间可能不太会接触特别底层的问题,但是了解网络的运行原理还是必要的。如果对其中大部分的概念都了解就算是入门了。网络相关书籍可以随便找一本看看。Http 协议对于 web 开发者来说比较重要,需要深入了解。
Linux系统
大部分 Python 应用都是跑在 Linux 服务器上的,大部分开源软件使用的也是 Linux 系统,即使日常工作不使用 Linux,一些基本的 Linux 命令也要了解。 比如常用的文件操作,目录操作,进程操作等。
数据库
现在用得比较多的有三种类型的数据库,关系型数据库(mysql等),文档型数据库(mongodb等),和内存型数据库(redis等)。三种数据库各有优势和特色,后端程序员需要了解下不同类型数据库的使用方法和应用场景,灵活应用到后端代码中。
常用工具
目前市面上经常用到的 Python 编程开发工具有 PTVS、集成开发环境 Eclipse、PyCharm、IPython、Eric5、PythonWin 等。
职业发展
随着最近五年 Python 的持续走热,越来越多的公司开始使用 Python 编程语言。人才缺口巨大,需求量在不断增长,并且薪资水平也十分可观。