HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

《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:072488
用户头像

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

关注

评论

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

使用doop识别最近commons text漏洞的污点信息流

vivo互联网技术

SAST commons text命令执行漏洞 doop

四大关键举措!高效管控企业税务风险

用友BIP

税务

极狐GitLab as Code,全面升级你的 GitOps 体验

极狐GitLab

git DevOps 云原生 版本控制 gitops

本周精彩!关于 Linux 内核宕机和超融合 Kata 虚拟化容器技术介绍 | 第 77-78 期

OpenAnolis小助手

开源 云原生 系统运维 龙蜥大讲堂 浪潮

一种通用的业务监控触发方案设计 | 京东云技术团队

京东科技开发者

京东云 业务监控 企业号 5 月 PK 榜

SpringBoot 使用 Sa-Token 完成注解鉴权功能

做梦都在改BUG

Java spring Sa-Token

SVN管理工具Cornerstone入门教程

互联网搬砖工作者

阿里Java面试脑图 被曝光!GitHub上已获赞79.6K

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索 | 京东云技术团队

京东科技开发者

开源 京东云 企业号 5 月 PK 榜

首个支持RWA交易的订单簿DEX-PoseiSwap,即将开启IEO

鳄鱼视界

【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花 | 京东云技术团队

京东科技开发者

人工智能 京东云 ChatGPT 企业号 5 月 PK 榜

Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

汀丶人工智能

人工智能 深度学习 ChatGPT MidJourney prompt learning

Java开发实践:合理使用线程池及线程变量

阿里技术

Java 线程池

23年最新Java岗常见面试题及答案(1000道),90% 的公司都会问到

Java你猿哥

Java MySQL zookeeper JVM java面试

Rhino 7 中文:建模渲染一站式完成~

真大的脸盆

Mac 3D Mac 软件 三维建模 建模软件

阿里首席架构师讲解“双十一”亿级流量高并发的系统架构搭建方法

做梦都在改BUG

Java 系统设计 高并发 亿级流量

阿里自爆性能优化100+小技巧,Github已获赞68.7K

做梦都在改BUG

Java 性能优化 性能调优

从前后端的角度分析options预检请求

华为云开发者联盟

前端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

阿里云数据库ClickHouse产品和技术解读

NineData

MySQL 数据库 运维 Clickhouse 2023云数据库技术沙龙

研发效能管理中的经典度量——DORA 指标

LigaAI

DevOps 敏捷开发 研发管理 研发效能管理 企业号 5 月 PK 榜

限速神器RateLimiter源码解析 | 京东云技术团队

京东科技开发者

限流算法 京东云 企业号 5 月 PK 榜

GitHub爆赞!阿里P9纯手打十亿级高并发系统手册,真的太香了!

做梦都在改BUG

Java 系统设计 高并发 亿级并发

高效联调,可靠发布!华为云推出CodeArts Release发布管理服务

华为云开发者联盟

云计算 开发工具 华为云 华为云开发者联盟 企业号 5 月 PK 榜

包管理工具:pnpm | 京东云技术团队

京东科技开发者

京东云 pnpm 企业号 5 月 PK 榜

SecureCRT中文乱码怎么办?解决 SecureCRT中文乱码方法

互联网搬砖工作者

开箱即用!AI模型库全新发布,一站式在线开发部署!

飞桨PaddlePaddle

模型 飞桨

使用 Python 和 mitmproxy 实现基于队列的路径管理

IT蜗壳-Tango

MobLink 创建应用

MobTech袤博科技

Python从零到壹丨详解图像锐化Roberts、Prewitt算子实现边缘检测

华为云开发者联盟

人工智能 华为云 图像 华为云开发者联盟 企业号 5 月 PK 榜

LP流动性质押挖矿系统软件开发

Congge420

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