▲ 点击蓝字关注我们
大家好,我是Ernest,一名在英国Amazon的软件开发工程师,今天来跟大家分享一下Python的学习经验。
Python可以说是当下非常热门的一款编程语言了,商业分析、数学建模、量化金融、机器学习、人工智能等都能见到Python的身影。所以Python究竟为什么这么火?
Python和量化金融中的另一支柱编程语言C++相比,又有什么优缺点?非CS(计算机科学)专业的人如何学Python?在这里为你一一解答。
Python vs. C++
Python为什么这么火?
因为它上手真的很快!有多快,这里先给大家一点context。以我本科学编程打基础的C++为例,C++涉及很多计算机偏底层的内存管理问题,很多情况下需要用指针(pointer)来处理。
指针的存在让代码可读性大打折扣,如何debug指针带来的memory leak更是无数编程学习者的噩梦。总的来说,C++是一门更加贴近机器的语言。
我在写C++时,不光要考虑程序本身的代码逻辑,还要花很多心思来解决指针和内存的问题。相比之下,Python不再需要考虑繁琐的内存管理问题,只需要关注程序本身的代码逻辑即可。Python的语法也更加接近英语的表达方式,语法也更加精炼,是一门更加贴近人类的语言。
实现同样的功能,Python的代码量比C++少很多
但不可否认的是:C++程序运行起来会比Python快很多,所以很多quant和高频交易的程序都是用C++写的。
如果改成用Python跑程序的话,那可能电光火石之间,就直接损失了几个亿。
总的来说,Python更适合需要改动频繁、对运行速度没有要求、需要更好的代码可读性的工作,比如data analysis;C++更适合对运行速度有较高要求的工作,比如high-frequency trading。
除了上手快这个优点外,Python还有很多成熟的工具包(library)可供大家使用。从简单的数据分析到复杂的人工智能,大家都可以通过import library的方式来快速实现自己的目的,而不需要花大量的时候来实现一些底层的功能。
比如在做机器学习的时候,大家使用到scikit-learn这个library,只需快速定义你的机器学习模型结构,而不需要花大量的时候去定义如何训练你的模型。当然,如果大家对底层的technical理论感兴趣的话,其中还是有很多有趣的知识点值得学习的,例如机器学习模型究竟是如何训练的。
对于非CS专业的同学来说,我建议先从上手快的Python学起。如果有实际需求和兴趣再去研究C++,因为C++的学习难度和周期是远远大于Python的。需要注意的是:我这里说的是Python 3,因为Python官方2020年就要退役Python 2了。
如何学好Python?
自学Python的方法我主要分成3个阶段:理论、实践、检测。理论阶段就是通过看书和上网课的方法来学习关于Python的语法和算法等。
之前当TA的时候用过的一本书很好:Head First Python, 2nd Edition, by Paul Barry。相比于看书,我个人会比较建议上网课的方式。毕竟看书是非常枯燥的,而且网课的老师大都会带你写一些代码。去网易公开课、b站、Coursera上都能找到很多不错的网课。
Head First Python, 2nd Edition. Paul Barry.
实践阶段就是动手多敲代码。有一个很好的方法就是去GitHub上扒大佬们写的project。
也可以自己想一些有趣的project,比如最近疫情期间,就有不少人用Python来分析疫情数据。在自学Python时,大家一定会经历那一段debug起来非常痛苦的阶段。
一是因为,debug是一个非常吃经验的事情,大佬们通常能一眼就看出bug。
二是因为,就算再厉害的程序员,也会掉入自己写的代码的逻辑陷阱里。关于如何高效地debug,最简单的回答就是多用print(),把可能出错的variable打印出来。以后有机会的话,再出一篇debug技巧总结文吧。
检测阶段就是去LeetCode或者HackerRank上刷题。这个更多是和求职挂钩的。非CS专业的同学,如果能限时把easy题都做到bug-free,medium题不限时的情况下做到bug-free,那就非常优秀了!
总结
说了这么多,你准备好学Python了吗?
我会在《非CS专业的Python学习指南 (2)》中给大家讲一下:打好Python的基础需要学些什么语法和算法?打好Python的基础之后有哪些有用的工具包(library)?
关于编程和程序员日常,你们还想了解什么?如有需要,可以在后台留言回复小编,反馈作者让Ernest更详细地分享他作为亚马逊程序员的生活与工作。
如果想了解更多关于程序员的工作生活日常以及编程学习的技巧,也可以关注Ernest的公众号: Modularity Wins。
如果你认识一些希望留英求职的学弟学妹,特别是大一、大二的学生,希望能把UKCNSS在英求职群介绍给他们,这对正处于黄金求职期的他们来说,绝对是一次宝贵的机会!
往期推荐
JPmorgan的实习体验
UK工作申请 | 暑期实习/校招
【在英工作】在VISA UK做程序员的一天
小烈-在你心里
UKCNSS
一个专注于在英国交友,求职与工作,扩展与提高你人脉圈子的高质量网络社群。