Python核心技术与实战
景霄
Facebook资深工程师
立即订阅
13891 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从工程的角度深入理解Python
免费
基础篇 (14讲)
01 | 如何逐步突破,成为Python高手?
02 | Jupyter Notebook为什么是现代Python的必学技术?
03 | 列表和元组,到底用哪一个?
04 | 字典、集合,你真的了解吗?
05 | 深入浅出字符串
06 | Python “黑箱”:输入与输出
07 | 修炼基本功:条件与循环
08 | 异常处理:如何提高程序的稳定性?
09 | 不可或缺的自定义函数
10 | 简约不简单的匿名函数
11 | 面向对象(上):从生活中的类比说起
12 | 面向对象(下):如何实现一个搜索引擎?
13 | 搭建积木:Python 模块化
14 | 答疑(一):列表和元组的内部实现是怎样的?
进阶篇 (11讲)
15 | Python对象的比较、拷贝
16 | 值传递,引用传递or其他,Python里参数是如何传递的?
17 | 强大的装饰器
18 | metaclass,是潘多拉魔盒还是阿拉丁神灯?
19 | 深入理解迭代器和生成器
20 | 揭秘 Python 协程
21 | Python并发编程之Futures
22 | 并发编程之Asyncio
23 | 你真的懂Python GIL(全局解释器锁)吗?
24 | 带你解析 Python 垃圾回收机制
25 | 答疑(二):GIL与多线程是什么关系呢?
规范篇 (7讲)
26 | 活都来不及干了,还有空注意代码风格?!
27 | 学会合理分解代码,提高代码可读性
28 | 如何合理利用assert?
29 | 巧用上下文管理器和With语句精简代码
30 | 真的有必要写单元测试吗?
31 | pdb & cProfile:调试和性能分析的法宝
32 | 答疑(三):如何选择合适的异常处理方式?
量化交易实战篇 (8讲)
33 | 带你初探量化世界
免费
34 | RESTful & Socket: 搭建交易执行层核心
35 | RESTful & Socket: 行情数据对接和抓取
36 | Pandas & Numpy: 策略与回测系统
免费
37 | Kafka & ZMQ:自动化交易流水线
38 | MySQL:日志和数据存储系统
39 | Django:搭建监控平台
40 | 总结:Python中的数据结构与算法全景
技术见闻与分享 (4讲)
41 | 硅谷一线互联网公司的工作体验
42 | 细数技术研发的注意事项
加餐 | 带你上手SWIG:一份清晰好用的SWIG编程实践指南
43 | Q&A:聊一聊职业发展和选择
结束语 (1讲)
结束语 | 技术之外的几点成长建议
Python核心技术与实战
登录|注册

开篇词 | 从工程的角度深入理解Python

景霄 2019-05-08
00:00
07:03
讲述:冯永吉 大小:6.46M
你好,我是景霄。
我是 Facebook 的一名全栈工程师,目前从事机器学习的相关工作,主要工作领域是人工智能的推荐排序系统与算法。工作期间,我曾领导多个上亿用户级产品的开发与落地,有丰富的工程与实战经验。
一听机器学习,很多人第一反应可能是“好难呀、厉害呀”。可事实上,我的编程之路并非一路高光。
不同于大城市长大或竞赛出身、十一二岁接触编程的人,在刚上大学时,我的编程基础几乎为零。大一上的 C 语言,便是我出生起学到的第一门编程语言。初识计算机语言的世界,很有趣也很吸引我,这也是我成为程序员的最初动力。
和很多对编程感兴趣的人一样,哪怕老师只是在讲台上,照本宣科地读着 N 年前的课件,我也会竖起耳朵认真听讲、认真做笔记。并且,私下里我还买了不少厚重的大块头书,在网上查了不少博客、帖子,照着上面的例子一行行地敲代码。很多内容我并不理解,比如指针、递归这类抽象的概念,查了一堆资料也没看明白。但靠着死记硬背,考试基本可以过关,虽然这个过程比较痛苦,也比较累。
后来,为了更深入了解计算机,我去了哥伦比亚大学攻读计算机硕士学位,又陆续学到不少新的编程语言,比如 Node.js、Python、PHP、Scala 等等。这个阶段,我边学习,边做项目,却发现轻松了很多。
这两个学习阶段,收获和感受天差地别,难道仅仅是因为“万事入门难”吗?我不止一次反思过这个问题,终于发现,问题出在了资料本身上。
为什么这么说呢?一是因为书上或网上的很多东西,非常理论化,实例少之又少,单凭死记硬背很难真正掌握;二是这些内容中,原创的观点和经验更少,大多互相抄袭,内容雷同且不实用,远离实际工程,毫无借鉴价值。
但显然,市面上的资料问题,我们个人是很难解决的。我们能做的,便是克服常见资料的弊端,另辟蹊径来学习。这其中,最重要的一点就是,从工程的角度思考学习,以实用为出发点,多练习、多阅读、多做项目,这样才能有质的提高。
在 Facebook 工作的这么多年,也验证了我的观点。我身边的新手,他们学习新的语言总是只会啃书练习,还难以上手;而有经验的同事则不同,他们能花很短的时间看完基础语法,然后找行家去了解一些重难点、易错点,最后亲自动手完成一个项目,达到融会贯通的效果。这样下来,可能几周时间就掌握得差不多了。
这样的差距,确实让人心塞,而这也是我开这个专栏的最初动力——帮助更多入门级程序员迅速成长。至于专栏主题,我选择了 Python 这门编程语言,原因也很明了。
这首先来自于我个人的重要感悟。经过多年学习工作的积累,我深刻认识到,牢牢掌握一门编程语言及其学习方法,是日后在所有领域深造的根基。而在实际工作和生活中,我更是见过不少反例,比如搞机器学习的工程师,算法、理论等极强,但是编程水平或是工程水平很一般,于是涉及到偏工程的工作或合作时,就显得力不从心,这样就非常可惜了。
另外,不可否认,Python 确实是这个时代最流行、也必须要掌握的编程语言。Python 可以运用在数据处理、Web 开发、人工智能等多个领域,它的语言简洁、开发效率高、可移植性强,并且可以和其他编程语言(比如 C++)轻松无缝衔接。现如今,不少学校的文科生甚至中学生也开设了此课程,可见其重要程度。
因此,我决定开设这么一个专栏,从工程的角度去讲解 Python 这门编程语言。我不是语言学专家,不会死抠一些很偏的知识点;相反,作为一名工程师,我会从实际出发,以工作中遇到的实例为主线,去讲解 Python 的核心技术和应用。
专栏的所有内容都基于 Python 最新的 3.7 版本,其中有大量独家解读、案例,以及不少我阅读源码后的发现和体会。同时,在层次划分上,我希望能难易兼顾,循序渐进。专栏中既有核心的基础知识,也有高级的进阶操作,尽量做到“老少皆宜”。
从内容上来说,专栏主要分为四大版块。
1. Python 基础篇
第一部分主要讲解 Python 的基础知识。当然,不同于其他基础教材,专栏的基础版块并不只有基础概念、操作,我同时加入了很多进阶难度的知识,或是一些重难点、易错点等需要注意的地方。如果你觉得自己基础的东西都会了,这部分不用学了,那你就大错特错了。比如,
列表和元组存储结构的差异是怎样的?它们性能的详细比较又如何?
字符串相加的时间复杂度,你真的清楚吗?
基础不牢,地动山摇。更深刻、实质的基础理解,才是更牢固的知识大厦的根基。我希望这一版块,不仅可以让入门级的程序员查漏补缺、打牢基础,也能让有经验的程序员,重新从工程角度认识基础、升华理解。
2. Python 进阶篇
这部分讲的是 Python 的一些进阶知识,比如装饰器、并发编程等等。如果你的工作只是写 100 行以下的脚本程序,可能不怎么会用得到。但如果你做的是大型程序的开发,则非常有必要。我希望通过这一版块,让你熟悉各种高级用法,真正理解 Python,理解这门编程语言的特点。
3. Python 规范篇
这部分着重于教你把程序写得更加规范、更加稳定。我在实际工作中见过不少程序员,会写程序,但写得实在有点“惨不忍睹”,导致最后调试起来错误不断,修改非常费劲儿。因此,我觉得用单独一个版块讲解这个问题非常有必要。
当然,我不会用一些似是而非的规范来说教,而是会用具体的编程操作和技巧,教你提高代码质量。比如,如何合理地分解代码、运用 assert,如何写单元测试等等。
4. Python 实战篇
没上过战场开过枪的人,不可能做主官;没有实战经验的语言学习者,不可能成为高手。这部分,我会通过量化交易系统这个具体的实战案例,带你综合运用前面所学的 Python 知识
真正要掌握一门编程语言,仅仅学会分散的知识点是不够的,还必须要把知识点串联起来,做一些中型的项目才能有更深的领悟与提高。
专栏篇幅只有 40 多篇,但是每篇绝对都是干货满满。我希望这个专栏,能帮助更多入门级和有一定项目基础的程序员,真正掌握 Python,并且给你一些学习上的启发。
100 天后,晋级为 Python 高手,让我们一起加油吧!
取消
完成
0/1000字
划线
笔记
复制
unpreview
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Python核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(149)

  • Sally 高先瑞
    零基础的初中生可以学习吗?
    2019-05-09
    3
    67
  • 冷吟閑酔
    之前用到Python都是浅尝辄止, 关注于用, 比如写爬虫, 运维脚本
    期待景霄老师能给我们重新认识Python!
    2019-05-08
    19
  • PyGeek
    作为Pythonista,一名Python开发工程师,我也来虚心学习下您对Python的一些见解。
    2019-05-09
    13
  • A.Windy
    能不能分享一下阅读源码的方法,环境搭建什么的,Python接触时间也不短了,但感觉自己总浮于表面

    作者回复: 阅读源码,对于Python主要是CPython,用C写的,可能读起来比较费劲,需要一定的C基础,但是很多时候也不需要详细知道每一句话的意思,大概知道这段干什么就可以了(字符串那讲会有例子)。环境搭建,网上很多教程,主要是linux的基本知识,遇到不懂的问题,多去google一下都能解决

    2019-05-08
    1
    12
  • 烟火不坠
    难道,我的进阶之旅就从这里开始了?😏

    作者回复: 一起努力吧

    2019-05-08
    9
  • 是我的海
    今年啥也不干了,死磕Python.
    2019-05-08
    8
  • Hurt
    pythoner 打卡
    2019-05-08
    8
  • 且听疯吟
    34岁公务员第一天打卡。
    2019-05-28
    7
  • coder
    看到WHU激动了一下,校友诶,不过看了一下目录,感觉提及的知识点我都知道,但是我还是想订阅一下🌚🌚🌚Be More Pythonic,顺便学一下FB学长的学习思路

    作者回复: 哈哈,校友你好!

    2019-05-09
    7
  • ququwowo
    学完这个专栏,希望自己能从新手变为中级用户!
    2019-05-09
    5
  • Ys.Lam
    终于有py课程了😂
    2019-05-08
    5
  • 洋葱驿站
    不知道老师会不会回答我的问题,作为27岁的非IT专业,不喜欢现在的工作,想从事编程方面工作,从零开始学python,在老师看来,会不会傻?
    2019-05-21
    2
    4
  • enjoylearning
    我喜欢从工程这个角度来学习,从其他编译型语言转过来,总感觉python写个几百行的程序还行,系统一大就不好掌控了。希望讲讲用python开发大型系统如何做单元测试,如何做自动化部署,如何增强代码解耦等一些最佳实践

    作者回复: 感谢你的feedback

    2019-05-09
    4
  • Lee
    学习这门课程需要有门槛吗?可以从零开始吗?

    作者回复: 基本没问题,可能需要你掌握一些最基本的编程知识,比如变量如何命名赋值之类

    2019-05-09
    4
  • 小豹子
    作为一个DBA,知道python重要,但是又不知道能运用在哪些地方,平常的脚本全用shell写完了。希望这次能跟着大师好好把这个弄弄,将来往大数据或者人工智能方向转转。不想干运维的活了,累又看不到成绩。
    2019-05-23
    1
    3
  • Tomcat
    开启新的征程~挑战百万年薪~
    2019-05-08
    3
  • 充满热情的老铁
    老师能否给我们提供一下用来练手的项目?难度越大越好,您只要提出需求或者场景就行,如果是您工作中遇到过的场景就更好了。让我们自己想办法解决问题,这样才能有效的学习和成长。感谢您了。

    作者回复: 比如服务器端的项目:如何设计一个搜索引擎,主要是面向对象编程的思想,设计各种类,比如各种Request,各种Response(nlp的req/res,main req/res,以前一些independent的req/res等等),以及中间的很多intermediate的类,然后你如何把他们串接在一起,让系统的设计更加的合理,方便日后的修改和维护

    2019-05-08
    3
  • 自由民
    刚买的,课程结束几个月了,不知道老师还会不会回答问题的。我是一名35岁的牙医,喜欢计算机,自学过c/c++,写的都是些玩具程序。最近几年用python多一些,想往量化投资,人工智能方面发展。自己也是想写一个量化投资的框架,却在回测那里卡住了,都是一些细节,但就是调不通或者结果不对。(代码:https://github.com/zwdnet/etfdata)看到这个课程练习是写量化投资系统,毫不犹豫就买了。希望能坚持到底!

    作者回复: 谢谢支持,加油!

    2019-09-14
    2
  • 矫健的胖虎
    支持一下~
    2019-05-08
    2
  • _
    来支持啦
    2019-05-23
    1
收起评论
99+
99+
返回
顶部