clickonce 部署能cs程序_非CS专业的Python学习指南(1)

▲ 点击蓝字关注我们

大家好,我是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的语法也更加接近英语的表达方式,语法也更加精炼,是一门更加贴近人类的语言。

03a5f15d796cab29d675124a3c86a9f6.png

实现同样的功能,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上都能找到很多不错的网课。

270e90fdd29ca22d9586813e6102b3b0.png

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做程序员的一天

2d2d8b8d349ab3122aa8281ebea5350e.png

小烈-在你心里

6992a80412a00c272a30a1b174d5e5f9.png

UKCNSS

一个专注于在英国交友,求职与工作,扩展与提高你人脉圈子的高质量网络社群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值