FACEBOOK工程师同问:你的 Python 也是越学越难吗?
前段时间, PYPL (即编程语言流行指数,基于 Google 搜索频率而定)出炉了 5 月编程语言排行榜,Python 拿下 NO.1,成为最流行的编程语言。TIOBE 排行榜也显示, Python 的流行度屡创新高,目前排名第四,并保持高速增长。
也难怪,作为大数据和人工智能时代的必备语言,Python 优点颇多,它语言简洁、开发效率高、可移植性强,经过多年的生态建设,Python 有了大量的函数库,尤其在数据分析和科学计算领域。另外,函数在 Python 中是一等公民,所以 Python 同时也是一种函数式编程语言。
为了在大数据和 AI 时代更具竞争力,学 Python 的程序员越来越多,甚至不少人把 Python 当作第一语言来学习。许多人觉得 Python 功能强大还上手轻松,学习曲线也没那么陡峭,得来全不费工夫。但是,推开 Python 的大门你会发现,Python 入门容易但精通很难。看似语法记得滚瓜烂熟,但一进入实际项目,就被打回了原型。
比如:
你要去做一个电商后台,存储着每件产品的 ID、名称和价格。现在需要根据商品 ID 找出价格,如何使用最合适的数据结构呢?
在 Python 中字典、集合都是经过高度性能优化的数据结构,如果采用列表来存储数据并进行查找,时间复杂度是多少?
换成字典呢?哪个更高效?事实上,采用不同数据结构存储十万数据,查找速度差异就有可能差出几千倍。
再比如:
Python 中的协程和线程有什么区别?
生成器如何进化成协程?
并发编程中的 future 和 asyncio 有什么关系?
如何写出线程安全的高性能代码呢?
据我所知,大部分初学者都可能卡在这里,前进无门。但是,我们不得不说,解决这些问题,是一名合格 Python 工程师的基本能力。为了帮助用户从一个初学者进阶为优秀的 Python 工程师,我联合极客时间开设了一个专栏 《Python 核心技术与实战》,希望能帮你系统地提升 Python 实战编程能力。
专栏中我们不会去纠结某些生僻的知识点,而是从实际出发,以工作中遇到的实例为主线,去讲解 Python 的核心技术和应用。带你从基础语法起步,掌握语言的高级用法,再到项目中进行实战开发,让你把学到知识点通过项目都串联起来,融会贯通,形成自己的 Python 学习框架图。
整个专栏内容是基于 Python 最新的 3.7 版本来讲解,让你告别网上很多陈旧的学习资料。无容置疑,Python 3 才是 Python 的未来。
!爆享折扣!
我是谁?会讲什么?
我是景霄,Facebook 资深工程师。目前从事机器学习的相关工作,主要工作领域是人工智能的推荐排序系统与算法。我曾领导多个上亿用户级产品的开发与落地,有着丰富的工程与实战经验。加入 Facebook 之前,我分别在哥伦比亚大学计算机系和武汉大学通信工程系(专业第一)获得硕士和学士学位。
在《Python 核心技术与实战》里,我会带你从入门到进阶掌握下面 Python 核心知识点。
必学知识:【Python 基础数据结构】【Python 基础语法】【文件操作】【错误与异常处理】【Python 面向对象】【模块化】
第一步,你需要掌握 Python 的核心基础知识。当然,不同于其他基础教材,我不仅仅只讲基础概念、操作,同时也为你整理了很多进阶难度的知识,或是一些重难点、易错点等需要注意的地方。不仅可以让入门级的程序员查漏补缺,打捞基础,也能让有经验的程序员,重新从工程角度认识基础,升华理解。
必学知识:【Python 协议】【Python 高级语法】【Python 正则表达式】【Python 并发编程】【垃圾回收机制】【项目实战】
第二步,进阶 Python 核心知识点,比如装饰器、并发编程等等。如果你的工作只是写 100 行以下的脚本程序,可能不怎么会用得到。但如果你做的是大型程序的开发,则非常有必要。
这部分着重于教你把程序写得更加规范、更加稳定。我在实际工作中见过不少程序员,会写程序,但写得实在有点“惨不忍睹”,导致最后调试起来错误不断,修改非常费劲儿。因此,我觉得用单独一个版块讲解这个问题非常有必要。
当然,我不会用一些似是而非的规范来说教,而是会用具体的编程操作和技巧,教你提高代码质量。比如,如何合理地分解代码、运用 assert,如何写单元测试等等。
必学知识点:【RESTful】【Socket】【Pandas】【Numpy】【Kafka】【RabbitMQ】【MySQL】【Django】
没上过战场开过枪的人,不可能做主官;没有实战经验的语言学习者,不可能成为高手。这部分,我会通过量化交易系统这个具体的实战案例,带你综合运用前面所学的 Python 知识。
真正要掌握一门编程语言,仅仅学会分散的知识点是不够的,还必须要把知识点串联起来,做一些中型的项目才能有更深的领悟与提高。
另外,专栏里的所有内容都基于 Python 最新的 3.7 版本,其中有大量独家解读、案例,以及不少我阅读源码后的发现和体会。同时,在层次划分上,我希望能难易兼顾,循序渐进,既有核心的基础知识,也有高级的进阶操作,尽量做到“老少皆宜”。
详细目录
限时订阅福利
!爆享折扣!
点「阅读原文」,立享优惠,能力UP!