那么,您学习了JavaScript-现在呢?

昨天, 女性技术制造 柏林分会 要求我在 JavaScript 速成 课程的毕业典礼上发表演讲。 我想谈一谈您现在可以采取的下一步措施,现在您已经了解了2017年JavaScript的基础知识,而不是重复旧的想法。 这就是我想出的。

首先,恭喜您-您明智地选择了。 JavaScript已经从一种“玩具语言”演变成“真正的程序员”,嘲笑成一种为网络及其他领域提供支持的语言。

不论好坏。 JavaScript并不是一种完美的语言-如果甚至存在这样的语言。 但是它有一些说明。

JavaScript无处不在

首先,它现在无处不在,您可以用它创建很多令人惊奇的东西。

  • 您可以在浏览器环境中使用它来制作高度交互的Web“事物”。 这些网站可能是响应更好的网站,并且在Javacript工作时更具吸引力。 它们也可能是用户安装的应用程序,甚至不需要知道您使用过HTML。 CSS和JavaScript来构建它们。 它们甚至可能是复杂的游戏和VR体验。
  • 您也可以在服务器端使用Node。 然后,您可以使用JavaScript来构建API,服务,甚至是成熟的服务器。 您可以创建构建过程并自动执行过去需要服务器运行的许多无聊的任务。
  • 您可以使用抽象框架在Web上发布并为iOS,Android和其他操作系统创建二进制格式。 通过开始使用JavaScript,您可以转换成许多其他东西,而在其他方面这是不可能的。
  • 或者,您可以完全疯狂并构建可以使用JavaScript获取其指令的机器人。 您可以使操作系统自动化。 您可以为浏览器编写扩展名,也可以为其他应用程序编写脚本。
  • 您可以发布并利用NPM,NPM是大量预构建解决方案资源,您可以将其混合使用以构建自己的(更复杂的)解决方案。 这很诱人,但是也有使用过多和使用您不了解的东西的危险。 因此,尽管我们处于使用JavaScript的程序包世界中,但记住什么是JavaScript并从那里开始很有意义。

掌握JavaScript并不容易,但是入门要比使用其他语言简单。 您不必依赖特定的编辑器,也不需要编译它就可以创建可以运行的东西。 最重要的是-您不需要花任何钱就可以开始。 浏览器是免费的。 许多编辑器是免费的,甚至许多都是开源的。 最重要的是,文档在线提供给您。

你知道最好的吗? 我羡慕你!

自从JavaScript出现以来,我或多或少就在使用它,而且我也经常带很多镇流器。

在讲笑话的地方,您可以在Douglas Crockford的“ JavaScript –优秀部分”旁边看到“ JavaScript权威指南”这本书。 后者要小得多。

这并不意味着JavaScript不好。 这意味着JavaScript的多功能性可能会导致其自身的失败。

JavaScript随处可见。 多年来,糟糕的环境留下了糟糕的API和方法的记录。 JavaScript的标准化过程过山车。 权威指南对此进行了解释。 它是所有发生的事情的摘要-很好,“亲爱的,您为什么还要考虑使用JavaScript进行此操作?”。 Good Parts书坚持语法以及如何编写纯JavaScript。

可以将《指南》视为一个带过去所有罪孽的乐队的完整唱片集。 而“ The Good Parts”是他们的热门单曲。

从更干净的石板开始

这就是您进入的地方。我什至不希望您考虑语言本身的优点。 那可能会在以后出现-如果深入研究一种语言的语法并构造出让您喜欢的东西。 目前,我很羡慕您,因为您有机会踏上第一步。 我希望您,作为一个新手,不要重复我们为达到自己的状态而犯的错误。

因此,接下来我想向您介绍几件事,您可以作为JavaScript开发人员来进行下一步。 这些事情可以帮助您提高工作效率,也可以帮助您参与并帮助社区

非常欢迎您忽略此建议。 也欢迎您挑战它-毕竟,这就是新声音的含义。

当然,随着JavaScript的发展,我现在告诉您的某些事情将变得过时。 但是我对这些事情感到很兴奋,并且我确信在职业生涯开始时就拥有了这些东西,我会比现在远得多。

您在哪里可以了解JavaScript?

毫不奇怪,这是一个棘手的问题。 JavaScript是一个热门话题,许多人在不了解JavaScript的情况下写了一些工作。 这意味着有很多可怕的垃圾邮件资源告诉您使用JavaScript进行操作的“简单”方法。 帮自己一个忙,不要因为那声警笛声而倒下。 也要警惕网络上“这里是快速解决方案”的答案。 通常,这些都是有偏见的解决方案,不断重复以获得快速结果。

如果某事听起来好得令人难以置信,那通常就是事实。

这是我选择MDN Web Docs的地方。 这是一种无偏见,开放,维护良好的资源。 这不是Mozilla唯一的事情,但是许多其他播放器添加了内容并帮助使其保持最新。 它甚至是可写的-当您发现有问题时可以进行编辑。

Web Docs的伟大之处在于,它不是“公正的”文档。 它还具有代码示例和详细的浏览器支持表,可用于其所讨论的所有内容。

试图记录开放网络的许多资源来了又去了。 以MDN为准。

谈到浏览器支持,我可以使用是一个维护良好的资源。 它不仅显示详细的浏览器支持。 它还链接到标准文档,告诉您应该怎么做。 它显示了各种版本中的怪癖和问题以及可能的解决方法。

浏览器不是问题

谈到浏览器,这是一个美好的时光。 我们在那儿经历了一次棘手的旅程。 过去,浏览器是一个黑洞,我们不知道是什么魔术使它们起作用。

在浏览器致力于遵循标准之前,我们必须了解他们的想法,事情应该如何工作。 本质上,我们的职业是依赖于了解浏览器如何混乱。 这很容易做到,但从长远来看并没有实现。

如今,浏览器在定义和启发标准方面扮演着更加重要的角色。 浏览器本身努力做到常绿。 非标准化的功能被抛在后面,或者以“开发人员版本”或每晚生成。

最好的事情是,浏览器制造商可以提供反馈并邀请您提交错误。 这是一个巨大的变化,我们作为开发人员应该珍惜。

“这是事实,我们无能为力”少得多,而“嗯,那行不通,我们能解决这个问题”多得多。

浏览器制造商也了解开发人员很重要。 此外,Web开发人员就像是编写Java或C ++的人一样是工程师。 工程不仅需要“向我们扔代码,而且我们必须使代码起作用”。 我们需要深入了解我们的代码如何执行以及产生什么影响。 这就是为什么所有浏览器制造商都花费大量时间来构建开发人员工具的原因。 这些使我们获得了编写高性能和安全JavaScript所需的见解。

学习浏览器开发人员工具

作为JavaScript开发人员,尽可能多地习惯浏览器devtool是一个好主意。 每个浏览器都提供它们,它们在某些方面有所不同,但是它们都为您提供了很多见识。 您可以通过检查浏览器在控制台中提供的对象来了解可用的内容。 您将了解呈现页面时出现的情况以及瓶颈所在。 您可以检查,编辑和测试代码的视觉输出,并查看CSS浏览器从中生成的代码。

从console.log()移至断点调试

对我帮助很大的一件事是,从console.log()思维方式转向使用断点。 不必要求您想知道的每件事,您就会获得更多。 断点调试具有JavaScript引擎停止的好处。 然后,您可以获取浏览器中发生的情况的快照。 您不仅可以获得变量的值,而且还可以看到此更改产生的影响。 您可以直接进行调试而无需更改代码。 一个断点通常值得数十个日志记录请求。 断点不会停留在网络上,而是可以在您的计算机上工作。 每天,攻击者都会以表格或流氓console.log语句的形式发布许多有趣的信息。

现在可以调试我们的JavaScript非常棒,但是如果我们首先没有犯错误,岂不是更好吗?

我们是人类,我们疲倦,无聊,马虎。 这就是为什么当我们提醒我们在做某事时做错事的时候很好。 在Word处理中,这是拼写和语法检查,如果我们出错了,该行会添加模糊的红线。

整理—通过不编写错误代码来防止错误

在开发中,这是轻浮的。 Linters是在编写代码时分析代码的软件。 它在后台执行部分代码,并在出现问题时告诉您。 过去,您需要自己安装和配置linter。 如今,许多扩展都是带有预配置规则的编辑器的扩展。 多年专家争辩并达成共识后制定的规则才有意义。 Chrome中的Google开发人员工具可为您提供类似的见解。 仔细阅读短毛猫的成绩是一个很好的学习练习。 他们不仅告诉您出了什么问题,还告诉您原因,影响以及修复方法。

寻找使您更有效的编辑器

在这里,优秀的编辑人员可以挽救生命。 如前所述,您可以使用任何想要编写JavaScript的东西。 对我来说,我很惊讶使用Visual Studio Code完成了多少工作。 该编辑器是开源的,并带有数百个扩展来帮助您完成任务。 它具有内置的linting,并允许在编辑器本身中设置断点。 它包含一个命令行界面,可以执行更多艰巨的任务,并且内置了Git版本控制。不必从编辑器跳到浏览器再到终端就可以了。 当然,迟早您必须精通这三者,但为什么不从快捷方式开始呢?

猜猜这个编辑器是用什么写的吗? 是的,JavaScript。

使用JavaScript时,您会发现神圣的战争和关于哪种编辑器是最佳配置的想法。 由于有数百种变体中的许多选择,因此欢迎您来关注一下。 我每隔几年就会从一种环境迁移到另一种环境,而现在,Visual Studio Code使我感到高兴。 许多其他人也同意。 通过提供与现成的构建过程的集成,它为您提供了一个快速入门。 与具有类似功能集的其他IDE相比,它跨平台且轻巧。 您可以对其进行破解,并使用JavaScript对其进行扩展。

发布和构建过程

也就是说,编辑不是唯一可以提供帮助的地方。 它也可以是发布过程的一部分。 例如,Sonar是一个需要URL的工具,它可以告诉您所有需要改进的地方。 这涉及性能,兼容性,安全性等等。 像Sonar这样的服务可以在您的发布过程中充当网守。

您发现的错误比用户报告的错误要好。 或者,甚至更糟的是,这会阻止人们在没有听说他们的问题的情况下使用您的作品。

发行过程是当今我们遵循JavaScript的重要组成部分。 因此,让它习惯于您的习惯是个好主意。

一个常见的建议是开始您自己的项目并遵循最佳实践,因为您不能以这种方式破坏他人。 但是我不确定这有多有用,并且发现它相当干燥和令人沮丧。

创建第一个项目是否应该包括配置自己的服务器?

毫无疑问,通过启动自己的项目并以专业的方式运行它们,您学到了很多东西。 但是,您不必以这种方式开始。 我认为从小做起更有意义。 JSBin,CodePen,Glitch和其他托管社区在那里供您玩耍和学习。 它们使您可以使用预处理器,框架和包管理器来构建内容。

您不必一遍又一遍地设置它们并配置自己的计算机。 您可以看到它们是否对您有用,而无需学习和取消学习某些东西。

作为团队的一部分,在工作中,作为初级开发人员,您不太可能设置环境。 因此,请保留在必要的时间。

学习资料免费且丰富。 但是什么是垃圾邮件又是什么?

谈论学习,我们生活在美好的时代。 几乎每周都有关于JavaScript的会议。 有免费参加聚会的机会。 有Slack社区,邮件列表和免费的在线资源。 有关该主题的许多书籍都可以在线免费阅读。 几乎所有您花了很多钱才能观看直播的内容最终都可以在YouTube上几个小时内收看。 坦白说,我们内容太多,因此必须对其进行分类。 因此,与其去关注所有事情,不如找一个值得信赖的,能很好地收集和评论的人。 然后花时间按照自己的节奏来消化那里的东西。 我在手机上观看体育馆里的谈话-平均JavaScript谈话在跨训练机上燃烧了500卡路里。

参与项目并与他人打交道

与其从拥有产品开始,不如参与现有产品。

这就是最近JavaScript的含义。 我们不是在处理语言,而是在与开发人员社区打交道。

许多开源项目都有人来帮助您参与其中。 您可以通过帮助改善文档入门。 您可以解决一些简单的问题,因为养护者需要炸更大的鱼,所以他们忙于处理。

您可以通过潜伏并观察人们的工作方式以及彼此之间的合作方式来学到很多东西。 您还将了解要避免什么以及不成为什么样的开发人员。

而且它可能会变得凌乱,我不会在那附近的灌木丛中跳动。 JavaScript的成功以及围绕软件工程的普遍宣传都具有丑陋的一面。 人们进入不健康的竞争,并将过度劳累视为荣誉的象征。

许多社区工具认为“经常快速”是对“好的和充分解释的”贡献的一种方式,这无济于事。 您将遇到可怕的沟通和开放的敌意以进行更改和讨论。

这是我对您的请求。 不要成为那个人。 不要让那些自以为是的人告诉别人他们在合作中是错误的。 保持镇定,友善,不要让笼统的言论和公开的想法被阻止。

有很多选择。 当您想要做的是成为创作者的标记时,就无需用更多的戏剧来充实自己的生活。

我们这里拥有美丽的技术栈,如果我学到了什么,那么变化是唯一不变的。 时至今日,我希望您能成为我们需要的变革的一部分。

您的幸福比争夺语法,过程或使用什么框架更为重要。 快乐的开发人员可以开发更好的产品。 我们变得越多样化,就越能反映使用我们产品的人。

借此,我期待着您接下来的工作。 谢谢您的旅途。 它对我有好处,希望它也对您有用。