有些人认为前端开发不是真正的开发。这是一种傲慢、挑衅的观点。尽管如此,我们有时也需要挺起胸膛。让我们来解释一下,为什么前端开发与任何其他子领域一样,都同样困难,同样值得这个称号。
这是我 上周文章 的延续,文章讨论了前端开发人员所需的技能难以确定,以及我们之间的差异性。那篇文章引起了很多读者的共鸣,收到的评论中充满了关于前端开发在技术和个人意义上所代表的含义的有趣故事和经验。
前端开发实践类似于演奏贝斯:它 易于入门,但 难以精通。它远不止 HTML 和 CSS(它们本身就足够难)。
Chris 在 Twitter 上提出了一个填空题
前端开发很难,因为 _________。
— Chris Coyier (@chriscoyier) 2015年7月16日
虽然大多数回复都很有趣,也很搞笑,但也有一些智慧的结晶。让我们来看看让前端开发成为,嗯,开发的共同主题吧!
我们必须处理跨浏览器兼容性。
浏览器行为不一致
— Nathaniel Flick (@nathanielflick) 2015年7月16日
这是该组中最常被提及的抱怨。虽然 Internet Explorer 仍然是大多数笑话的焦点,但每个浏览器都有自己的怪癖,通常需要特殊的开发技术来克服。
我们理所当然地被期望知道如何构建可以在跨浏览器环境下工作的网站。我们应该知道哪些浏览器支持什么功能,以及如何调试和克服特定于浏览器的错误。我们应该知道如何在各种浏览器上进行模拟或测试。
我们应该了解可以帮助我们自动解决跨浏览器问题的工具,或者使我们能够编写代码来处理功能支持和不支持的情况。我们应该知道如何进行回退。我们应该了解渐进增强和优雅降级。
跨浏览器兼容性是一项极其复杂的开发任务。
天哪,这么多设备!
屏幕尺寸和浏览器各不相同。
— Nicholas Bumgarner (@NickBumgarner) 2015年7月16日
除了处理浏览器不一致性之外,前端开发人员还负责为尽可能多的屏幕尺寸、屏幕方向、像素密度和输入类型进行开发。
不同屏幕、浏览器和功能的庞大格局带来的负担,主要落在前端开发人员身上。
框架、库、预处理、依赖项、插件……
每天都有这么多新东西,不知道什么会成为标准。
— dean (@visualcookie) 2015年7月16日
所有那些糟糕的框架
— Rick Blalock (@rblalock) 2015年7月20日
过去,只需在 HTML 中链接一个样式表和一个 JavaScript 文件,就可以开始设计和构建网站。事实上,这仍然是基础。
如今的开发感觉大不相同。工具链变得更加复杂。我们需要选择构建流程、使用哪些库、用什么语言编写、想要投入多少精力到未来的语法中、想要依赖多少框架、哪些第三方工具有意义并且使用起来安全。
考虑这些选择不仅令人疲惫,而且越来越难以知道哪些是最佳选择,以及这些选择从长远来看是否明智。
前端开发中的选择与其他任何地方一样多,甚至更多。更不用说这个领域 变化速度极快。
我们是视觉设计师、后端开发人员和其他学科之间的桥梁。
因为它不再完全是“前端”了
— Ara Abcarians (@ItsMeAra) 2015年7月17日
如今的许多框架和 CMS 都跨越了多个学科的界限。前端开发人员处于这一切的中心。我们最终负责设计——网站的外观。我们帮助内容人员确保他们拥有所需的内容,并从他们那里获得我们所需的内容。我们在模板中工作,提取我们所需的格式的数据。我们处理用户输入并确保将其引导到后端关注的其他位置。
你会对自己的身份感到困惑——是程序员还是设计师
— Priyanka N Majumder (@PriyankaNM) 2015年7月17日
责任链始于前端
— Chris (@chrisdebelen) 2015年7月16日
我们不仅身处许多学科的交汇点,而且还被期望掌握足够的后台语言以发挥作用。如果你不懂 任何 PHP,那么你将是一个非常糟糕的 WordPress 开发人员。如果你完全不懂任何 Ruby 或 Rails 约定,那么在 Rails 项目中你也不会很有用。你懂的越多,你就能为团队提供越敏捷和自给自足的服务。
每个人都认为自己可以胜任前端开发。
这很简单,像这样就行了……等等,现在像这样……好吧,现在我们完成了,我们可以把所有东西都改成这样吗?这很简单……
— Andrew League (@aleague888) 2015年7月16日
前端开发的门槛相当低。每个人都听说过 HTML。他们“懂一些,但很危险”。由于门槛低,并且很容易涉足,所以人们认为不需要掌握太多知识,前端开发并不特别困难,这也很正常。
命名事物。而且我们必须命名很多事物。
你必须命名事物。
— Stuart Robson (@StuRobson) 2015年7月16日
我想你已经听说过关于命名事物是计算机科学中最难的问题之一的格言。我们前端开发者一直在命名事物。类名和 ID、数据属性、文件名、与团队沟通的模式。它永无止境。感觉平均每天都有数十个命名选择。
更不用说文案撰写任务通常也落到我们头上,这不算真正意义上的“命名”,但难度相似。
“正确的方法”和“错误的方法”不像后端开发那样明确。
没有标准的生产管道。没有参考浏览器实现。没有正确答案,但错误答案却很多。
— Pelle Bjerkestrand (@pcbjerkestrand) 2015年7月16日
在后端开发中,如果预期发生的事情确实发生了,那么你就成功了。当然,达成目标的方法有很多,有些比其他的更好。但在前端开发中,完成一项任务的路径似乎无穷无尽。即使你似乎已经成功了,也感觉像是迟早会发现你所做方法中的某个 bug。
CSS 很难测试。
后端语言(甚至 JavaScript)可以使用单元测试和集成测试来帮助确保代码按预期工作。CSS 没有这样的便利。当然,有人在尝试,并且有一些信息和工具可用。但这些都不太好,成功案例也很少。
Bug 可能是微妙的、令人困惑的和出乎意料的。更糟糕的是,一个看似微小的改动可能会在某个意想不到的地方产生负面影响,而你直到为时已晚才会注意到。
有一些 lint 工具,它们提供了一些帮助。也有一些样式指南强制执行工具,但它们并没有真正帮助强制执行更重要的事情,例如命名标准的遵守。
前端开发人员需要在脑海中牢牢掌握整个网站,以便能够以最有效率的方式工作。
JavaScript 与任何其他编程语言一样复杂。它很奇怪也很难。
JavaScript 是前端开发。JavaScript 是编程。编程是软件开发的一部分。软件开发很难。
性能 80% 依赖于我们。
经验法则是在网站加载等待时间中,20% 来自后端问题。一旦 HTML 文档到达,其余的加载时间就是前端开发人员需要关注的。加载了哪些资源,加载了多少资源,它们的优化程度如何,加载的方式以及感觉如何等等。
这是无障碍性实现的地方。
构建视觉上令人惊叹的网站是一回事,而它们的无障碍性则是另一回事。设计师非常关心用户如何与网站互动,而这可能并不总是视觉互动。为残疾人设计和开发网站本身就是一个学科,但它与前端开发最紧密地联系在一起。无障碍性有自己的一套规范,遗憾的是,这些规范通常不会与传统的前端开发培训一起教授。
招聘很难。
前端开发人员通常是最难填补的职位。
当然……
因为我们让它变得很难。
— (@mikeyb) 2015 年 7 月 16 日
总结
你觉得呢?前端开发是“真正的”开发吗?我想是的,并且相信这里提供的反馈——特别是来自其他人的反馈——是确凿的证据。还有哪些因素让它变得困难?SEO?这场讨论值得进行吗?
好吧,这篇文章真是太棒了。里面包含了太多真理。如此多的可能性、选项和事物,完成给定任务的方式。前端开发拥有如此多的工具,但选择合适的工具和使用它们是完全不同的两件事。我们确实让它变得很难。
我不确定这种“前端开发不是真正的开发”的想法是从哪里来的。试图“证明”前端开发是开发几乎是愚蠢的。当然没有必要证明,它当然就是开发。
话虽如此,尽管我同意文章中的大多数观点,但其中一些确实让我感到恼火。
前端开发人员拥有全栈开发人员技能的一个子集。按照这种逻辑,全栈开发人员是不可能招聘到的。
这并不是真正关于寻找前端或后端或全栈开发人员。而是关于寻找优秀的开发人员。优秀的开发人员是最难填补的职位。
JavaScript 不是前端开发(参见:Node.js、游戏脚本引擎和编辑器,以及其他无数常见用途)。当然,JavaScript 是前端开发的一部分,但这又怎样呢?谁在试图说 JavaScript 不像其他任何编程语言一样复杂?无论在什么上下文中使用,JavaScript 都是非常复杂的。
全栈开发人员的前端部分将构成专业前端开发人员技能的大约 1/3 到 1/2。专业化使您可以更深入地了解其他人期望他们肤浅的知识所涵盖的所有内容。
问题在于,在您专门成为前端开发人员之前,您需要有人来处理后端和中间件。因此,要成为前端开发人员,您需要更大的团队。
在前端 MVC 出现之前,大多数开发都在后端进行,因此您会发现优秀的后台开发人员比前端专家多得多。
没有太多大型的前端团队。那些培养出前端开发人员的团队通常不希望失去他们,因此很难招聘他们。
来源:我的经验;我们目前正在尝试招聘 2 名新的高级/资深前端开发人员。
呵呵,不确定是同意还是不同意……
我同意——你刚才所说证明了我的另一观点。
一个“全栈”开发人员只有前端开发人员 1/3 或 1/2 的技能,对我来说,并不是真正的全栈开发人员——我相信其他人可能有不同的看法。
这是“样样通,样样松”与“样样通,样样精”的讨论。我喜欢符合第二种情况的全栈开发人员。
前端开发之所以困难——基本上是因为我们必须了解所有内容,而每个人似乎都认为我们一无所知。我注意到后端和前端开发人员的薪资差异。这让我很困扰,因为我必须了解各种各样的技术(新的和旧的),而大多数后端开发人员只使用两种,也许三种(取决于数据库的使用情况等)。此外,我们都必须获得计算机科学学位,只是我发现自己从事了不同的工作。
我们被期望了解我们的数据/控制结构,还要了解三种或更多语言的细枝末节,此外还要拥有 5 年使用最新框架的经验,该框架上个月才发布,并且对 ES8 中发生的事情感到兴奋(ES6 才刚刚开始得到支持)。最重要的是,后端开发人员通常会尝试为他们认为最佳的方式编写我们的工作流程,这会让每个人都很生气,因为他们不明白为什么我们告诉他们错了,因为他们不明白级联是如何工作的,以及为什么我们认为应该以他们认为错误的方式完成。
这可能是也可能不是基于经验。
正如你指出的,前端开发人员是构成Web项目的许多其他学科之间的桥梁。一个优秀的前端开发人员必须在某种程度上成为项目经理,并对所有过滤到他们以形成最终产品的学科有很好的理解。很少有为前端开发人员职位提供的薪水会考虑到这一点。
我刚刚面试了一个高级前端开发人员职位申请人——他实际上认为只有JavaScript和至少一部分后端代码就足以称之为开发。不用说,这足以让我了解到他在HTML/CSS方面的严重不足,从而终止了面试。
此外,许多之前的申请者更像是框架/工具包使用者而不是前端开发人员;他们甚至无法用JS/jQuery编写一个简单的选项卡组件,更不用说更复杂的代码了。
你们在俄亥俄州招聘还是远程开发人员?
你们是否考虑远程工作作为一种选择?
冷静点。
你拥有某种范围的知识和能力。我假设你足够擅长这些,可以支付你的账单。为什么人们在我们的行业里关心头衔;难道它还不够复杂吗?
“开发者”这个词不够精确,“水管工”则很精确。只要你的个人资料符合市场需求,一切就应该没问题。
顺便说一句,真正的程序员使用蝴蝶。
那么,这是否意味着只有当前端开发人员编写了一个通过蝴蝶传递网页数据包的HTTP分支时,他们才能成为“真正的程序员”?
此外,据我了解,这里提出的问题通常与头衔无关——而是与一些雇佣和与前端开发人员合作的人的无知程度有关。
如今,成为一名前端开发人员意味着必须了解所有内容。除了HTML/CSS/JS之外,你通常还负责响应式设计决策。设计师仍然为桌面布局制作PSD模型,然后我们将其转换为代码。你必须涵盖可访问性。还有网站性能。
使用WordPress?那么你将负责PHP、MySQL和数据库问题。我们通常会将站点从暂存环境迁移到生产环境,虽然一些托管服务会处理此过程,但仍有许多情况下需要手动完成。
当然,我们需要足够了解Photoshop才能解释颜色和不透明度级别,将字体大小从pt转换为px,并使用标尺工具测量填充和边距长度。
我们还负责用户体验,将交互转换为CSS动画,并且经常为网站编写文案。
但任何人都可以做到。(笑)
说到点子上了!
一针见血!
别再读我的脑回路了。
就是这个意思!
所以你承认你的工作实际上只有50%是开发,50%是平衡你的学科。啊哈!!你不是真正的开发者……(讽刺)
作为一个后端开发人员,我认为软件开发很容易——至少与前端开发相比是这样。处理JS是前端开发中最简单的一部分。其他所有事情都难得多!
:) 这让我笑了。谢谢。我听说过其他后端开发人员也表达过这种观点,这让我感到惊讶。我认为这只是因为FED和BED的思维方式不同——FED从视觉角度思考,而BED更多地从线性/数学导向的角度思考,而不是视觉方面,恕我直言。真是太迷人了!
在我们办公室,我们有一位Web开发人员,而我是网站管理员。尽管头衔有些过时,但我们实际上将工作分成了前端(我)和后端。我可以告诉你,作为负责前端的人,我需要在不断变化的HTML/CSS/JS方面大幅提升技能,但也必须精通后端(我们使用ColdFusion)以及与数据库的交互。此外,我算是校园里唯一一个精通所有Web技术的现代专家,所以人们对我的期望远远超出了编写样式表的能力。
这是一份艰苦的工作,几乎可以肯定(恕我直言)是无所不能的网站管理员的演变。但我也要承认,一些(优秀的)后端开发人员是真正的奇才!
说实话,我有点怀念做网站管理员的日子。听起来太酷了。
当然,在任何东西后面加上“大师”,都会让它酷一百倍。
我认为对前端开发的偏见来自两个极端。一方面,很多人从学习一点JS/CSS/HTML开始,很容易将前端开发人员视为那些不断从零开始的新手。另一方面,人们可以认识到前端开发的复杂性,并质疑那些想要生活在“世界上最恶劣的开发平台”中的人的理智。
前端开发之所以难,不是因为人们正在解决的问题的核心元素很难(本质复杂性)。而是因为环境已经发展到使得即使是相当简单的程序也变得很麻烦。(这是布鲁克斯所说的本质复杂性和偶然复杂性。)然后,如果你试图解决一个本身就复杂的程序,而环境又增加了上面列出的所有额外困难,哇,那太痛苦了!
我喜欢这篇文章及其背后的理由。
但我希望大家都能明白,无论你有多么优秀的前端开发人员(初学者、中级、高级)……也要关注其他方面……新的框架、新的语法、新的JS库、移动应用开发……数据库开发……
这样一来,如果将来你被要求承担更高的职位或在其他地方获得更好的工作机会……至少你不会犹豫……然后你还有前端开发经验来证明你的复杂性……:)
真相。
作为一个自豪的前端开发人员(也是一名贝斯手)——我无法更好地表达了。我记得每次那些自以为是的后端开发人员贬低前端开发人员和前端开发时,我都会生气(好吧,也许在90年代他们有道理)。看到他们在要求他们做一些简单的前端工作后感到沮丧,让他们意识到其中远不止表面上的那些,我认为,这就是前端开发难以掌握的原因;大多数编程语言都非常有主见,有严格的文档,而且大多数情况下都为常见问题提供黑白分明的解决方案,而我们前端开发人员则必须通过艰苦的学习,并在获得相当的经验和见解之后,才意识到我们肩负着许多责任,而不仅仅是在屏幕上“绘制员工”。
做前端开发是一回事,成为一名前端开发人员是另一回事。
开发者就是开发者。:)
不同的技能,相同的工作。
我认为,可以用来将开发细分为前端、后端和全栈的技能、经验和工具一直以来都(并且仍然)不透明——对开发人员和想要雇佣开发人员的公司来说都是如此。自我识别通常毫无意义,除非对内部人员来说,他们可以互相眨眨眼,并哀叹招聘机构或公司职位发布作者的“明知故犯”的无知。
开发人员不能免于为日益模糊的界限做出贡献,因为,让我们面对现实,如果我们需要工作,我们会申请任何职位——特别是前端开发人员。从历史上看(我的意思是比几年前更久远的过去),前端开发意味着现在俗称的网站管理员的工作。即使在他们存在的时候,网站管理员也像独角兽一样稀有,因为没有人真正掌握了Web。这个术语涵盖了一系列广泛的技能,包括后端和前端专业知识,并且通常需要能够从熟悉的事物中推断出“最新”、“最好”的技术,并进行调整和适应。这些调整将在他们项目的背景下进行,也许是正确的,也许是不正确的。由于没有时间拆卸或成为专家,因此如果它能正常工作且没有破坏任何东西,那么就算取得了成功。这叫做涉猎。网站管理员就是涉猎者。
业余涉猎者长期占据主导地位。它取得了如此巨大的成功,以至于至今仍流传着一个神话,那就是一个人可以管理中小企业的互联网形象。只要这些公司想要业余涉猎者(即使他们不明白自己想要什么),并且各个级别的开发人员都申请这些职位,这种现象就会持续下去,从而强化了开发人员市场同质化的观念。
我们不禁要问,为什么公司难以招聘开发人员?寻找前端开发人员的公司通常是在寻找能够管理其特定古怪、奇怪交织的“当时有人‘绝对坚持’某些东西”的混合体的人,而这些东西正是导致标准崩溃的起点,并产生了只有一个人才能理解的怪物。
根据我的经验,对于非技术公司来说,只有当这个怪物失控并开始威胁公司时,才会发生根本性的结构变化,从认识到他们的开发人员可能不是优秀的数据库管理员、程序员或软件工程师开始。
因此,由于发生了临界点,真正的后端专家突然被引入,他们在大约 5 分钟后,就会诅咒造成混乱的人,而不是在混乱中看到疯狂天才努力适应和协调本应由一个协调的堆栈大师团队完成的产品的魔力。
在大多数情况下,即使在今天,一个能够构建和查询多表数据库、编写 php、JavaScript、HTML、css、运行预(后)处理器、遍历 DOM、使用开发者工具、使用框架构建,甚至了解页面 SEO 基础知识、拥有 Creative Cloud 优势、像节点一样管理他们的 Hub 的单一开发人员,都可以真实地将自己描述为获得工作所需的任何角色。
所有这一切都是为了说明,如果求职者不知道自己需要什么,如果我们的朋友、家人和税务局不知道如何称呼我们或不理解我们做什么,我认为那是因为我们自己也不知道,而且我们也不清楚我们应该知道什么。
对于所有全栈开发人员,你们都非常令人钦佩。享受你们的突发心脏病、精神崩溃以及你们类似神一般的身份——后者是因为你们可以告诉老板事情将如何完成,当然,开发人员社区也会对此心照不宣。
这篇文章和那些引发它的人一样可悲。
对这篇文章和那些引发它的人有这样的感受完全没问题,但没有理由的意见也是如此。如果所有这些东西都很可悲,至少解释一下它们是如何可悲的,也许可以由此引发良好的对话。
我是一名前端开发人员,我和我的团队正在一个大型的 Ember.js 项目上工作。我们必须显示实时数据(大量数据!),我必须说,我们可能比后端人员更艰难 :/
我完全理解你的痛苦,并为你感到难过。经历过,也做过。
我完全同意本文中的所有观点,并且我认为很有趣的是,我们有这种趋势,即使用 JS 将越来越多的服务器端逻辑放到客户端。它迫使后端开发人员更多地深入前端开发部分。
与任何其他职位不同,作为一名前端开发人员,你必须始终保持学习、发展和适应。这是一个不断变化的严酷环境。
“JavaScript 是前端开发。JavaScript 是编程。编程是软件开发的一部分。软件开发很难。”
我所有时间里最喜欢的引用。
你的评论让我哀叹评论中缺少“赞”按钮。:D
感谢这篇文章,我读得很愉快。我必须承认,前端开发是一项极其困难的工作,需要不断学习,并且不断发展,这可能很难,但这也是乐趣的一部分,我们不断向前推进并努力改进,我们拥有积极鼓励并要求我们灵活敏捷的工作,我们永远不能休息,否则就会落后。
我唯一的小抱怨是,我感觉有一种情绪在蔓延,并且被类似的东西激发,让人想要挺胸抬头,沿着走廊看着同事,说一些诸如“我能做你做的事情”、“我实际上对团队更有价值”或“为什么你比我赚得多”之类的话,甚至更好的是“我懂得更多,可以胜任你的工作,你只做一两件事”。
这不利于团队合作,如果我们真的想要构建伟大的产品,我们会避免试图成为项目的英雄,并努力成为项目团队中更优秀的一员。开发人员、前端开发人员、设计师甚至项目经理都是同一战线上的球员,我们有着相同的核心目标,那就是构建一个产品。我们每个人都认为自己的领域是最重要的(我想这就是我们一开始选择它的原因),但我们需要每个人一起工作,这样才能不仅仅构建一个好的产品,而是一个伟大的产品。
如果没有一个优秀的 Hacker 在身边,我们的数据调用就会很慢,API 的结构很差,更重要的是,我们必须做这些事情(我不喜欢)。能够设计网站的前端开发人员可能能够做到这一点,但他们对品牌的了解有多少?你是否知道如何真正销售该产品,因为这是目标?你是否只是在网上阅读帖子,查看 2015 年的网页灵感,然后设计网站?这不会产生一个伟大的产品,至少它可能有良好的排版,但它是否满足转化目标?因为这才是好的设计必须做到的。同样,一个不费心学习 HTML、CSS、JS 的设计师可能会发现很难设计一个好的网站,如果他们只是坐在办公桌前,从不询问开发团队他们正在做的事情是否可以实现或者是否存在障碍,那么情况只会变得更糟。
我想说的是,我们都有交叉领域,我们都共享一些技能,没有哪一方更好,与其站在那里比较谁的工具更大,我们不如专注于如何成为更好的团队,如何更好地沟通和协作,分享我们所拥有的知识,以便不仅创造出好的产品,而是真正伟大的产品。
无论如何,这就是我的看法,再次感谢这篇文章,读起来很不错。
观点很好,除了……是什么让你认为后端的一切都是一成不变的?哈哈哈哈哈哈……
好吧,.NET 库和 Visual Studio 非常接近它;)
但是的,它与前端一样。这取决于项目。
从未听说过这个讨论,我甚至不会给它写一篇完整的文章。我周围的所有后端开发人员都同意,前端开发比后端开发更难,这就是为什么我们缺乏优秀的前端开发人员的原因。我周围的客户和设计师甚至不理解后端和前端开发的原理,所以他们没有理由针对这个话题。我觉得这篇文章只是为了反驳某个“黑客小子”的粗鲁言论。
当然,前端开发人员会说他们的工作很难。因为他们是前端开发人员:P
我必须同意这里的许多评论。我认为没有哪个正规的后端开发人员会否认前端开发是真正的、硬核的开发。尤其是在现在,使用 Angular 和其他 SPA 库将业务逻辑转移到前端的情况下。我们甚至不要开始讨论同构(http://isomorphic.net/)。
也许这会吓倒一些传统的开发人员,他们对 JavaScript 持教条式的观点,认为它不是一门严肃的编程语言,从而发表不成熟的评论,但这些类型的人最好忽略。随着事物转向大量使用 JS 的弹性云端应用程序架构,他们将自食其果。
我是一名前端开发人员,与一位非常聪明的后端开发人员共用一个隔间,他非常尊重那些了解 HTML/CSS/JavaScript 和跨浏览器兼容性的人。
让火焰战争结束,让我们都回到各自复杂且重要的工作中吧。;)
PS - 所有这些来回立即让我想起了这段视频…… https://www.youtube.com/watch?v=2Tvy_Pbe5NA
作为一名前端开发人员,我完全同意这一点;但是,我仍然认为,多年来我遇到的大量前端开发人员并不能完全满足这些条件。
令我惊讶的是,没有人提到 HTML5 的向后不兼容性和日益增长的复杂性。
更改基本语法,例如不需要标签闭合并允许混合大小写标签并不会让我的工作更容易。谁认为这些是好事?
我过去可以通过向表格添加“summary”属性来提高表格的可访问性。现在,我必须将表格包装在 中并添加一个
<
figcaption> statement – or… wait… Do I need to close or not?
当然,我现在有数百页不再有效。
(S)CSS/Compass/LESS 和 Javascript 已经够难的了,不用再为了最基本的标记语言去跟踪一个不断变化的目标。
很棒的文章!
已订阅您的邮件列表。
“总有一天我会成为一个真正的人”——匹诺曹
但说真的,这是唯一一种生活在过去的技术。
CGI 制作是前沿的,
视频游戏开发是前沿的,
音频处理是前沿的,
手术 = 前沿的,
前端网页图形和视觉 = 落后 20 年。
当然,它是真正的开发,但当我们开发人员允许它被特殊利益集团破坏时,它怎么能被视为严肃的事情呢?
前端网页图形和视觉 = 落后 20 年。
好吧,不是所有东西?我们已经可以做很多惊人的事情,唯一的问题是浏览器支持。
如果您使用最新的 Chrome(64 位),请尝试访问我的页面(www.itsleon.com,网站内容较多,因此加载和渲染可能需要一些时间,是的,渲染指的是您可以进入的 3D 地图)。
我曾在面试的两边都待过,我认为前端人员并不难招,我可能同意很多开发人员不一定是好的面试官或好的面试者,因为这些都是技能,但对我来说,评估开发人员的实力和经验/接触从未像今天这样容易。如果筛选做得正确,面对面的面试应该归结为文化契合度,也许是一些快速思考的练习,也许是基于他们的 GitHub 投资组合或他们声称精通的东西,以及一个练习,也许是向他们介绍一些新东西,看看他们知道在哪里可以应用它。
但请不要让某人飞过来,然后给他们一份笔试题,这是一个危险信号,如果开发人员多于 PSD->HTML/CSS,那么从未让候选人编写代码也是一个危险信号。
从一开始就有作品集,即使那些用学校项目代替委托项目的人,现在也有 GitHub,无论开发人员是创建了自己的代码库,还是分叉并向现有代码库添加了功能,或者修复了开源代码库中的错误等等。
大多数人都有智能手机……因此,如果您是移动 Web 开发人员,那么让他们在面试期间查看您的作品,并让链接引导面试,您使用了什么,也许您为什么为此感到自豪……或者吸取的教训,下次您会怎么做。
有一些很棒的工具可以录制他们编写代码或观看他们实时编写代码(codepen.io、coderpad.io、collabedit.com、Google 文档不是理想选择,但也可以使用)或让候选人使用他们最舒服的工具并对练习进行时间限制。
与以往相比,有更多的聚会,从 CodePen 聚会到 [在此处插入框架]。
有 Stack Overflow。有本地黑客马拉松(以及大学)和政府代码挑战,以及越来越多的以前端为中心的优秀会议。
作为面试官,面试时要关注的另一件事是尝试寻找闭环者、问题所有者……有时会有一些非常聪明的人,他们要么无动于衷,要么过度思考,或者出于某种原因没有贡献他们能够做到的东西,无论是指导还是完成故事/工单……
如果您正在处理数据结构、程序控制流、业务逻辑和应用程序逻辑,那么您就是一名“真正的”开发人员。如果不是,那么您就是配置人员。
一旦 JavaScript 或任何 JS 框架(例如 Backbone、Angular)开始发挥作用,那么您就与其他任何人一样都是开发人员。我会说更多,因为我发现作为一名 UI 开发人员,使用所有窗口小部件和事件驱动的特性比服务器端编程更难。
我发现开发中最困难的事情是如何构建代码来解决问题,使其干净、可测试、可维护且高效。您的类是什么?它们的属性和方法是什么?这些类如何与其他类交互?最重要的是,您必须处理应用程序安全性、异步 Web 服务调用、事件处理、异常处理和日志记录。
使用纯 HTML 和 CSS(配置),您没有所有这些。
当然,您必须确定页面布局,处理 CSS、跨浏览器和不同屏幕尺寸很困难,但这与构建使应用程序运行的所有软件不同。
哇,感觉到了。你学得越多,就越觉得自己像个傻瓜。
如果您了解基础知识,那么所有开发都是一样的。
数据结构、命名约定、架构、算法等。
我做过一段时间的万金油(客户关系、营销、设计、开发(前端和后端)),但现在专注于前端。Javascript 不再是过去的样子了,它变得越来越好。它也变成了服务器端。如果有人说前端开发很容易,让他们去做并学习它。他们会发现生态系统的速度比后端语言快得多(好吧,PHP 最终确实赶上了其他语言的 DI、特性等)。如有错误,请指正。
所以是的,前端开发人员是开发人员。
这是一个对所有开发人员的极好呼吁。我一定会与我们自己的 Web 开发公司(https://www.createaspectacle.com/)中的联合开发人员分享这一点,非常感谢!
根据我的经验,后端开发人员类似于后座司机,通常走阻力最小的路径。对他们来说,基本表单和元素就足够了,但对我们前端来说,它们必须进行样式设置。为什么后端开发人员认为他们必须掌控全局,这是个谜,但可能是他们真正想成为艺术家,并且对别人修改他们代码的外观感到恼火。这正是我们所做的:调整和完善他们称之为 PHP 或他们编写的任何东西的巫术。但他们对我们前端开发人员被称为程序员感到反感,这对我来说是可以接受的,因为我知道这将永远是这种情况。
没有标准的生产管道。没有参考浏览器实现。没有正确答案,但错误答案却很多。
是的,是的,还有是的
终于有一个地方可以发泄了!
遗憾的是,我属于那些喜欢看别人通过编写代码能够取得什么成就的人。不知何故,这看起来很刺激!键入一些代码,翻阅运行代码的窗口,然后发生了一些神奇的事情,您正在创造、解决、进步——太棒了!
成为这样的人一直是我的梦想和目标,已经很多年了。
然而,即使足够聪明地拥有工程学士学位和 IT 硕士学位,我还没有达到能够轻松地编写高质量代码并处理中大型项目的程度——太伤心了 :(
那问题出在哪里?就像保罗·福特在他那篇富有启发性的文章“什么是代码”中描述了他成为开发人员的斗争一样。
好吧,我还没有揭开魔术的面纱。已经五年了,它仍然感觉不自然……但为什么?热情在那里,努力在那里,时间和经验也在那里——我作为前端开发人员已经工作了两年,构建了数十个网站,使用了许多框架和形式。
与 PHP、javaScript、C# 作斗争,仍然无法连续写四行代码而不检查 Stack Overflow、docs.php 或 WordPress Codex。
见鬼!问题出在哪里?
所以在进一步离题之前,我想说。在某些情况下(像我一样),前端**不是**开发。但对于那些掌握了编码的人来说,它是**真正的开发**,并且与后端、软件开发或任何其他开发一样受人尊敬。
我对你们所有人表示敬佩。因为在这方面,**你们**各种开发人员都比我和大多数人优秀。
我有一个想法,公司如何投资于他们的员工并聘用一个掌握基础知识并且乐于学习的人。培训他们成为公司需要的人才。每个公司都有特定的需求,并使用各种软件和硬件;有许多计算机语言和设备。一个人不可能无所不知。作为一名承包商,我不得不学习公司正在使用的特定软件。我非常乐于学习;我想要一份永久的工作;我希望公司能够看到我的潜力并培训我成为他们需要的人。并不是缺乏优秀的锋端开发人员,而是公司方面缺乏投资培训其员工成为优秀开发人员的兴趣。