为什么简单易上手的Python能和C/C++相比较?

  • 数学建模
  • 程序设计
董亚微·长江大学
2018-11-01
阅读数4064

(本文最后附免费Python教程)

Python已经成为编程届第一大语言。为什么这么多人喜欢Python?今天我们就来从一位前辈的经历中管中窥豹。另外,关心就业的小伙伴,我们来看看Python的就业岗位情况。

 

 

1、喜欢Python,解决实际问题

 

2005年中期,用了几天学完了Python,随后两天用了十几个小时写了编译原理的课程设计,这是我大学阶段所有课程设计里唯一没有延期的。

 

后来逐渐发现Python的简单可以把我的思想从编程语言的细节里解放出来,更关注实际要解决的问题。

 

就喜欢上了。

 

既然有人点赞,就再补充点。

 

很多人关注起Python就是因为简单易懂,做Web很方便。但在深入CS学科的很多高级主题时,Python能发挥出更加强大无比的力量。而这来自于Python是个好胶水。

 

坦白讲,Python不算最好的胶水,至少Lua做胶水就比Python好,API好用。但Python再算上强大的标准库、数据结构、友好的转义后,就脱颖而出了。

 

在科学计算领域,NumPy和SciPy的存在解放了很多人的思想束缚。其底层C模块,性能一流。

 

而当你需要一流的性能与一流的可调试性时,Python C模块是最好的选择。封装虽然有些麻烦,但封装后可以在Python里调用实在太方便。一些已有的C/C++应用也可以通过将函数封装给Python调用,而极大的降低调试难度,提升单元测试覆盖率。

 

2007年时我开始学Python的C模块编程,并在博客中放出了我的笔记。那时写了不少东西。封装libpcap后,做网络抓包,通信劫持,使得别人眼里,我俨然是个正经黑客。

 

后来迷恋erlang期间,做了C node的Python封装,使得Python与Erlang可以互发消息,组建集群。搞硬件开发期间,封装了Cubieboard和RaspberryPi的GPIO、SPI等众多外设的Python接口,调试速度快到了云边。做USB通信期间,因为PyUSB不支持isochronous通信而自己重写了个libusb的Python封装,使得USB编程不再困难。做音视频识别的日子里,做了v4l2的Python封装,使得操作摄像头的控制精度达到了最高。

 

相比于其他人,用上这些Python封装后,迭代速度数十倍的提高带来了系统进化速度的极大提高。比如我在音视频识别的研究期间,因为NumPy和我自己的封装,每天动则十几次甚至几十次的迭代,优化算法的各种参数。使得我在不到两年时间里,识别效果就超过可某大学教授12年的研究成果。识别速度更是超出对方两个数量级。

 

对于各个领域的研究者,我是真心推荐Python的。用上NumPy和SciPy,你就拥有了极致的性能,顶级的可调式性,和产品级的稳定性。而这也使得Python的这套组合成为科学计算领域唯一能与matlab竞争的选择。

 

简简单单来张表

编程语言 优势 劣势
Python 简单易学,能够把用其他语言制作的各种模块很轻松地联结在一起。 速度较慢,且有一些特定情况下才会出现(无法重现)的 bug
C/C++ C/C++ 可以被嵌入任何现代处理器中,几乎所有操作系统都支持 C/C++,跨平台性非常好 学习难度大,且拥有大量极为复杂的功能交互方式,容易造成资源浪费
Java 世界上使用范围最广的语言 Java 占用大量内存,并且启动时间较长
C# 全面集成.Net 库,提供出色的功能与完美的库访问能力 跨平台能力太差,且在国内就业环境不太好,收入较低
JavaScript 学习难度低,并且掌握了 JavaScript 语言就等于成为能同时开发网页、后台、移动端的全栈工程师 过于依赖浏览器,且代码在用户电脑上运行,容易被别有用心的坏人恶意利用
SQL 开发速度快,安全性好 SQL 开发速度是靠牺牲运行速度换来的,且可移植性极差
PHP 社区庞大而活跃,易于快速上手 运行速度慢,且错误处理机制比较糟糕,需要支持大量旧版本的功能
Objective-C 拥有丰富的工具和库 拥有自己独特的编程思路,与其他编程语言思路差别较大
Swift Swift 在 iOS 和 OS X 软件中占的代码比例越来越多 版本更迭太快,不同版本差别过大
Kotlin 和 Java 的互操作性极佳 继承了 Java 劣势内容

 

2、Python太容易啦

 

因为软件工程发展到今天,很多时候代码的可读性,开发的速度,后期的维护难度,已经成为了语言最大的价值之一。还有很重要的一点就是,比起其它语言,要写很烂很烂的python,还是比较难的。

- Python和自然语言十分相近: 编写容易,维护容易,开发迅速

- 语言本身力量强大且高效:开发迅速,编写容易

- 有多种多样第三方库,各种直译器:开发迅速,编写容易, 效率不低

- 有一定群众基础和编写标准(pep8 etc):开发迅速,debug容易,社区支持。

 

3、Python职业发展方向

 

有打算学习Python的同学会问,Python学完之后就业情况怎么样?薪资待遇怎样?就Python的职业发展方向,这里简单的做一些分析,给大家提供一些参考。

 

1. Linux运维工程师

这个职位主要就是负责Linux服务器管理,数据分析、自动化处理任务、分析网站日志、定时计划管理等等,目的是解放双手。

 

2. Python开发工程师

这个职位一般需要精通Python编程语言,有Django等框架的使用经验,实习无要求。

 

3. Python高级工程师

需要精通Linux/Unixg平台,有英语阅读功底。

 

4. SEO工程师

为自己或公司开发和改进SEO相关软件,实现自动化搜索引擎优化和日常重复工作。

 

5. Python游戏开发工程师

网络游戏后端服务器逻辑的开发和处理,有大型数据库使用经验,喜欢从事游戏相关工作。

 

6. Web网站开发方向

熟悉Web开发的常用 Python框架,熟悉掌握Mysql类数据库的操作即可。

 

7. Python自动化测试

熟悉自动化流程、方法和常用的模块的使用,有英文读写的能力。

 


分割线.................................................................................................


 

现在人工智能爆发,Python是一门脚本语言,它更适合去做人工智能这个领域,在人工智能上使用Python比其他编程语言有更大的优势。

 

深蓝学院最新推出《Python基础入门》课程,共十讲,现在报名可以领取免费名额,有需要的伙伴,可以扫描下方二维码领取免费名额。

 

本文由 董亚微 授权 赛氪网 发表,并经赛氪网编辑。转载此文章须经作者同意,并请附上出处(赛氪网)及本页链接。原文链接https://www.saikr.com/a/373220
收藏
分享
别默默的看了,快来和大家聊聊吧,登录后发表评论~ 登录 立即注册
打赏
董亚微
打赏金额(金额:¥0)
给Ta留言
赏金已入袋,多谢!(*^__^*)
赛氪APP全新升级 反馈 下载
关注 微信公众号 关注赛氪订阅号 微信服务号 关注赛氪服务号
购物车
顶部
温馨提示

非常抱歉!本站不支持旧版本IE浏览器~~建议使用IE10/IE11/Chrome/Firefox/Safari等高级浏览器浏览。

温馨提示
温馨提示
帮助与反馈

热门问题