写点什么

《Effective Python》作者 Brett Slatkin 专访

  • 2015-11-04
  • 本文字数:2170 字

    阅读完需:约 7 分钟

InfoQ 就 Brett Slatkin 最近完成的新书-《Effective Python》以及新推出的 Effective Python 在线课程作了采访。其中在线视频的基础教程包括了 6 个不同的方面,无所谓是否和书一起使用。

  • 课程 1: 使用表达式和语句:在课程 1 中,你会学习到如何以 Python 行者的风格撰写程序,所使用的方法会影响到你将来编写的每一段程序。
  • 课程 2: 使用解析器和生成器:在课程 2 中,你会学习如何使用解析器和生成器来处理和创建序列。
  • 课程 3: 使用函数:课程 3 涵盖了 Python 函数的撰写和调用的多种独特的功能。
  • 课程 4: 使用类:课程 4 聚焦于如何正确的使用 Python 的面向对象编程,同时避免一些常见的陷阱。
  • 课程 5: 并发和并行:课程 5 为你提供了 Python 内置函数的洞见,即编写的程序能够同时干很多事情。
  • 课程 6: 让程序更加的完善:在课程的最后一节,你可以学习到最佳的技术,从而让你的程序在生产环境运行时做到无懈可击。

InfoQ: 初学者应该如何阅读此书?

Brett Slatkin: 阅读此书最好的办法就是查看目录,然后看有哪些内容能够吸引到你。 条目是按组来编排的,但是你不需要按照指定的顺序去阅读。你可以根据自己的兴趣随意的挑选章节。这就是阅读本书的最好的方法。我曾从几个读者那里听到过他们喜欢从自己已经知道的内容下手;我也曾从一些高级程序员那里听到我的一些建议让他们在某些方面重新思考,这是件好事;我还从很多的中级程序员那里听到我的一些观点让他们意识到自己原来所做的很多地方都错了。很幸运的是,这些结果都导致读者对书中的更多条目产生了兴趣。另外要注意的是,通过所有的方式来阅读内容非常的重要。深入理解 Python 绝非只言片语就能够涵盖。许多条目都提供了能够激励读者的例子,这些例子解释了为什么我给出的建议是相关的。在你获得好的部分之前不要停止阅读!

InfoQ: 你认为他们应该什么时候开始整合这些提示的学习?

Brett Slatkin: 马上!读者所读到的内容都是经过实践可用的。书中的多数内容本身就可自圆其说。如果书中有的内容需要另外的项来阐释的话,我会明确的引用它作为建议,引导读者进行更多的研究。在你成为一个好的 Python 程序员之前毋须完全读完本书。

InfoQ: 有一定经验的 Python 程序员应如何阅读此书?

Brett Slatkin: 我说过对于高级程序员来说,阅读此书应持怀疑态度且保持开放的心态。大多数我所撰写的内容其实很明显的是针对高级程序员的。应该只有很少一部分内容会有争议。本书是我个人 10 年的 Python 编程中所学到的最佳实践。在这 10 年中我很幸运的是曾经和一帮优秀的 Python 程序员一起共事。如果你发现其中一些内容,你严重不同意,或许是你需要重新审视你的 Python 编码风格了,又或者是你确实找到了错误!请将错误报告发送到这里 (非常的感谢能够给我指出错误)。

InfoQ: 你对 Python 和其它流行的语言相比又何看法?如果你给一些打算成为程序员的人提供一些建议,会和那些非程序员但是他们的日常工作又需要他们去学习编程的建议有所不同吗?

Brett Slatkin: Python 是一门优秀的语言,因为它不仅适合初学者学习如何编程,也适合科学家们为超级计算编程(等等)。Python 的应用范围非常的广泛,而且它的社区融合了很多个学科的内容,其多样性的强大之处是其它语言无法比拟的。如果人们从开始就使用 Python 的话,可以走的很远,甚至都不需要去学习其它的语言。但是话讲回来,我认为对于工作来说你需使用最好的工具。对于系统编程来说我非常感叹于 Go 的强大威力。在整个工作中,我仍然使用 Java 和 C++,因为它们能很好的针对特定的问题领域。对于 iOS 开发来说 Swift 是最好的、游戏开发中 C#尤其的擅长、若你不懂 JavaScript 你就无法开发 web 应用。当然,你必须学些函数式编程(如 Lisp 和 OCaml)来扩展你的视野。我认为所有的程序员都应该立志精通多门语言,且根据需要随时切换它们。你永远不会知道你接下来将会用到什么样的技能。

InfoQ: 新手们应该从 Python 的 2.x 还是 3.x 开始他们的学习之旅?

Brett Slatkin: 现在如 NumPy,SciPy,Django,以及其它的社区软件包都支持 Python 3 了。我建议初学者从 Python 3 开始,而不是 Python 2。在版本 3 中,许多原来不够完善的地方都得到了弥补,这能够让新手更加的容易理解。基于 Python 3 还有一个好处就是遵循模式:“做正确的事”。这会鼓励那些仍然在使用 Python 2(例如,工作中使用)的新的程序员们在 Python 2 的环境中应用 Python 3 的最佳实践。这是我在我的书中普遍使用的办法。对于 Python 2 和 3 最大重叠的事项提供建议,我会清晰的标注某些情况仅能在 Python 3 下工作,我也会提供在 Python 2 中实现同样目的的表达方式。

再次感谢 Breet 腾出时间接受 InfoQ 的采访。

关于受访者

Brett Slatkin是 Google 的一名高级软件工程师,他是谷歌消费者调查工程主管和发起人之一,他曾在 Google App Engine 的 Python 基础设施部门工作过,他是 PubSubHubbub 协议的创作人之一。九年前他开始尝试使用 Python 来管理 Google 庞大的服务器群。

查看英文原文: Author Q&A with Brett Slatkin on Effective Python


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-04 18:072647
用户头像

发布了 30 篇内容, 共 11.6 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Meetup 报名|开源分布式数据库探索和应用

OceanBase 数据库

数据库 分布式 活动 技术交流 oceanbase

软件开发除了23种设计模式,还有7个开发原则需要了解

华为云开发者联盟

设计模式 软件开发 开发 对象 SOLID

和 VMware、深信服、天翼云、招商云专家一起聊聊云原生边缘计算

阿里巴巴云原生

阿里云 容器 云原生 KubeMeet 线下活动

WICC 花城登场,揭秘时代变局下通信服务新形态

融云 RongCloud

开发者 社交 元宇宙 泛娱乐 通信云技术大会

学不懂Netty?看不懂源码?不存在的,手把手带你阅读Netty源码

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

Kubernetes 已经成为云原生时代的安卓,这就够了吗?

阿里巴巴云原生

阿里云 Kubernetes 云原生 学习资料 应用管理平台

一文带你快速掌握PTN网络的路由计算

鲸品堂

太完整了!阿里内部热捧“Spring全线笔记”,不止是全家桶

热爱java的分享家

Java 面试 编程语言 springboot 经验分享

售后支持领域的服务指标

Geek_utwige

方法论 技术管理 指标体系 数据指标 客户服务

一张图 GET 社交泛娱乐出海大招

融云 RongCloud

Forrester发布首份《中国低代码平台发展报告》,有多少企业应用低代码?

J2PaaS低代码平台

敏捷开发 低代码 低代码开发 低代码平台 低代码报告

100行代码,轻松搞定文本编辑器中草稿箱

Tom弹架构

Java 架构 设计模式

深圳企业办理等保备案流程详细说明

行云管家

网络安全 深圳 等级保护 等保备案

稳若磐石的焱融 SaaS 服务平台背后,是数据生态的崛起

焱融科技

云计算 分布式 高性能 公有云 文件存储

web技术分享| LRU 缓存淘汰算法

anyRTC开发者

缓存 音视频 WebRTC LRU web技术分享

灵犀平台—API的全可视化开发

鲸品堂

开发者 工具

深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析

百度Geek说

Webkit

观测云产品更新|新增场景笔记、监控SLO、升级场景视图、异常检测库等功能

观测云

功能更新

压缩比达到7:1,TDengine助力校园智慧用电系统降本增效

TDengine

tdengine 时序数据库

HBase 基础及核心架构解析

五分钟学大数据

11月日更

【可观测之路】“观测云”CSDN技术专区正式上线!

观测云

可观测 CSDN

企业云资源管理系统着重推荐-行云管家!

行云管家

云计算 服务器 云资源

索信达控股:四大策略、五大行动,新趋势下数字生态的落地策略及行动路径

索信达控股

金融科技 数字化转型 数字金融 银行业 金融机构

云原生时代:看 Apache APISIX 如何玩转可观测性

API7.ai 技术团队

云原生 可观测性 Skywalking API网关 Apache APISIX

Flink CDC 2.0 数据处理流程全面解析

大数据技术指南

11月日更

质量基础设施一站式服务平台开发,国家NQI一站式云平台搭建

电微13828808271

[SpringBoot源码分析]SpringBoot如何启动

零点999

spring SpringBoot 2

【概率】抽屉中的袜子

潮汐朝夕

概率

Tapdata 在线研讨会:DaaS vs 大数据平台,是竞争还是共处?

tapdata

数据库

恒源云(GPUSHARE)_长尾分布的多标签文本分类平衡方法(论文学习笔记)

恒源云

人工智能 深度学习 算力

0.99M,150FPS,移动端超轻量目标检测算法PP-PicoDet来了!

百度大脑

人工智能 百度

《Effective Python》作者Brett Slatkin专访_Python_Jeff Martin_InfoQ精选文章