Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[译] [031] 原书推荐序 #43

Open
cssmagic opened this issue Aug 7, 2024 · 0 comments
Open

[译] [031] 原书推荐序 #43

cssmagic opened this issue Aug 7, 2024 · 0 comments

Comments

@cssmagic
Copy link
Owner

cssmagic commented Aug 7, 2024

Foreword

原书推荐序

It’s an awesome time to learn programming. Why? Let me use an analogy to explain.

学习编程的黄金时代已经到来。为什么这么说?让我通过一个类比来解释。

I like to make my own bread. I make it more frequently, and more reliably, when I use my stand mixer to knead the dough compared to kneading it by hand. Maybe you’d say that’s lazy. I’d say it makes me more productive and more likely to actually make the bread. Maybe you have something that makes your life easier by taking over a tedious task, leaving you free to focus on more important or interesting things. Do you have a car that supports you in parallel parking? I recall when Gmail added spell and grammar checks in languages other than English. My husband’s German relative were so excited that he was writing them longer emails—because the effort of remembering little-used German language specifics went away and allowed him to spend more time on the content!

我喜欢在家自己烘焙面包。相较于手工揉面,使用立式搅拌机明显更加高效、更加可靠。你或许会认为这是在偷懒,但我想说的是,它减轻了我的负担,让我享受到更纯粹的烘焙乐趣。或许你也有类似的体验,当某样东西能够接管那些日常琐事、让你释放双手,那么你的生活不仅会变得更轻松,而且你会有更多精力投入到更重要或更有趣的事情之中。比如,你的汽车是否配备了自动侧方停车的功能?我清楚地记得,当 Gmail 为非英语语言引入了拼写和语法检查器时,我丈夫的德国亲戚们非常兴奋,因为他给他们写的电子邮件篇幅明显变长了——当那些不常用的德语细节不再成为负担之后,他可以将更多时间花在邮件的内容上!

Sadly, until recently, when learning programming, you had no equivalent of a stand mixer or grammar check to support you. And there are lots of tedious things to learn and remember when you start programming.

遗憾的是,在很长时间里,我们在学习编程方面并没有类似立式搅拌机或语法检查器这样的辅助工具。而且,当你刚开始学习编程的时候,就有大量繁琐的事情需要学习和记忆。

Good news! As of spring 2023, radically new and (we think) effective support is finally here. You are about to learn programming with one of the most exciting human task supporters so far this century: artificial intelligence. Specifically, this book seeks to support you in developing your ability to program in Python to solve computational problems more easily and faster by teaching you using a tool called GitHub Copilot. Copilot is a programming support tool that uses something called a LLM (large language model) to draw “help” from a huge number of previously written programs. Once you learn how to direct it (sadly, it’s more complicated than effectively using a stand mixer), Copilot can dramatically increase your productivity and success in writing programs to solve your problem.

但好消息来了!2023 年春天,我们终于看到一种全新且(我们认为)有效的辅助手段浮现于世。如果你打算踏上编程学习之旅,那么陪伴你的将是本世纪迄今为止最令人兴奋的辅助工具之一:人工智能。具体而言,本书将帮助你掌握一款名为 GitHub Copilot 的工具,它将帮助你拓展 Python 编程技能,进而更轻松、更快速地借助计算机程序解决实际问题。Copilot 是一款编程辅助工具,它基于一种叫作大型语言模型(LLM)的技术,能从大量已有的程序代码中“获取帮助”。一旦你学会如何驾驭 Copilot(遗憾的是,这比熟练操作立式搅拌器要复杂得多),它可以显著提升你编写程序、解决问题的生产力和成功率。

But should you use Copilot? Are you really learning to program if you use it? Preliminary evidence looks positive—showing that students who learned with Copilot, when assigned a programming task to be done without the help of Copilot, did better than students who learned without Copilot (and also did the task without Copilot) [1]. That said, compared to what we used to teach in an introductory programming class, there are different skills you will need to focus on when programming with Copilot, specifically problem decomposition and debugging (it’s OK if you don’t know what those are). Just know, practicing programmers need to know those skills as well, but we previously weren’t able to teach them explicitly or effectively in introductory courses, because students didn’t have the brain space left for learning these “high-level skills” while focusing on nit-picky things like spelling and grammar (programming languages have these, just like real world languages).

不过,你是否真的应该使用 Copilot 呢?用了它之后,你真的还是在学编程吗?初步的研究结果看起来是积极的——那些借助 Copilot 学习的学生,在脱离 Copilot 辅助的情况下面对编程任务,比那些从未借助 Copilot 学习的学生表现更为出色(后者同样脱离 Copilot 辅助面对相同任务)[1]。尽管如此,相较于我们以往在编程入门课程中的教学内容,使用 Copilot 编程时,你需要特别关注一些不同的技能,尤其是问题拆解和调试排错(如果你对这些术语还不熟悉,那也无妨)。要知道,即便是经验丰富的程序员,同样需要掌握这些技能,但在过去,我们很难在入门课程中明确提出并有效讲解它们,原因在于学生们在专注于编程语言中的拼写和语法等细节问题时,往往已经腾不出脑细胞来学习这些“高阶技能”了。

Leo and Dan are expert computing educators and researchers; the decisions that they’ve made to guide your learning in this book are grounded in what we know about teaching and learning programming. I’m excited that, with this book, they’re taking steps toward what the next wave of teaching programming will look like.

本书的两位作者均为资深的计算机教育专家和研究者,他们在本书中所制定的教学策略,深深植根于我们对编程教育的深刻理解。我对此感到非常兴奋,因为通过这本书,他们正在向我们展示编程教育的未来趋势。

So, congratulations! Whether you have never done any programming or whether you started to learn before and got frustrated… we think you will find learning to program with Copilot transformative and will allow you to engage your brain in more meaningful and “expert-like” programming experiences!

所以,恭喜你!无论你是编程新手,还是曾经尝试但遭遇挫折……我们相信借助 Copilot 学习编程将是你不容错过的一次转机。它将使你的头脑在编程过程中发挥更重要的作用,享受到“指点江山”般的编程体验!

—Beth Simon, Ph.D.
——贝丝·西蒙,博士

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant