关于本书
你好,我是 luckrnx09,一名靠 React 恰饭的前端工程师,很高兴向你介绍我的第一本开源电子书《JavaScript 工程师的 Python 指南》。
本书的内容完全免费,开源地址:https://github.com/luckrnx09/python-guide-for-javascript-engineers
为什么会有这本书
2022年,Open AI 引起了巨大轰动,人工智能迎来了新时代。Python 再次成为了人工智能领域最受欢迎的编程语言。许多与人工智能相关的工具如雨后春笋般涌现,日新月异。Python 的简洁性以及这些年来打下的江山,使得许多热门的人工智能项目仅提供 Python 版本。因此,学习 Python 成为进入这些项目的入场券,这是 AI 的趋势,已无法阻挡。
前不久,我终于系统地学习了 Python。然而,对于已经掌握了 C# 和 JavaScript 的我来说,学习过程却并不容易,原因如下:
- 我不清楚 Python 和我已经掌握的语言之间的差异,我不敢掠过表面,只好学习每一个细节,以免错过重要的知识点。
- 我不清楚 Python 和我已经掌握的语言之间的相似之处,我在已经完全掌握的编程概念上浪费了很多时间。
出于以上这两个 “不清楚”,我付出了巨大的努力,咬紧牙关完成了系统学习。学习完成后,我将 Python 中的部分知识点按照 Python 和 JavaScript 各自的语法和特性结合、对比的方式讲述给身边的前端开发小伙伴们听,发现他们也能跟我一样快速掌握 Python 开发。
因而,我决定更为细致地将学习过程中遇到的关键知识点整理成一本书,希望它能够帮助更多的 JavaScript 工程师在学习 Python 的过程中少走弯路。
本书内容特点
为了提高学习效率,书中多使用案例 + 对比式教学。我首先会展示如何使用 JavaScript 实现案例的需求,然后使用 Python 代码重新实现一遍。通过这种对比,你能够直观地了解它们之间的差异。
在案例的最后,我还会以表格的形式展示 JavaScript 和 Python 中等效的 API,这些 API 可能在案例代码中并未出现。它们大多是开发中极为常用的 API,你可能不一定需要马上一一掌握它们,但提前知道它们的存在对编写简单高效的 Python 代码可能会非常有帮助。
适用读者
这本书只适合熟练使用 JavaScript 的,尤其是熟悉最新的 ES 标准和 Node.js 的读者。
这本书是如何写成的
我的开源项目 https://github.com/luckrnx09/abook 是一个基于 AI 的写书工具,核心的思路即是上面提到的 “案例 + 对比式教学”。本书的初稿正是基于它生成的,我在初稿的基础上进行了许多校对、调整、翻译和润色,历时数月,最终展示到你的面前。
勘误
由于我的知识储备有限,在编写本书的过程中难免会出现错误。如你发现书中有任何错误,非常欢迎你通过文章左下方的“编辑此页”链接提交 PR 与我一起完善本书内容。
如何使用本书
运行环境
Python 是一门后端编程语言,为了方便教学,本书中所有的 JavaScript 代码除了特别说明外均应在 Node.js 环境中运行。
配套代码
本书中包含大量的案例及代码示例,我鼓励大家亲自将它们敲一遍以加深印象,由于时间和精力的限制,本书并没有单独提供示例代码的下载地址,敬请谅解。
查阅官方文档
官方文档是一手资料,任何通过翻译、转载、重述的材料(包括本书)都可能会缺斤少两甚至出现错误,很难通过它们建立系统的知识框架。当你在阅读本书的过程中,遇到任何的问题,建议第一时间查阅官方文档而不是去百度中寻找答案。
AI 辅助学习
AI 极大地降低了学习一门新的编程语言所需要的门槛,因而,在遇到困惑时,询问 AI 是一个非常高效的学习方式。我曾向身边许多从事开发的朋友推荐过它,但真正能把它用好的人却非常少,我认为其中非常重要的原因主要有两个:
- AI 是有使用门槛的,需要经过系统学习才能为我所用。
- 能否从 AI 中获得高质量的答案与提问者给它的问题息息相关。换而言之,它考验提问者对问题的分析、归纳、总结和陈述等各方面的能力,而许多提问者不愿意花时间在这些事情上,他们常常通过未经设计的提问,要求 AI 给予答案。
对于学习 Python 这门简单易学的编程语言来说,我们并不需要掌握太多提问的技巧,因为提问是垂直的且发散范围相对较小。
比如,当需要让 AI 解答 Python 如何实现与 JavaScript 中数组的 filter 方法同样的功能时,我们可以提问:
将如下 JavaScript 代码翻译为 Python 代码:
```javascript
const numbers = [1, 2, 3, 4, 5]
const odd = numbers.filter(x => x % 2 !== 0)
console.log(odd)
```
上面的例子展示了真正想要问的问题和最终要向 AI 提出的问题之间往往需要进行一些转化,我相信你通过它已经明白了其中的技巧。
现在,让我们一起推开 Python 世界的大门吧!