我用Python做过些什么?
上周我整理了一篇 学了 Python 能用来做什么?,介绍了下 Python 当下的一些应用场景,给打算学习或刚学习此语言的同学一个参考。当然也有人说这个内容太水了,甚至觉得我是抄来的。这没办法,不管谁来写,应用场景也就是这些,况且知乎上关于有哪些使用 Python 的公司那个回答也是我最早在2013年整理的。
其实那篇文章本是个引子,主要是我想回顾下自己用 Python 做过的事情。后来发现内容太多就拆成了两篇。今天就来分享下我自己的 Python 开发经历。(这不会再有人说是网上抄来的吧。)当然肯定会有人看不上这些微小的工作,不过如果让一部分同学,尤其是学完基础想要找点方向找点项目进一步深入的同学能有一些启发,也就够了。
【工作篇】
1. 网站后台
做项目是最快的学习方式。我比较幸运,在还不会 Python 的时候就接到了一个兼职项目:和同学一起开发一个文书翻译网站。因为大家的网站开发经验都不多,项目时间也比较紧,于是最终选定了 Django 框架。通过这个项目,我完成了 Python 和 Web 开发的入门。
一个提供留学申请的咨询、翻译等服务的网站
后来作为后端工程师加入一个创业团队。这一次,不仅是网站,而是通过 RESTful API 实现前后端分离,一个后台同时支持 PC 网页、移动页面、App、微信公众号。Python 及其框架的开发效率很高,因此很适合小团队快速开发的需求。期间我和另一位 ACM 班的学弟用11天就开发了一个完整的网站产品。
一个小众的项目,或许有同学还知道
2. 游戏后台
这是我主导技术开发的一个创业项目。对于非实时对战的弱联网游戏来说,游戏后台和网站后台并无本质的不同。只不过游戏项目可能需要应对更高的并发,以及不断更新的运营需求。可能很多人都觉得 Python 效率慢,但正如 Instagram 在 PyCon 大会上的演讲里所说,直到他们的用户数超过 int 的最大值(约20亿),Django 框架本身也没有成为瓶颈。事实上绝大多数的瓶颈在于开发者写的代码逻辑,这个锅不要扔给语言。
另外值得一提的是,我们游戏引擎用的是使用 C++ 的 cocos2d-x,而它的起源就是 cocos2d-python。
动作卡牌类对战手游
3. 影院点播系统
这是一个朋友的线下连锁项目,我帮忙开发了早期的点播系统,效果类似于 KTV 里的点歌机。开发时间不到一个月,但却使用了很长一段时间,为他们的业务提供了必要保障。此项目仍在运营中,且发展得很好,或许你们有人就去体验过。
网上找了张不相干的图片作为示意,非实际系统
4. 计算机视觉
目前正在参与的,与某国外大厂的合作项目,主要涉及数字图像处理和计算机视觉相关的算法和产品开发,也会用到一些深度学习算法。Python 是主要开发语言,包括原型产品的 GUI 界面、硬件接口调用等也多半选择用 Python 实现。
顺便夹带个私货:在我的知识星球或在朋友圈的同学前几天可能有看到我发的招聘,目前仍然有效,欢迎有图像和视觉相关经验的朋友加入,实习/全职皆可。项目细节暂不方便透露更多,给几个关键词:定位、寻路、检测。有想法的请给我留言。
放个摄像头意思一下
在大约十年前,我在学校的时候,做了一个基于摄像头的动作识别系统,当时是用的 C++。现如今相关技术已经成熟许多,而其中使用到的 OpenCV、libSVM,以及近年出现的 OpenPose 都有了 Python 实现,比当时开发起来要更加方便许多。
真人出镜
5. 编程教室
crossincode.com
单独拿出来说下,因为这是完全由我个人开发、长期维护的项目,是一个用 Python 开发的、可以在线执行 Python 的代码的 Python 学习网站。