聘请优秀的 Web 开发人员:您需要知道的 10 件事
在招聘方面需要帮助吗?这很容易。在下方输入您的信息,我们将迅速联系您讨论您的招聘需求。正在加载
克里斯托弗麦卡洛的文章
“网管”的角色或“网络程序员”在过去的 20 年里取得了长足的进步。寻找合适的人选
客户端或前端软件工程师的职位很难——特别是如果你不知道客户端之间的区别,
中间层、后端、Java、JavaScript、ECMAScript、jQuery、Angular、ReactJS、MongoDB、SQL、TypeScript、CoffeeScript、LESS、SASS、CSS、HTML、
XHTML、DHTML、LOL、ROFL 和 WTF。
“我登录 LinkedIn 时满怀希望,我会发现一个悲伤的、三流的 Facebook 和一个充满招聘垃圾邮件的收件箱。
没有人想要那个。不是招聘经理,不是招聘人员,不是开发人员——就此而言,甚至连 LinkedIn 也不行!让我们修复它。
整篇文章中都引用了我在撰写本文时采访过的众多开发人员的实际引述(如上面的引述)
文章。特别感谢 Salesforce User Experience Advocates(一个由 10 名前端开发人员组成的团队)提供的宝贵建议,
本文的反馈和引用。没有他们,这是不可能的。
“[我寻找]冷静、合理、礼貌的[交流],主要是谈论他们的公司,并询问他们是否可以建立一个完全
合理的时间打电话,详细了解他们的日历等。没有技术列表。与 CRM、WordPress 或 PHP 无关
或.Net。”
带上名单!
1. 确保此人尚未在您要寻找的公司工作
不得不说这个让我很难过,但是我为这篇文章采访过的几乎每个开发人员都至少有一次被一个
招聘人员为他们已经工作过的公司招聘。这不仅是一个棘手的举动,它会扼杀你招募那个人的机会
未来的开发人员,但你也可能不小心泄露了即将发生的非自愿工作变动。
2. 不要在工作时联系我。曾经。出于任何原因。曾经。
“我不希望我的工作电子邮件收件箱被这种噪音污染。我正在尝试使用它来工作。他们应该只
使用 LinkedIn。
不要在我工作时给我发电子邮件。不要在我工作时打电话给我。特别是不要在我的工作中留下语音信箱。
“在 [我以前的雇主],我们四处走动,任何人都可以收到我的语音信箱。”
3. 我们大多性格内向
如果您正在参加招聘活动,请准备清晰、简洁的标牌和小册子。不要急于求成。不要当着我们的面站起来。你会
把我们吓跑。
“这些招聘人员中的大多数只是让我想起了那些“酷孩子”。在我的高中或希腊生活中,我大学时代的混蛋。我
在他们身边感到尴尬和难为情,我想知道他们是否在用他们提醒我的方式在脑海中默默地评判我
在我们年轻的时候大声做。
假设这是你的候选人的感受,你会更安全。是的,这是一个概括。是的,许多网络开发人员都是
兄弟会男孩和联谊会女孩。是的,您实际上非常友善,绝不会说或想任何关于您的候选人的刻薄话。
4. 专业
“除非你要警告我,否则永远不要使用感叹号!!!!!!或全部大写。
我们不认识你。不要试图听起来像个朋友。这是与可能健康的人的专业通信
受过教育,很可能非常迂腐,并且知道“你的”和“你的”之间的区别。和“你是”
使用正确的拼写和标点符号。您代表的是您为其招聘的公司,但我们也知道您可能会
代表我们去那家公司。如果您懒得在介绍性电子邮件中使用正确的拼写、标点符号和语法,
为什么我会相信你会给我可能会与之谈判的公司留下任何良好的印象
你为了我的薪水一样重要的事情。
5. 不要说俚语,除非你是说俚语的人中的一员
这可能看起来不公平,但这实际上是对一般生活的好建议。你听起来像一个完全与世隔绝的父母
与他们十几岁的孩子有关。你很可能不小心冒犯了某人。
“当我看到‘我们想要一位对…’充满热情的真正摇滚明星时。我刚刚读到‘我们将期待至少 70 小时
离开你几周,提出愚蠢的、不合理的要求。这项工作将 suuuuuuuuuuuuuuuuck。
不要说“摇滚明星”或“忍者”除非我们穿着黑衣背着吉他去京都巡演。
这很容易成为第 4 点的一部分,但它经常发生,所以我把它作为自己的观点。马上有那么多开发者
删除这些带有“酷俚语”的邮件他们中的语言。
当我们谈论白话时,是时候理清一些术语的实际含义了:
6. ‘网络开发人员’是可接受条款中的最少条款
永远不要“网站管理员”。如果您是“网络管理员”,那么您要么来自 1999 年,要么 16 岁。
“一位‘网络大师’是你居高临下的老板告诉你他 14 岁的侄子在心算时说的话
他能付给你的钱是多么少,他能对你大声尖叫,他的秘书大量购买你必须制作的预磨 GreatValue 咖啡
你自己在后台,销售人员过来把它喝完,然后你才发现它已经煮好了,然后你必须再做一个
锅。我是直接根据这里的经验说的。
不是“网页设计师”,任何一个。那是另一回事。他们设计。他们通常不编程。如果他们这样做了,
他们将成为“网络程序员”!
可能不是“网络程序员”或“互联网程序员”任何一个。这就是我们礼貌地告诉老年人的
当他们要求我们再次提醒他们我们做了什么时的烧烤——最后叹了口气说,“我用电脑工作。”
“网络开发人员”是我们可能与朋友一起使用的基本描述性术语。这就像给自己打电话
“迈克”当你的名字真的是“迈克尔”时。大多数“客户端工程师”可能认为自己是
“网络开发人员”但不会将其放在商务信函或简历中。
“前端开发人员”几乎是“网络开发人员”的同义词,但是我们通过更换在上面系上领结
“网络”与“前端”。
“客户端工程师”可能是最正式的选择。
实际上,“前端”、“客户端”,甚至“JavaScript”的任意组合都可以使用。
与“工程师”或“开发人员” –你甚至可以扔“软件”或“网络”在那里如果
你会喜欢 -会做。但永远不要“网络工程师”;那太奇怪了。
我现在能想到的所有可接受的排列,从最不严重到最严重,是:
–前端 [网络] 开发人员
–客户端 [web] 开发人员
– JavaScript [网络] 开发人员
–前端【软件】工程师
–客户端[软件]工程师
– JavaScript [软件] 工程师
如果您正在招聘的职位未在此处列出,则可能存在某些“不合适”的地方。关于它(截至目前
写作)。
“[T]itles [大部分] 是无关紧要的。重要的部分是表达实际工作会是什么样子,团队环境会是什么样子,
以及为什么该公司是投资您的职业生涯的可靠场所。 [你可以]给我标题“训练中的海象”只要那些
事情排好了,我会很高兴。
7. Java I 与 JavaScript 无关
如果你不知道这两者之间的区别,我很难相信你向我准确描述了职位
或者您甚至了解公司招聘的目的。那么,让我们参加速成班吧。
首先,Java和JavaScript是两种完全不同且毫无关联的编程语言。不幸的是,JavaScript 的创造者
将其命名为 Java 的受欢迎程度。他们还为 JavaScript 提供了一种表面上相似的语法。然而,语言是两种
完全不同的东西。
“在我作为开发人员的早期,我参加了一次工作面试,很快我就发现公司正在寻找
聘请脑外科医生,而我只是一名执业护士。即使我是一位经验丰富的全科医生,我仍然
不会有资格。对那个招聘人员感到羞耻。
共有三个“层级”。在编程中:前、中、后和移动。 (我知道,那是四个。手机是它自己的世界,
通常与网络开发无关,但经常被分流到同一类别。)
前端:更准确地说是“客户端”。缩写为“FED”联邦调查局——但不是招聘人员!
客户端是在用户浏览器中发生的任何事情。多亏了 Node.js,这个空间变得有点模糊,它让你
编写传统上只能在中间层空间为浏览器编写的代码 ——有时甚至看似
完全替换后端。
这里需要了解的是,这段代码一般是从网络服务器传递到网络浏览器的。上的浏览器
用户的计算机执行(运行)此代码。它是用户看到并与之交互的一切。它决定一切的外观和行为。
它决定了当他们点击、拖动或悬停时会发生什么。
作为参考,客户端的标签汤是:JavaScript, ECMAScript, ES6, ES2015, CSS, HTML, JS, TypeScript, CoffeeScript, Babel, BabelJS,
Webpack、Browserify、React、ReactJS、Angular、Backbone、Marionette、Node、Node.js、CSS、LESS、SASS、SCSS、XHTML、DHTML、jQuery、Bootstrap、
Grunt、Gulp、NPM、Heroku、UI、UX、Firebase 和 D3.js。 (更多信息请参见第 5 点。)
中间层:也称为“MT” –但你不这么叫吗!它经常被错误地称为“后端”。
中间层被粗略地描述为在服务器上执行的任何代码。服务器是位于“云端”的计算机。
(又名“其他人的计算机”)并响应您的请求。
例如,当您输入 http://www.salesforce.com 时,某处有一台服务器最终接收到该请求,处理
请求,并做出相应的响应。处理请求是中间层所做的:“哦,你想要 Salesforce 主页?好的,让
我明白了:你登录了吗?是的?好的,让我获取你的帐户。是的,我们开始吧,你会得到 Dreamforce 与会者宣传标语(图片)
在标题中链接到您最常访问的页面。
本质上,中间层通常决定您看到的页面以及该页面上发生的内容,然后将所有代码交给您的浏览器
需要做到这一点。由于 Node.js,前端开发人员正在侵占这个空间,但在未来几年,一个勇敢的中间层
开发人员可以将自己推销为 Node.js 开发人员。
作为参考,中间层的标签汤是:PHP、.NET、Java、Ruby、Python、Node.js、Rails、Ruby-on-Rails、REST、API、Groovy 和 Scala。
后端:也称为“数据库管理员”、“DBA”、“系统管理员”或“网络管理员”。后端
开发人员通常是那些自己维护服务器或处理实际数据库的人。我把几个不同的
学科在这里在一起,因为他们经常被推到背景中并被边缘化(即使他们处理一些最困难的问题
任务!。然而,优秀的 DBA 和优秀的网络管理员是两个截然不同的事物。
这些人通常是维护运行代码的机器或负责实际数据存储位置的人。
通常,这更像是一个领域而不是一个实际职位,除非公司处理大数据。通常是中间层或前端开发人员
将处理这个领域作为额外的责任,但它不会是他们的专业领域。任何拥有重要网络存在的公司
至少会有两三个人在这个领域做截然不同的事情。
“‘后端’是一个非常多样化的群体。管理 Linux 和 Apache 的人——或 AWS 服务器——或许
与 DBA 知识完全隔离,在关系世界中工作的 DBA [who] 可能与 NoSQL 事物世界完全隔离
比如 Hadoop 和 MongoDB。
作为参考,后端的标签汤是:SQLServer、Oracle、MySQL、MongoDB、NoSQL、SQL、Hadoop、Apache、Tomcat、Microsoft/Windows Server,
AWS、Amazon [在此插入任何内容]、CDN(内容分发网络)、Akamai 和数据集成。
全栈开发人员:也称为“全栈开发人员”。这通常是做上述所有三件事的人
–偏爱其中之一 -由于必要性和公司规模/预算。通常最好至少有两个或
三个独立的职位来处理这些独特的学科。全栈开发人员是必然的产物,而不是可有可无的东西。
移动开发人员:人们错误地将他们与 Web 开发人员混为一谈,尽管由于
像 React Native 一样思考。与后端和/或中间层开发人员也有一些表面层面的重叠,尤其是在
使用的技术有关。您有时会发现中间层或前端开发人员在做“混合”开发。移动应用
发展,因为他们必须。通常是“本土”的是首选,与通常使用本机应用程序的方式大致相同
优于网络应用程序。
作为参考,移动开发人员的标签汤是:iOS、Android、SDK、Java、PhoneGap、Unity、Objective-C、C#、Cordova、XCode、VisualStudio,
VB.NET、Swift 和 React Native。
了解这些角色之间的差异非常重要,因为有时 -特别是对于较小的客户——
公司可能不太清楚它实际需要什么。您有责任确保找到合适的人选
合适的岗位和合适的职位给合适的人选。
8. 具体、简洁、准确和现实
客户端的相关技术是 JavaScript(又名 ECMAScript)、CSS 和 HTML。还有工具、库和框架
让你以更健壮或更具体的方式编写这三件事。这些工具是LESS、SASS、CoffeeScript、TypeScript、ES6、ES2015、
ES(在这里插入数字/年;ES 代表“ECMAScript”,数字/年基本上是不同的模型],Angular、React
(又名 ReactJS)、Backbone、jQuery 和 Marionette。
“不要列出天底下所有不相关的技能。当我看到一长串技术列表时,我觉得招聘人员正在抛出一个
天罗地网,同时提出不可能的挑剔要求。 [他们最终会] 将他们捕回的 95% 的鱼扔掉。加,
这些清单通常完全可笑;没有人拥有 3 年以上的 ES6 经验。它甚至还没有出现那么久!”
列出工具和框架可能没问题,但尽量将自己限制在一个范围内。最好选择三种顶级技术中的一种,
优先考虑我列出它们的顺序,以及一个特定的工具/框架/库(询问公司哪一个是最
重要的)。您的消息应如下所示:
我们正在寻找一名高级 JavaScript 开发人员,最好有 ReactJS 经验。
如果有人了解 JavaScript,他们通常会相当熟悉 CSS 和 HTML。如果有人知道 CSS,他们会很合理
熟悉 HTML。如果有人只知道 HTML,那么他们就不是 Web 开发人员。只要求 CSS 开发人员(而不是 JavaScript
开发人员)如果客户明确表示他们需要一个。
CSS 可能非常难,我知道专门的 CSS 开发人员比 JS 开发人员少。如果 JS 开发人员像独角兽,那么 CSS 开发人员
是飞马。同样神奇,同样有价值,但肯定更少被谈论和追捧。如果人们只能拥有一个,他们通常会去
与独角兽。圣杯是飞马座独角兽,但它们非常稀有。 HTML 只是一匹马。没有人关心马。
除非应聘者催促,否则永远不要展示任何近似于以下内容的内容:
我们正在寻找具有 3-5 年经验的 JS 开发人员jQuery、JavaScript、ES2015、ReactJS、Angular、SASS、LESS、CSS、
DHTML 或类似技术,以及 JIRA 或 TeamTrack 和 Git(或其他 SCM)方面的经验。
如果你确实展示了类似的东西,你显然不知道你在说什么,因此公司可能
也没有。这条消息完全没有吸引力,并发出了一个信号,表明候选人最终会遇到什么样的烦恼
处理整个招聘过程和他们在公司的任期。
“要具体。立场是什么?多少钱?在那里工作会是什么感觉?团队有多大?什么是
环境怎么样?否则,你只是在浪费我们的时间。”
专业提示:除非潜在雇主特别要求这样做,否则永远不要提及 XHTML、DHTML、HTML4、HTML3、Prototype.js、
MooTools、AJAX、YUI、Dojo 或 Script.aculo.us。甚至 jQuery 也值得怀疑——可能最好将其排除在外。其中一些太旧或
不酷的是,这就像问某人是否愿意为 Nintendo 64 做游戏开发一样。不,没有人愿意。没兴趣。这
或多或少也适用于 WordPress。几乎任何使用这些技术的公司都可能在遗留设置中使用它们或者知道
它们应该被逐步淘汰。
9. WordPress 是网站中的麦当劳
WordPress 无处不在,旨在让任何人都可以完全安装和使用,即使是那些不会编码的人。 WordPress 不在其中
你去美国公司建立一个严肃的客户端工程师的职业生涯。 WordPress 充其量是用于博客或作为内容管理
系统(CMS)在最坏的情况下。这适用于几乎所有其他现成的 CMS。
“作为那种从事 WordPress 工作的 Web 开发人员绝对没有错,但你应该明白这是
与客户端工程师完全不同的球赛。这里没有价值判断。有些人喜欢汉堡,有些人喜欢牛排,有些人
两者都喜欢,但只想专业地制作一个。”
如果您希望将来为其他任何事情招募客户端工程师候选人,请不要向他们发送 WordPress 演出。除非他们
特别是在他们的 LinkedIn 或 StackOverflow Careers CV 上列出了 WordPress,你最好不要提及它。
这可以说也包括 Drupal。如果有人正在寻找 Drupal 工作或有相关的 Drupal 经验,您可能会知道。
如果不是,那可能是有原因的。如果职位明确是 Drupal 职位,你最好只去
在他们的简历中特别提到 Drupal 的人之后。
10.成为社区的一部分
我们绝对不介意招聘人员来参加聚会和活动。甚至可以问(几个)问题以了解更多关于
新兴趋势和技术。事实上,如果您愿意,我们可能会喜欢它。
“这对你来说只是一份工作,但这是我们的事业。如果您不在乎,我们可以判断。”
做一些编程一小时、Nettuts 和/或 Egghead.io 教程。尝试学习自己编写代码。如果你觉得它很有趣,你最终会
拥有适销对路的技能— –并为自己找到一份出色的工作的最佳线索。至少,你会说得更多
聪明地向你试图招募的人和你正在招募的客户。
最好的招聘人员不仅了解公司和职位,还了解技术和担任这些职位的人员。
建立融洽的关系,很快你就会发现实际上有一些候选人来找你。
问题?同意还是不同意?觉得我忘记了什么重要的事情?您希望招聘人员如何与您联系?招聘什么
你见过灾难吗?我们很乐意听取您的意见!