在CITYU-商学院-Management Science做RA时,主要任务是inventory与pricing等方面的coding工作,对应paper中的实验部分。该领域科研工作主要侧重点在于理论,期望结合问题的性质,给出model及optimal policy等;但在data-driven的趋势下,老板认为学生应该加强coding工作,故期望我分享如何学习编程,面向的对象为他的博士生。在这一背景下,完成了该slides。

Slides是我对自己编程学习的总结,抛开厚厚的书本,放弃“打开第一章”的动作,本着实用性的角度出发。

1. What is Python?

page1-1

page1-2

[统计来源]: https://www.tiobe.com/tiobe-index/

page1-3

[Python-Wiki]: https://en.wikipedia.org/wiki/Python_(programming_language)

[作者Wiki]: https://en.wikipedia.org/wiki/Guido_van_Rossum

他从著名英国喜剧团体Monty Python(巨蟒)身上得到了灵感,他本人也是该剧团的铁杆粉丝

page1-4

[图片来源]: https://Itw01.com/4RSDEGA.html

脚本语言每次运行都需要走完全部的运作流程edit-compile-link-run,特点就是interpreted

page1-5

2. Python从小白到入门

page2-1

page2-2

[conda VS pip]: https://stackoverflow.com/questions/20994716/what-is-the-difference-between-pip-and-conda

page2-3

page2-4

标蓝的库为常用库,用anaconda安装Python后,默认也会被安装

page2-5

[知乎《深度学习的Python包对比》]: https://www.zhihu.com/question/29412143

[PyFlux ArimaX introduction]: https://pyflux.readthedocs.io/en/latest/arimax.html#introduction

[强化学习,PyBrain]: http://pybrain.org/

并行计算的库一般已被集成到其他一些package里,但若是自己手动实现的代码,需自行添加

3. Python从入门到放弃

初学者看完第1、2章即可,后面的过程很难从编程中感受到快乐……

page3-1

page3-2

page3-3

page3-4

4. 操作演示

page4-1

这里不好放演示内容,故通过文字简单介绍下:

  1. 通过anaconda下载Python后,会自带下一个IDE,即spyder,个人觉得不够轻量级,所以推荐的IDE是微软的Visual Studio Code,下载地址为https://code.visualstudio.com/
  2. Jupyter Notebook是我非常喜欢的工具(将浏览器作为语言的IDE),类似于Matlab中的cmd,同时支持markdown的书写,可以让说明、公式、代码及每一代码块的运行结果出现在同一界面中,anaconda在安装好Python后也会自动将该工具安装好
  3. 对于不确定的代码,通过Jupyter单步运行,确定性的代码则copy到Visual Studio Code中进行封装

5. 总结

  1. 学习热情死于安装,但Python环境配置很简单,按上述介绍来即可
  2. 学习语言的最好方式为快速了解基本语法,再结合自己想实现的task,多google即可,书本仅作为查询细节的工具
  3. 多数童鞋想学习的Python的目的为数据处理与数据分析,对应Numpy、Pandas两个库函数,学会google里面输入“Pandas如何实现XXX功能”、“Numpy如何实现XXX功能”

page4-2

论和程序猿沟通方式的正确性