为什么讲授 Kotlin
Android 的编程语言
使用用于 Android 开发的首选语言来改进课程。自 2017 年以来,Kotlin 就开始支持移动开发工作流与相关工具。
Kotlin 基本上正在成为 Android 的编程语言。
Android 开发将越来越多的以 Kotlin 为首。Google I/O 2019
减少样板代码可以帮助我们快速识别学生们遗漏了哪些基本的 Android 概念。由某些基本语法/语言问题而引起问题的可能性较低,从而使学生可以专注于更基本的软件设计问题。
学术认可
2020 年《泰晤士报高等教育排名》中至少有 82 所大学使用 Kotlin 讲授移动应用开发、面向对象与函数式编程、软件工程模式、并行/并发编程、科学编程以及其他课程(资料来源:内部教学 Kotlin 研究)。
在从 Java 到 Kotlin 的众多课程中,我们正在考虑采用 Kotlin 优先的方法。
在 2020 年排名前 100 名的大学中有 22 所大学将 Kotlin 纳入课程。
我与 Kotlin 一起讲授软件工程。我们还有一门单独的 Android 开发课程。所以我可以用一种学生可以在其他课程中使用的语言进行教学。
在行业中受欢迎
- 各种规模的知名企业与组织都在使用 Kotlin,其中包括:推特、Reddit、Pinterest、优步、Coursera、印象笔记、Slack 与 Trello 等等。
- 自 2017 年以来,Kotlin 的职位发布增加了 1400% 以上。来源:Dice.
- Kotlin 是增长最快的编程语言之一,在 Github Octoverse 2019 中排名第四。
- PYPL 将 Kotlin 排名为第 12 种最受欢迎的编程语言,并在 2020 年呈上升趋势。
学生们很高兴有机会在他们可能听说过的领域进行编程。
在 2019 年 StackOverflow 开发者调查中,最受欢迎的编程语言排名第四。
学生们很高兴。他们可以快速地生产出有用的软件。
易于讲授的基本概念
Kotlin 的工业知名度具有良好的教育基础。它是一种功能全面的语言,支持讲授各种计算机科学与软件工程主题,例如:算法问题解决、数据结构、机器学习、编译器、数据库等。 Kotlin 以学生曾经的编程经验为基础,对于具有 Java 或 Python 背景的人来说很容易掌握。
我认为我们的学生可以从广泛的编程语言中受益,并且从中获得更多的经验,对于他们来说,获得使用更现代的语言以及 Java 与 C++ 等更传统的语言的经验非常有价值。
我欣赏 Kotlin 的传播、创新以及能够“保持主流”以软化学习曲线,支持关键概念的方式——简而言之,即清晰与干净。
Kotlin 的学习曲线柔和,可以轻松迁移现有的课程资料。
Kotlin 与 Java 一样易于使用,但是它具有与较难的语言(如 C++)几乎相同的理想语言特性。
我的学生认为 Kotlin 是一种易于学习的语言。一些学生采用 Kotlin 作为他们的主要编程语言。他们可以选择一种语言来完成作业或项目时,将其用作选择的语言。
学生的学习动机
知道 Kotlin 是一种市场认可的技能,学生们对学习它的热情往往更高。对学生来说,另一个重要的动机是学习一种语言,使他们能够快速地从代码中看到结果。
与 Java 相比,我几乎所有的学生都非常容易地学会了 Kotlin,并且非常喜欢它。
学生喜欢这种语言。例如,它不像 Java 那样冗长,并且比 OCaml 与 ML 具有更大的市场吸引力。
88% 的学生对学习 Kotlin 给予积极反馈。 资料来源:内部教学 Kotlin 研究。
学生对学习 Kotlin 的反馈非常非常积极。
互操作性
与 JVM 生态系统的无缝互操作性意味着 Kotlin 可以依赖众多现有的库。方便的 Java 到 Kotlin 转换器为将 Java 代码迁移到 Kotlin 提供了出色的支持,并在学生已经熟悉 Java 的情况下帮助他们快速学习语法。Java 程序也可以调用 Kotlin 代码而没有任何开销。Kotlin 也可以编译为 JavaScript,以便在浏览器或 Node.js 中运行,或编译为针对任何主要操作系统的原生二进制文件。
Kotlin 更快地开发与理解正在发生的事情;向后兼容性接近 100%,可以轻松地在 Java 中显示与转换为 Kotlin,同时仍然利用 Java 中的每个可用库;学生们似乎很快就理解了它。
在即将到来的入门编程课程中,我们选择 Kotlin 是因为我们想要一种针对 JVM 并与其生态系统无缝互操作的语言:这对我们的市场至关重要。
支持多种范式
Kotlin 以一种优雅的方式结合了主要的编程范式,从而可以使用函数式、命令式、面向对象或过程式编程——所有这些都在同一语言中进行。在 Kotlin 对协程的支持下,并发与并行性的概念自然而然地出现了。
你可以为初学者讲授过程编程,而无需描述类。因此,你的课程可以更加一致。
Kotlin 支持函数式、命令式、面向对象与过程式编程
实际上,我的 Kotlin 学生比 Java 学生更了解 OO 概念。
Kotlin 对面向对象的编程提供了强大的支持,同时也对函数式编程提供了支持。
支持编码安全
Kotlin 通过静态类型检查与自动内存管理来促进编写正确的程序。排除了对空指针的取消引用,并且没有显式指针或无法检测到的未初始化变量。
借此机会教一些新的、安全且实用的东西。
类型安全与空安全是 Kotlin 讲师最喜欢的特性。 资料来源:内部教学 Kotlin 研究。
Kotlin 的优点之一是强类型与可空性的良好组合。
更少的运行时错误是 Kotlin 的优势。空安全是我最喜欢的 Kotlin 特性。
现代简洁的语言设计
Kotlin 的简单语法使它对初学者很友好,同时,它提供了一些复杂的特性,这些特性是有雄心的学生永远不会放弃的。
Kotlin 使学生专注于表达自己的想法,并减少样板代码的编写。编写的代码越少,测试和调试的代码也就越少。这样的语言设计使 Kotlin 成为一种高效的语言,而且它还简化了批改作业与理解学生的代码。
简单的语法。更少的代码可以完成更多工作。同时,Kotlin 还拥有诸如协程等高级主题。
教师喜欢 Kotlin 简洁明了的语法。资料来源:内部教学 Kotlin 研究。
Kotlin 的紧凑性是我最喜欢的特性。我已经将我的一些 Java 编程课程翻译成 Kotlin,并注意到代码通常会缩小到其原始大小的 50%。作为讲师,当向学生展示如何做事时,我可以从使用更少的代码中受益。
为学生就业做准备
讲授专业的软件工程实践可以改善学生的就业前景。课堂编码项目通常是功能齐全的 Android 应用程序,与抽象示例相比,实际作业对学生而言更具吸引力。
在选择教学语言时,应考虑就业前景以及该语言在简历中的使用方式。
自 2017 年以来,Kotlin 的职位发布增加了 1400% 以上。资料来源:Dice。
万事开头难,但与 C# 或 JavaScript 相比,学生们更喜欢它。
工具与学习资料
语言是该行业的顶级工具。IntelliJ IDEA 支持 Kotlin 作为一等公民,对教育者与学生免费。它提供了出色的生产力功能,例如:自动代码补全、代码检查、可视调试器等。
教育相关的 EduTools 插件也可用于帮助学习或讲授 Kotlin 编程。教育者可以使用现有的交互式课程,也可以通过动手作业与练习编程任务来创建自定义课程。集成测试将自动检查任务并提供反馈。
JetBrains 为 Kotlin 配备了最好的可用工具,以简化开发。
去吧!你会喜欢的。语言很成熟,IDE 支持很棒,文档很棒。
开源社区
Kotlin 本质上是开源的,是一种可以在所有主要平台上运行的自由语言。Kotlin 得到了其多元化而热情的社区的支持与帮助,其中包括世界各地的 200 多个 Kotlin 用户群组、一个活跃的论坛、Slack、 Reddit,和 Stack Overflow 社区,以及许多其他资源。
自由提供的实现非常重要。
我们创建了一个专用的 Slack 频道,供 Kotlin 教育工作者分享经验、交流思想并互相支持。来(讲授)Kotlin!