首页 > 编程语言 >为什么我们强迫你学习多种编程语言

为什么我们强迫你学习多种编程语言

时间:2022-08-31 03:33:48浏览次数:171  
标签:语言 编程语言 强迫 Python JavaScript 学习 我们

为什么我们强迫你学习多种编程语言

我一直在建造 引导程序 作为过去几年的一个副项目,最近有很多新生问同样的问题:

“为什么你的后端课程要求我学习不止一种编程语言?”

似乎有不少学生加入该平台,认为他们会“完全掌握一门语言”而不是“分心”。虽然我计划在应用程序本身中更好地解释这一点,但我想写这篇博文来深入解释为什么我们让你在我们的课程中学习多种语言 后端程序 .

首先,关于 Boot.dev 的一些背景知识

为了让您了解我的出发点,让我解释一下 Boot.dev 是什么,以及它作为教育平台的目标是什么。

Boot.dev 是浏览器中包含电池的后端课程。我们有一些 强烈的意见 关于学习编码的最佳方式。例如:

  • 我们首先教授后端开发和 CS 概念。特定技术只是我们教授概念的一种机制。
  • 我们完全亲力亲为
  • 我们有指导课程和非指导项目
  • 我们教授现代技术和语言
  • 我们有一个线性课程,所以学生不必担心他们接下来应该学习什么
  • 我们尽可能将体验游戏化,以保持学生的积极性

那么为什么不能用一种语言来教授整个课程呢?

如果你看 我们在 Github 上的公共路线图中计划的完整后端课程 ,你会发现这基本上是不可能的。有些概念与特定技术紧密耦合,因此尝试以同样的方式教授它们是没有意义的。让我们看几个简单的例子。

  • 没有 SQL 很难真正教授数据库
  • 没有纯函数式语言很难教授函数式编程
  • 没有面向对象的语言很难教授 OOP
  • 没有汇编程序很难教授硬件接口
  • 没有强类型语言就很难教打字
  • 没有 JavaScript 很难教网络
  • 没有 Python 很难教 ML

简而言之,我们有两个相互竞争的目标:

  • 我们希望使用尽可能少的技术教授所有概念
  • 我们希望使用最能引入概念的技术来教授所有概念

那你要教我多少种语言?

在我的大学传统 CS 学位课程中,我使用了 12 种以上的编程语言。我认为这太多了。我不想为了教语言而教语言。这确实是一个优化问题,我们希望引入尽可能少的语言,同时有效地教授我们想要教授的每一个概念。我相信完整的课程 引导程序 总共只需要使用大约 6 种语言,并且大多数程序可以只使用 JavaScript、Python 和 Go。

学习多种语言会消除你的狭隘视野

学习一些我们尚未讨论过的不同编程语言还有一个额外的好处。通过让您接触不同的语言,您将开始看到各种编程方法之间的一些优点、缺点、相似之处和不同之处。

如果你只写过一种编程语言,很容易假设某种做事方式是“最好的方式”、“正确的方式”,甚至可能是“唯一的方式”。

例如,JavaScript 和 Go 对错误流有截然不同的方法:

 // JavaScript  
 尝试 {  
 doSomethingDangerous()  
 } 捕捉(错误){  
 控制台日志(错误)  
 } // 去  
 错误 := doSomethingDangerous()  
 如果错误!= nil {  
 fmt.Println(错误)  
 }

通过熟悉多种语言,我坚信您将对每种技术以及何时可能需要使用不同的工具有更深入的了解。

我会成为万事通,一无所有吗?

就个人而言,我不这么认为。我确实认为,如果您从学习之旅开始直到您的第一份编码工作都只专注于一种编程语言,那么您实际上会比花一些时间拓宽视野更糟糕。

有些人认为“学习编程”就是“学习编程语言”。他们认为,如果你学习 Python,然后想学习 JavaScript,那么你将从 0 开始。 这与事实相去甚远。

学习第二种编程语言将花费学习第一种编程语言所需时间的 1/5,因为您学到的大约 80% 的概念将适用于两种语言。一旦您使用了 3 或 4 种不同的编码语言,您就可以查看几乎任何语言的代码并理解它的含义。您可能会发现自己偶尔需要查找语法, 但无论如何每个人都会这样做 .

那么,您至少可以减少通用语言的数量吗?

如果您浏览过 课程 ,您可能已经注意到,我们选择了 3 种语言来教授大部分内容:

  • JavaScript
  • Python

我们将尝试使用这 3 种语言 尽我们所能 ,仅根据标的物的要求混入其他技术。例如,当我们谈论关系数据库时使用 SQL。

让我解释一下为什么我们特别选择这三个。

为什么选择 JavaScript?

这些天你真的无法摆脱 JavaScript。如果不先了解,就很难了解后端编程(这是我们大多数学生都感兴趣的) 为什么 存在后端。后端只存在于为前端提供动力,因此我们需要先教您一些前端基础知识是有道理的。如果你要在 Web 上构建一个前端,它几乎肯定会使用 JavaScript,所以我们不得不使用这个。

为什么是 Python?

从句法上讲,Python 不会妨碍您。算法和数据结构是学生经常发现更难掌握的概念,因此选择一种让学生尽可能专注于逻辑的语言对我们来说是有意义的。 Python 在很多方面也读起来像英语,这再次使得一目了然地了解 Python 中的算法在做什么变得更容易。此外,我们在课程结束时有 AI 和 ML 内容,所以这是一个两只鸟在石头上的情况,我们可以在那个时候重新学习 Python,而我们的学生不需要学习额外的语言。

为什么去?

我们的后端程序强调后端编程,我个人在使用 Go 作为后端语言方面取得了巨大的成功。与我考虑过的其他一些选择相比,Go 将使教授并发、编译器和分布式系统等内容变得更容易。我确实认为我们最终可能会有一门在手动内存管理方面达到更低水平的 Rust 课程,但我还没有决定。

问题?注释?担忧?

直接联系我的最佳方式是加入 Boot.dev 不和谐服务器 .你也可以@我 推特 .让我知道您对我们的方法的看法!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/2036/26083103

标签:语言,编程语言,强迫,Python,JavaScript,学习,我们
From: https://www.cnblogs.com/amboke/p/16641578.html

相关文章

  • 机器学习和 Python 中的决策树算法
    机器学习和Python中的决策树算法→决策树是一种树形算法,用于确定行动过程,树的每个分支代表一个可能的决策、发生或反应。让我们看一下术语:-熵——熵是数据集中“随......
  • 【学习笔记】CSS 动画keyframes
    【学习笔记】CSS动画keyframes必要项目@keyframes动画名称对应animation-name:动画名称动画持续时间,指动画开始到结束时间,预设为0,若没有设定,动画不会执行。下......
  • Day 01. 如何使用Typora学习Markdown语法。(结尾有Typora下载路径)
    Markdown语法学习 标题(1个#一级标题2个##二级标题,以此类推)二级标题三级标题四级标题注:最多六级标题 字体粗体(两边各两个*)Holle,Word斜体(两边各一个*)Hol......
  • Spring学习笔记(六)——AOP
    1.AOP简介1.1AOPSpring框架的一个关键组件是面向切面的编程(AOP)框架。面向切面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功......
  • (三)redis命令学习,List
    packageredis.clients.jedis.commands;importjava.util.List;importredis.clients.jedis.args.ListDirection;importredis.clients.jedis.args.ListPosition;im......
  • 2022-08-30 第四小组 王星苹 学习笔记
    学习心得在浏览器禁用cookie的情况下,仍可以用于会话管理机制的是HTTPSession。重定向时,浏览器中的地址栏url会发生变化,重定向调用的是HttpServletResponse对象中的方法......
  • 文献学习-Proofs for Satisfiability Problems
    ProofsforSatisfiabilityProblemsMarijnJ.H.HeuleandArminBiere1TheUniversityofTexasatAustin,UnitedStates2JohannesKeplerUniversity,Linz,Aus......
  • (二)Redis命令学习之 StringCommands
    packageredis.clients.jedis.commands;importjava.util.List;importredis.clients.jedis.args.BitCountOption;importredis.clients.jedis.args.BitOP;importr......
  • 【django学习-03】URLS(路由系统)
    一:URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对......
  • 2022-08-29 第二小组 张鑫 学习笔记
    实训五十一天JavaWEB学习内容事件修饰符用来和事件连用的,决定事件触发条件或者阻止事件的触发机制事件的冒泡点击div里的按钮,div被点击的事件也会被触发.stop修饰......