编程语言开发思路(为什么我们强迫你学习多种编程语言)
编程语言开发思路(为什么我们强迫你学习多种编程语言)
2024-11-24 06:32:11  作者:恋涙阿禹  网址:https://m.xinb2b.cn/life/efj366655.html

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


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

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

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

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

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

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

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

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

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

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

那你要教我多少种语言?

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

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

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

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

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

// JavaScripttry { doSomethingDangerous()} catch (err){ console.log(err)}// Goerr := doSomethingDangerous()if err != nil { fmt.Println(err)}

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

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

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

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

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

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

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

JavaScriptPythonGo

我们将尽可能多地使用这 3 种语言,仅根据主题要求混合其他技术。例如,当我们谈论关系数据库时使用 SQL。

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

为什么选择 JavaScript?

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

为什么是 Python?

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

为什么 Go?

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

关注七爪网,获取更多APP/小程序/网站源码资源!

  • 虾仁什锦炒饭如何做(虾仁什锦炒饭怎么做)
  • 2024-11-24虾仁什锦炒饭怎么做鲜米倒入电饭煲中,淘洗干净,然后加水煮饭!准备好材料!胡萝卜切丁虾仁剥壳去虾线,可以切一下盛出米饭不粘锅里倒入油开大火将油烧热打入打散的鸡蛋蛋液绝味凝固就用锅铲炒散然后关火装盘备用锅里再倒入一点点油,。
  • 一开始是怎么患上痔疮的(痔疮形成的这几大原因你中了吗)
  • 2024-11-24痔疮形成的这几大原因你中了吗都说有志者,事竟成那有“痔”者呢?恐怕只有一部血泪史了那种拉不出来,拉的时候肛门疼痛,拉完一擦发现有血以为自己得了“不治之症”的痛苦感受,相信很多得了痔疮的朋友们都体会过而痔疮在我国的发病率不低,据中。
  • 又好看性能又好拍照也好的手机(秋天拍照就买这四款手机)
  • 2024-11-24秋天拍照就买这四款手机又到了一年当中最具诗情画意的一个季节秋季,在秋天你可以欣赏到只有在画卷里才能见到的景色,同时这也是一年当中最适合出行的季节,不冷不热的温度刚刚好针对于此小编挑选了四款在拍照方面十分给力的手机推荐给大家。
  • 微课制作教程入门软件(微课制作软件哪个最好用)
  • 2024-11-24微课制作软件哪个最好用经常会有朋友制作一些微课视频用来传递科普内容但是从策划到设计,在制作微课视频过程中是非常的麻烦我们都知道,在制作微课视频动画时,好的动画才能在众多视频中视频中脱颖而出,但是在制作的过程中肯定不那么容易。
  • 可以做公司公章的软件(一个非常实用的加盖电子公章的工具)
  • 2024-11-24一个非常实用的加盖电子公章的工具大家好,我是野生程序员一灯今天分享一个python开发的小GUI项目:电子签章器客户的需求是这样的:客户是一个不小的中药生产和批发企业,每天都需要为它的客户提供大量的药品质量检测纸质文件,并且需要在纸。
  • 省份简称与历史相关的省份(我国各省份简称的历史由来)
  • 2024-11-24我国各省份简称的历史由来一、四个直辖市⒈北京(京)战国时期称蓟,是战国七雄之一燕国的京城辽国称燕京金国改称京都元朝称大都明朝朱元璋改称北平,永乐帝朱棣改北平为“北京”1949年设为直辖市取全称中的“京”字作为简称2、天津(津。
  • 做生日蛋糕教程漂亮的(用布缝了一个有意义的生日蛋糕)
  • 2024-11-24用布缝了一个有意义的生日蛋糕哈喽,大家好!我是阿梅,一个很宠粉的……人也一个粉丝和阿梅很要好,下个月就是她的生日了,阿梅答应她要亲手做一个有意义的礼物给她于是,我想做一个好看但不好吃的蛋糕给她,更严谨的说,应该是压根儿不能吃就像。
  • 濮阳人均收入多少才能生活(濮阳管辖的小县)
  • 2024-11-24濮阳管辖的小县台前县,隶属河南省濮阳市,位于河南省东北隅,黄河下游北岸,豫东北平原与鲁西平原交界地带东、南分别与山东省东平、梁山、郓城县隔黄河相望;西与范县毗邻;北依金堤与山东省阳谷县接壤地处北纬35°50′~36。
  • 叶舟的小故事(我想在敦煌本纪里重现少年气象)
  • 2024-11-24我想在敦煌本纪里重现少年气象多年来,叶舟陆续出版了《大敦煌》《敦煌诗经》等一系列作品,这些不同体裁的写作,年复一年的功课,使他逐步地廓清了眼前的风沙,并趋近祁连山下的连绵绿洲,找见了“敦煌”这个词根,皈依于自己写作的版图中从写下。
  • 苏宁购买碎屏险(苏宁易购易付宝碎屏险体验)
  • 2024-11-24苏宁易购易付宝碎屏险体验真是渣渣啊!!!某日在刷张大妈的时候看到这个推送,免费得:苏宁易购易付宝手机客户端实名认证免费领取碎屏保作为值友,这种福利怎么能不撸呢没想到,领取也没多久,上周五手一滑,手机摔倒了地上,拿起来一看,好。
  • 弟子规什么意思(弟子规介绍)
  • 2024-11-24弟子规介绍《弟子规》是清代教育家李毓秀所作的三言韵文它是依据孔子教诲编成的学童生活规范,其内容采用《论语》“学而篇”第六条:“弟子入则孝,出则悌,谨而信,泛爱众而亲仁行有余力,则以学文”的文义,以三字一句、两句。