简单聊聊Python在算法、后端、量化工作中的应用
共 2645字,需浏览 6分钟
·
2022-06-24 17:12
今天想聊聊Python在算法、后端、量化工作中的应用,该如何去学习呢?
本人是非计算Python专业(天坑之一),大四开始学Python,一路过来摸爬滚打,现在在某行业头部企业做大数据分析,经常用到Python处理数据。
Python现在几乎是使用人数最多的编程语言,主要是因为它在各个领域都有应用,十八般武艺虽然说不上样样精通,但至少是有拿得出手的东西。在国内,Python大概从2017年开始,由于AI、大数据的兴起,逐渐网红化,备受非IT从业者的吹捧,当然也催生一大批教育培训。
很多人在说Python找不到工作,花钱去学的都是韭菜。其实我相信大部分人学习Python,并不是指望着靠Python去找工作,而是解决问题,培养自己的编程能力,作为加分项。至于哪些岗位需要python,这就是我们要聊的问题。
能够用到Python的工作有哪些?
我以我高中、大学的几个同学的经历为例,分别介绍下他们用Python的场景。
1、同学A:TOP3电商平台 NLP算法工程师
他是校招进去的,做UGC内容的文本挖掘,去分析电商用户的评论、客服、问答等数据,给商品推荐、智能客服等场景做决策。这是属于纯粹的算法岗了,在大厂里那是相当吃香,校招打包价都快50。
面试的时候,对用哪门语言其实并没有严格限制,Python、Java、C++都可以,但是需要手写算法,也会考上面几种框架的使用。
同学A说他们组现在用到的技术栈是NLP、深度学习、大数据,像nltk、tensorflow、pytorch、hadoop、spark之类,都是主力工具。组里大部分人都用Python,有少部分大佬用C++,总得来说是可以跑就行。
我问同学A为什么用Python,他笑着说了四个字“人生苦短”啊,Python写脚本、做测试、跑数据实在是太方便,虽然跑算法没有C++快,但是并不会带来很大差异,因为他们不需要实时去出结果。
而且Python第三方库有大量的NLP、机器学习工具,NLP领域像nltk、Pattern、Gensim等,机器学习像sklearn、keras、tf等,集成得非常好,拿来就用。
2、同学B:某头部自主车企 后端开发工程师
同学B是原来在乙方软件公司工作,主要负责车机软件的开发,后来不想卷去了甲方做web安全后端,但发现活一点没变少,可能这几年汽车电子发展太快,都在更新迭代。
现在车企招聘比较青睐计算机背景的候选人,许多在互联网裁员大潮中全身而退的技术人去了车企做开发、做产品,其实也是个不错的选择,赶上新能源发展的机遇。
他们做的安全相关业务后端开发,平常主要用到Django、Django RESTFramework、docker等框架,还有MySQL、MongoDB、Redis等数据库,基本上都是基于Python去做开发。
说来也奇怪,安全产品一直是C/C++为主,占据绝大部分场景,为什么他们会用到Python?我这样问同学B。
他说你还是不了解,安全领域C/C++、Java、Python一直是三大主流技术栈,像NTA、防火墙、IDS、IPS都会用到Python,一些小型的后端服务也会采用Python进行开发。
3、同学C:一家小型基金管理公司 量化分析员
同学C是在英国待过一年,回国后面了好几家大券商、大基金公司,都止步在技术面,后来进了一家上海本地的一家小型基金管理公司,做CTA高频量化模型开发,平时搞搞交易策略的研发、调试、优化、维护及监控。
他说当时进来也是想锻炼下技术能力,为后面去大厂铺路,加上业绩的压力,所以基本每天996,写策略写到麻木。平常还要做数据的收集和处理、历史数据回测以及风险收益评估等,总之把人用到极致。
由于我不太懂Python在金融行业的应用,于是问他做量化一定要用Python吗?
他笑了笑说,你可以去招聘网站上搜搜看,金融行业做分析搞研究的现在清一色的需要编程能力,其中大部分要求python,国外像摩根、花旗这样的大公司基本上把python当作硬性门槛了。
量化领域基本是以C++和Python为主,C++一般用来写大型交易框架,稳定性强,而且速度快,Python则用来写策略、跑算法、验证模型,也支持一些小型应用的编写,对C++库进行包装等。
这主要是因为Python生态有大量的金融数据分析工具,像talib、pandas、numpy等,可以快速引用。
这三位同学是我身边拿Python当主力工具的典型代表,其实可以看到都是需要综合能力的岗位,NLP要求算法、后端开发要求安全经验,量化要求会写策略。所以基本不是说会Python就能够找到合适的工作。
对Python能力的要求是什么样的?
Python是用来解决业务问题的,所以不同岗位的要求必然不同,但前提都是要会熟练使用Python语法,对数据类型、逻辑语句、函数模块、类、进程线程、错误处理、网络编程、正则表达式...这些务必要了如指掌。
这里建议大家去官方文档一一对照着去学习:
其次针对不同岗位要学习不同的Python框架,这些框架的难度一点也不必Python本身容易,有些大的框架比如tensorflow其学习成本已经远远超出Python语法。
爬虫岗:requests、xpath、beautifulsoup、scrapy、selenuim
数据分析岗:pandas、numpy、sklearn、matplotlib、pymysql
算法岗:sklearn、keras、tensorflow、pytorch
nlp岗:nltk、Gensim、Pattern
大数据岗:pyspark、pyflink
BI岗:superset、dash
web岗:Django、Flask、Tornado(知乎用这个写的)、fastapi
测试运维岗:os、sys、selenium、pytest、appium、unittest
前端岗:PyQt、PyGUI、pyecharts、dash、plotly
其他办公用:xlwings、pandas、pptx、docx、email
以上这些是对应岗位需要用到的工具,也就是python的第三方库,大家可以一一对应看看自己需要什么,然后针对性的去学习。
加入知识星球【我们谈论数据科学】
500+小伙伴一起学习!
· 推荐阅读 ·