技术说明:两位全职讲师的播客如何帮助您最终获得编程
披露: Fullstack学院 ,编码集训,此前曾赞助黑客中午。
我是Corey Greenwald,我和我的犯罪伙伴Geoff Bass是纽约市Fullstack Academy的讲师。 在我们多年的教师和开发商,我们已经认识到,知道如何计划是不是所有有对编程的想法 。 要查看整体情况,您需要了解技术的历史以及事物以其工作方式运作的原因 。 因此,我们开始了一个名为Tech'd Out的播客,以帮助您了解编程的对象,内容,时间,地点和原因,以及您对编程方法的了解。
在Tech'd Out的第一集中,我们决定进行解释-准备好了吗? - 互联网! 我们都知道互联网是猫咪的模因,所以这并不令人惊讶-但是它是如何达到让我们所有人都可以在Google的搜索栏中键入“ ca-”并结出所有脾气暴躁,生涩,粗鲁,我们想要的皮毛,喜欢吃cheezburger的猫? 确切了解如何在我们下面的第一集击穿,然后订阅播客上,如数据,造型,框架,和更多的其他高科技概念的内幕消息。
互联网简而言之
好的,让我们从基础开始。 我们都知道,我们可以转到“网络浏览器”,在顶部的栏中键入“地址”,然后突然发现自己正在寻找的网页。 整个过程看似神奇且复杂,但是我们在这里告诉您其背后的过程实际上非常简单。
当您在浏览器顶部的栏中键入内容时,即是在请求信息-某种类型的内容或特定页面。 您输入的地址通过域名服务器(您可能听说过它称为DNS),该服务器接受您输入的地址(或“名称”)并将其转换为IP地址。 该IP地址是一个数字代码,代表可以在哪里找到所需内容。 然后,您对内容的请求将转发到该内容所在的地址。
该地址处是一台服务器,该服务器接收您对内容的请求,然后将该内容传送到您的浏览器。 多田! 服务器整天坐在那里,聆听并等待像您这样的请求-就像餐馆中的服务器正在等待您下订单。 因此,与其将服务器概念设计为指示灯闪烁的机器,不如将它们视为服务员,在做出决定后立即准备接受内容订单。
现在,您和想要的内容之间还有一个更进一步的步骤:Web浏览器仍然必须获取从服务器返回的信息并将其转换为可视化内容,而不是大多数人不知道的一堆代码读书。 Web浏览器,当然,不与服务器通信,获取数据的唯一的东西,但他们可以作为一个视觉媒介作用,用于解释服务器返回的信息的唯一的东西。 可以这么说,他们为我们在屏幕上绘制了信息。
那么,什么构成了网页?
好的-事情变得有趣了:为了使浏览器能够“绘制”或视觉上传达我们所请求的信息,它需要某些东西。 就像画家不能没有某种画布和某种颜料就不能绘画一样,如果没有-请滚鼓,Web浏览器就无法直观地向我们传达信息。 — HTML。
HTML是超文本标记语言(HyperText Markup Language)的首字母缩写,它构成了任何网页上大部分内容。 您在页面上看到的任何内容(按钮,徽标,文本)都是HTML。
之后是样式,这使内容看起来很漂亮,并使屏幕不再只是带有蓝色链接的黑白文本。 样式是一种组织内容的方式,被称为CSS(层叠样式表)。
难题的最后一部分是允许您与网页进行交互的东西。 之前我们提到过,如果我们去Google并输入“ ca-”,它将预测我们将搜索与猫有关的东西,并将开始为我们提供搜索建议。 (而且,如果您不相信互联网是猫的话,那么您还没有遇到过开始破坏互联网并迷恋猫的机器学习算法 )。 网页如何能够与我们互动? 它看起来如何从逻辑上考虑您的搜索并提供有用的建议? 答案是:JavaScript。
的JavaScript
JavaScript使网页具有交互性。 但是,既然有这么多不同的语言(如Ruby,C,Python等),为什么人们会关注JavaScript? 简短的答案是:您不能在浏览器中编写Python。 到2020年,JavaScript将成为浏览器内交互性的唯一选择。
Java的演变
要了解JavaScript是如何成为标准的,您必须回到互联网的早期(在这里插入时间机器的噪音),那时它的目的远非普通视频:大学研究人员想要一种方法来a)分享他们的研究成果和b)链接相关的研究项目。 因此,Internet从静态的信息页面开始,迅速发展为动态的。
接下来的发展发生在90年代初,名为Mosaic的浏览器首次亮相,这是第一个强调图形用户界面(GUI)的网络浏览器。 您可能会从“图形”一词中猜到,GUI 将图像添加到混合中并与文本一致地显示。 很大的变化。 从那里开始出现了一家名为Netscape的公司的第一个大型商业Web浏览器。 现在著名的浏览器叫做Netscape Navigator。
但是,Netscape Navigator背后的想法并没有止步于此。 他们决定创建一种新的语言,以使开发人员可以尝试样式并允许用户与网页进行交互。 该语言的第一个候选者是Java,它于1995年左右问世。通过称为Java applet的嵌入式程序,可以实现用户交互。 开发继续进行,Netscape决定再增加一种“粘合”语言(后来称为脚本语言)来解决诸如将功能附加到内容上的事情,将是一件很不错的事情。 该计划促成了JavaScript的创建-需要指出的是,与Java本身几乎没有共同之处(除了基本的语法相似之处)。 它之所以得名,无非就是Java当时很流行。 (我们必须宣布这一商标失败。)
您可能会感到惊讶的是,该行业最初并不支持JavaScript,并且开发人员也没有在其上花费太多时间,因为它被视为仅仅是一种脚本语言。 然后事情变了。
JavaScript统治了Supreme
浏览器开始争夺主导地位。 微软对自己的JavaScript版本进行了反向工程,他们称之为-等待-JScript 。 (第二品牌失败。)它与JavaScript非常相似(您感到惊讶吗!!),但并不完全相同。
随着越来越多的浏览器开始利用脚本语言提供的功能,设计了ECMAScript。 可以将它视为JavaScript的形式化-一种理想形式的语言,它对JavaScript最佳实践采用了详尽的方法。 看到了,开发人员现在同意在浏览器之间需要一个标准 (浏览器行业迅猛发展,并且它们之间差异很大),这就是此新ECMAScript的目标。 没有这样的标准,任何给定网页的代码只能在一个或两个浏览器上运行,从而使其他浏览器上的用户无法访问这些网页。 因此,当您听到“ ES5”或“ ES 2015”一词时,它们是指E CMA S脚本。 既然已经有了基于JavaScript的标准,那么JavaScript成为最能符合这些标准的语言,或者它已经成为Internet统治者就不足为奇了。
在2000年左右,引入了Web 2.0。 它本身并不是Internet的新版本,但是因为JavaScript现在允许与页面交互,所以开发人员现在可以在任何给定页面的幕后实现功能,这意味着网页变得更加动态 。 Web 2.0带有动态页面,这使得使用JavaScript变得更加清晰,不再需要Java applet或Flash。 那是其他语言开始逐渐消失的时候,JavaScript确实有机会成为网络语言。
但这并非一帆风顺。 浏览器仍在以不同的方式实现JavaScript。 尽管有ECMAScript,在JavaScript级别以及Java与HTML和CSS交互的方式上仍然存在不一致之处。 对于开发人员来说,要在不同的浏览器上实现相同的性能仍是一项艰苦的工作,这一过程通常需要每个网页针对每种类型的浏览器使用不同的代码集。
到了这个时候,Microsoft Explorer已经摧毁了Netscape Navigator,从其灰烬中腾出了Mozilla Firefox-从而掀起了另一场浏览器大战,三大巨头是Explorer,Firefox和Opera。 在这一点上, 网站也已成为Web 应用程序 。 网站不再是过去的静态页面,而是拥有自己的应用程序。
jQuery公平竞争
jQuery是一个庞大的库,最终使开发人员能够标准化与Web浏览器进行通信的过程。 前提很简单:采用jQuery,它将采用您的单一代码集并将其转换为可以在其上查看网站的所有不同浏览器。 Web开发人员不再需要为每个浏览器编写不同版本的脚本。 由于ECMAScript是JavaScript的标准,因此jQuery成为JavaScript如何与不同浏览器环境交互的标准。
jQuery的次要作用是它为Internet Explorer的竞争提供了更好的机会。 在使用jQuery之前,负担不起只用一个浏览器进行开发的较小的开发团队通常会选择资源管理器,使其功能越来越强大。 但是jQuery可以公平地进行竞争-如果开发人员遵循jQuery标准,他们仍然只需要编写一次Web应用程序,但是它可以在所有浏览器上运行,然后用户可以选择自己最喜欢的浏览器,而不必局限于浏览器大多数应用程序都可以使用,无论它对用户的友好程度如何。
JavaScript成为网络语言
到现在为止,JavaScript已真正成为Web的语言,或者至少成为Web的前端,即用户与之交互的部分。 但是在有前端的地方,也有后端,这是实际检索您请求的内容的部分。 后端与前端不同,可以用几乎所有东西(从Django到Spring)编写。 那么这对JavaScript意味着什么呢?
谷歌浏览器进入竞争
2008年,浏览器游戏中最大的参与者之一参加了比赛:Google Chrome。 使Google Chrome浏览器比以前的浏览器好几个数量级的是它的性能,这是通过他们开发的JavaScript引擎实现的。
无论计算机是整个台式机还是智能手机,在计算机上完成的所有操作都必须在二进制级别进行。
但是,您如何将世界转换为二进制,以便计算机可以理解? 首先,您可以通过进行编译来实现 。 编译采用类似英语的代码,并将其转换为计算机可以理解的机器信号。 如果无法将某些内容转换为机器信号,则无法对其进行编译。 这就是编译语言的工作方式。
所以,谷歌Chrome的V8发动机能够采取的JavaScript代码,并将其编译成实时的机器语言。 它非常高效且非常快,它也使JavaScript变得更快。 直到现在,开发人员和用户都抱怨JavaScript的速度很慢-但是随着Google V8引擎的出现,这一切都发生了变化。
JavaScript进入全栈
然后在2009年,JavaScript发生了更大的变化。 一位孤独的开发人员采用了Google的V8引擎,并将其安装在他的计算机上 。 他附加了一些其他内容,使人们有可能直接在计算机上而不是在浏览器中直接编写JavaScript,就像JavaScript一直以来一样。 是的,现在它可以直接在计算机上运行,而不再局限于浏览器环境。
现在已取消包装并且可以直接在计算机上运行的JavaScript现在可以访问该计算机的所有资源,文件,其文件管理系统,应用程序等。现在,开发人员可以构建可以在其计算机上运行的应用程序-这意味着他们还可以构建将在其服务器上运行的应用程序。
随着Node.js的发布,过去曾经是纯前端语言,现在可以在服务器端运行并侦听用户请求,将JavaScript转换为全栈语言,从而支持前端和后端开发。
那你觉得呢?!
骑什么,对吧? 谁知道浏览器大战,或者JavaScript曾经是第二语言? 谁知道互联网是由互联网创建的,所以学者们不必费心去研究任何论文? 谁知道猫的模因不是最终目的? 如果您离开今天的历史课比开始时感到更聪明,那么请定期加入我们的行列,看看您可以从播客中学到什么。 在iTunes和Anchor上都可以使用Tech'd Out。