std::stack_学习MEAN Stack的真正原因:可就业性

std::stack

by freeCodeCamp

通过freeCodeCamp

学习MEAN Stack的真正原因:可就业性 (The real reason to learn the MEAN Stack: Employability)

More coding bootcamps (like Hack Reactor) and online course platforms (like Khan Academy) are switching to JavaScript as their language of instruction.

更多的编程训练营(如Hack Reactor)和在线课程平台(如Khan Academy)正在将JavaScript用作其教学语言。

JavaScript makes sense as a first language because you’ll need to learn it anyway. You can’t do much on the web without it, so people are increasingly going straight to JavaScript and skipping Ruby, Python and PHP. JavaScript also boasts the most active developer community. But there’s a third reason you should learn JavaScript right out of the gate: employability.

JavaScript作为第一语言很有意义,因为无论如何您都需要学习它。 没有它,您将无法在网络上做很多事情,因此人们越来越多地直接使用JavaScript,而跳过Ruby,Python和PHP。 JavaScript还拥有最活跃的开发人员社区。 但是,您应该立即学习JavaScript的第三个原因是:就业能力。

Employers aren’t just starved for JavaScript talent — they’re starved for engineers familiar specific JavaScript-based technologies. And those technologies happen to be the ones that compose the MEAN Stack — MongoDB, Express.js, Angular.js and Node.js.

雇主不仅渴望JavaScript人才,而且渴望熟悉基于JavaScript的特定技术的工程师。 这些技术恰好是构成MEAN堆栈的技术-MongoDB,Express.js,Angular.js和Node.js。

Before we get started, note that these data come from Indeed.com, the largest aggregator of job postings. We’re using the volume of job postings as a proxy for the volume of jobs. We only focused on non-proprietary solutions like Oracle, Microsoft and IBM.

在开始之前,请注意,这些数据来自Indeed.com,这是最大的职位发布汇总商。 我们将职位发布量用作职位数量的代理。 我们只专注于非专有解决方案,例如Oracle,Microsoft和IBM。

模型-视图-控制器Web开发框架的比较 (Comparison of Model-View-Controller Web Development Frameworks)

  • Node.js and Express.js — the web server and bare-bones web development framework that power the MEAN stack. Node.js was released less than 5 years ago, but it’s already been adopted by LinkedIn, Walmart, SAP and Microsoft.

    Node.js和Express.js —支持MEAN堆栈的Web服务器和准Web开发框架。 Node.js发行不到5年前,但已被LinkedIn,沃尔玛,SAP和Microsoft所采用。
  • Rails — the popular Ruby-based web development framework designed to help developers quickly build conventional server-heavy apps. A vast majority of coding bootcamps still focus on Rails. Fun fact: Rails was invented by a Danish race car driver.

    Rails —流行的基于Ruby的Web开发框架,旨在帮助开发人员快速构建传统的服务器密集型应用程序。 绝大多数的代码训练营仍然集中在Rails上。 有趣的事实:Rails是由丹麦赛车手发明的

  • Django — Python’s most popular web development framework. Another fun fact: Django was invented at a newspaper in Kansas.

    Django-Python最受欢迎的Web开发框架。 另一个有趣的事实:Django是在堪萨斯州的一家报纸上发明的

  • Laravel — Currently the most popular PHP web development framework, though the PHP community hasn’t really gotten behind one framework as universally as the Ruby and Python communities have.

    Laravel —当前最受欢迎PHP Web开发框架,尽管PHP社区并没有像Ruby和Python社区那样普遍落后于一个框架。

As you can see, Node.js is the clear winner in terms of job growth. And in absolute terms, Node.js is quickly catching up with Ruby on Rails:

如您所见,就工作增长而言,Node.js无疑是赢家。 绝对而言,Node.js很快赶上了Ruby on Rails:

NoSQL数据库比较 (Comparison of NoSQL Databases)

The next stack component we’ll look at is the database. First, let’s compare the most popular NoSQL (non-relational) databases.

我们要看的下一个堆栈组件是数据库。 首先,让我们比较最流行的NoSQL(非关系)数据库。

  • MongoDB — The Document Store Database that the MEAN stack uses. Mongo is also popular with Rails apps, and is the default database for the Meteor.js project.

    MongoDB — MEAN堆栈使用的文档存储数据库。 Mongo在Rails应用程序中也很流行,并且是Meteor.js项目的默认数据库。
  • Cassandra — A Wide Column Database created at Facebook and later open sourced to Apache.

    Cassandra —在Facebook创建的宽列数据库,后来开源到Apache。
  • Neo4j — The most popular Graph Database.

    Neo4j-最受欢迎的图形数据库。
  • Couchbase — Another Document Store Database, built to emphasize speed.

    Couchbase —另一个强调速度的文档存储数据库。

Employer demand for MongoDB is the growing the fastest among NoSQL databases. In absolute terms, MongoDB is also winning:

雇主对MongoDB的需求是NoSQL数据库中增长最快的。 从绝对意义上讲,MongoDB还赢得了:

But you’re probably wondering how this compares to SQL databases. Let’s take a look:

但是您可能想知道这与SQL数据库相比如何。 让我们来看看:

MongoDB is growing many times faster than the most popular SQL databases. But if we look at the the job market in absolute terms, it still has a long way to go:

MongoDB的增长速度是最流行SQL数据库的许多倍。 但是,如果从绝对的角度看待就业市场,那还有很长的路要走:

It’s clear that NoSQL databases still represent a relatively small slice of the total market for database talent. A common interpretation of the name NoSQL is “Not Only SQL”, meaning that NoSQL databases should be used as a compliment to, rather than a substitute for, traditional SQL databases. This is one major reason why we introduce relational databases and SQL before we introduce MongoDB.

显然,NoSQL数据库仍然只占数据库人才总市场的一小部分。 NoSQL名称的常见解释是“不仅仅是SQL”,这意味着NoSQL数据库应作为对传统SQL数据库的补充而不是替代。 这是我们在引入MongoDB之前先引入关系数据库和SQL的主要原因之一。

前端JavaScript框架 (Front End JavaScript Frameworks)

Several Model-View-Controller JavaScript frameworks have emerged in the last three years. These allow developers to manipulate DOM elements on the client-side. These allows for single-page apps, where the browser never has to navigate to a new page.

在过去的三年中,出现了几个Model-View-Controller JavaScript框架。 这些允许开发人员在客户端上操纵DOM元素。 这些允许使用单页应用程序,其中浏览器无需导航到新页面。

  • Angular.js — The ‘A’ in MEAN Stack. Google (and by extension YouTube) have poured a ton of money and engineering talent into improving Angular.js.

    Angular.js — MEAN堆栈中的“ A”。 Google(以及YouTube的扩展)已经投入了大量资金和工程技术人才来改善Angular.js。
  • React.js — Developed by Facebook, with an emphasis on performance.

    React.js —由Facebook开发,着重于性能。
  • EmberJS — Provides an MVC structure backend, while using conventional tools like Handlebars.js and jQuery on the front end.

    EmberJS —提供MVC结构后端,同时在前端使用常规工具(如Handlebars.js和jQuery)。
  • Backbone.js — The original MVC JavaScript framework, and still quite popular. It has a large community and good documentation, including a few courses on Code School.

    Backbone.js —原始的MVC JavaScript框架,并且仍然很流行。 它有一个庞大的社区和良好的文档,包括一些有关Code School的课程。

As you can see, Angular.js is growing quickly,while Ember.js and Backbone.js seem to have plateau’d. React.js is so new that it isn’t even register on the chart, but I’ve heard of some companies, like Khan Academy, are using it. And in absolute terms, Angular.js is quickly catching up with Backbone.js:

如您所见,Angular.js增长Swift,而Ember.js和Backbone.js似乎处于平稳状态。 React.js太新了,甚至没有在图表中注册,但是我听说有些公司,例如Khan Academy,正在使用它。 绝对而言,Angular.js正在Swift赶上Backbone.js:

But, of course, this chart leaves off the 800 pound gorilla in the Front End JavaScript world, jQuery:

但是,当然,此图表在前端JavaScript世界jQuery中没有掉800磅的大猩猩:

Just for kicks, let’s compare the total percentage of job postings that mention “jQuery” to the percentage of job postings that mention “JavaScript” itself:

只是踢一下,让我们比较提及“ jQuery”的职位发布的总百分比与提及“ JavaScript”本身的职位发布的百分比:

Amazingly, jQuery gets almost half as many mentions as JavaScript.There are, in my mind, 3 possible explanations for this:

令人惊讶的是,jQuery被提及的次数几乎是JavaScript的一半。在我看来,对此有3种可能的解释:

  1. jQuery is so intuitive to use that less technical web designers continue to use it instead of switching to more powerful front-end frameworks like Angular.js. These web designers have a lot of legacy applications using jQuery, and are hiring people to maintain them.

    jQuery使用起来非常直观,以至于技术含量较低的Web设计人员继续使用它,而不是切换到功能更强大的前端框架(如Angular.js)。 这些Web设计人员拥有许多使用jQuery的旧版应用程序,并正在雇用人员进行维护。
  2. Non-technical HR people creating job postings think that jQuery and JavaScript are synonymous, or that jQuery (released in 2006) is a hipper form of JavaScript (released almost 20 years ago), so they’re listing jQuery instead.

    非技术性HR人员在创建职位时认为jQuery和JavaScript是同义词,或者jQuery(于2006年发布)是一种流行JavaScript(大约20年前发布)形式,因此他们选择列出jQuery。
  3. Many employers don’t require the heavy lifting that cutting edge front end JavaScript frameworks provide. Or, more likely, they fail to understand how powerful these frameworks are and how they can produce superior experiences.

    许多雇主不需要尖端的前端JavaScript框架提供的繁重工作。 或者,更有可能的是,他们无法理解这些框架的功能以及它们如何产生卓越的体验。

Whatever the cause may be, the message is clear. In order to maximize your employability, it’s absolutely essential that you learn jQuery, even though these other frameworks can do all the things that jQuery can do and more.Much of jQuery’s success can probably be attributed to its ease of use. In many respects, learning jQuery is even easier than learning JavaScript, and a lot of the concepts you’ll apply with jQuery carry over when learning an MVC framework like Angular. So in summary:

无论原因是什么,该信息都是明确的。 为了最大化您的就业能力,即使这些其他框架可以完成jQuery可以做的所有事情以及更多工作,学习jQuery也是绝对必要的。jQuery的许多成功都可能归功于其易用性。 在许多方面,学习jQuery比学习JavaScript更加容易,并且在学习诸如Angular之类的MVC框架时,将与jQuery一起应用的许多概念会延续下去。 因此,总而言之:

  • Each of the MEAN Stack’s individual components is emerging as the winner of its respective category.

    MEAN Stack的每个单独组件都正在成为其各自类别的赢家。
  • From an employability standpoint, it makes sense to focus on the MEAN Stack as a whole. If your employer wants to use, say, Backbone.js instead of Angular.js, you’ll already be familiar with one and can easily learn the other.

    从可就业性的角度来看,将MEAN Stack视为一个整体是有意义的。 例如,如果您的雇主想使用Backbone.js而不是Angular.js,您将已经熟悉其中一种,并且可以轻松学习另一种。
  • MongoDB is the right NoSQL database to focus on, but it will pay to get familiar with relational databases and SQL itself.

    MongoDB是合适的NoSQL数据库,但是熟悉关系数据库和SQL本身将有所作为。
  • Learn jQuery. Practice jQuery a lot. Put it prominently on your LinkedIn profile and resume.

    学习jQuery。 大量练习jQuery。 将其放在您的LinkedIn个人资料上并继续显示。

Originally published at blog.freecodecamp.com on October 26, 2014.

最初于2014年10月26日发布在blog.freecodecamp.com上。

翻译自: https://www.freecodecamp.org/news/the-real-reason-to-learn-the-mean-stack-employability-29011ff6b2eb/

std::stack

这段代码实现了遍历树形数据结构,找出所有异常节点的功能。具体来说,它定义了一个 TreeNode 类来表示树形结构中的节点,每个节点包含一个值和一个子节点列表;定义了一个 calc_mean_std 函数,用于计算一个节点及其子节点的平均值和标准差;定义了一个 find_abnormal_nodes 函数,用于遍历树形数据结构,找出所有异常节点。最后,测试代码构建了一个简单的树形数据结构,并对其进行异常节点检测,并打印出所有异常节点的值。 具体来说,这段代码的实现步骤如下: 1. 定义一个 TreeNode 类,用于表示树形结构中的节点。每个节点包含一个值和一个子节点列表。 2. 定义一个 calc_mean_std 函数,用于计算一个节点及其子节点的平均值和标准差。具体来说,该函数会递归地遍历节点的所有子节点,将它们的值存储在一个列表中,并使用 NumPy 库的 meanstd 函数计算列表的均值和标准差。 3. 定义一个 find_abnormal_nodes 函数,用于遍历树形数据结构,找出所有异常节点。具体来说,该函数会使用深度优先搜索算法遍历树形结构中的所有节点,并调用 calc_mean_std 函数计算每个节点及其子节点的平均值和标准差。如果某个节点的值与平均值的偏差超过了指定的阈值(threshold*std),则将该节点标记为异常节点。 4. 测试代码构建了一个简单的树形数据结构,并对其进行异常节点检测。具体来说,它构建了一个包含多个节点的树形结构,其中一些节点的值偏离了平均值,因此被标记为异常节点,并打印了所有异常节点的值。 需要注意的是,这段代码的实现方式比较简单,仅适用于树形结构比较小的情况。对于更大的树形结构,可能需要使用更高效的算法来进行异常节点检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值