写点什么

不情愿的守门人:关于全栈开发者的迷思

  • 2018-12-10
  • 本文字数:2191 字

    阅读完需:约 7 分钟

不情愿的守门人:关于全栈开发者的迷思

关于全栈开发者,人们存在一些迷思。人们可能会认为全栈开发者是非常厉害的人,他们无所不知,既懂后端又懂前端,一个人可以包揽所有的编码工作。但事实是这样的吗?作者从企业招人的角度和自己作为一名前端开发者的角度剖析了全栈开发者这种角色,观点非常新颖。以下内容翻译自作者的博文。


作为一名 Web 设计师,在我的大部分职业生涯中,我都非常愉快地与程序员、工程师和拥有计算机科学学位的人共事。在这种共生关系中,每一方都有一个安全且明确的工作角色,并且能够从事他们最擅长的事情,享受他们的工作。


计算机科学家们并不会把全部时间花在写代码上,他们做架构,我负责完成通信、表单和互动方面的事情。我们都需要写代码,因为我们是在做 Web 开发,但我们以不同的方式编写代码,以实现不同的和互补的东西。


但对于那些根本不写代码的人来说,事情就没有那么明显:他们很容易认为写代码的人会包揽所有的代码——因为对于代码门外汉来说,所有代码都是一样的。


这种误解造成了糟糕的后果,而非编码人员通常是招聘技术人员的人,这反过来加剧了这种后果。万恶的资本主义总是从最少的资源中榨取最多的价值,因为这是他们赚取利润的方式。如果他们能找到愿意包揽所有编码工作的人,那么就可以极大地减少最重要的开销:人。


因此,市场上就出现了全栈开发者,就像从肮脏的胎盘中破茧而出的强兽人:更强大、更好,同时问题也更多。


为什么会有问题?HTML、CSS、JavaScript、Python、C#和 SQL 都是代码,但它们实际上是完全不同的代码,适合不同类型的人。以前端技术为例:HTML 是一种元语言,与语言、叙事和意义密切相关,属于作家的领域。CSS 属于印刷师和图形艺术家的范畴,而 JavaScript(在这里通常指客户端,但它其实是计算机科学家使用的真正的编程语言)用于处理数据传输和事件。


也就是说,如果你让某人负责所有这些事情(包括 API 和关系数据库设计等等),那么他们在某些领域很可能会比在其他领域要薄弱得多。更糟糕的是,他们往往没有兴趣去改善他们没有意识到的领域或者他们没有获得成就感的领域。根据我的经验,男性更擅长于 JavaScript 或 Python,并通常会从中获得更多的赞誉,但却很少能够从 CSS 技能中获得这些。CSS 让页面看起来更“漂亮”,偏向于“女性化”一些。


一个全栈开发者(实际上是一位同时编写 HTML 和 CSS 的计算机科学家)需要对所有代码负责,尽管这些代码的语法和目的存在根本差异,并成为某些类型代码(一些人根本不关心写得好不好)的守门人。这有两个不利的影响:


  • 糟糕的代码质量;

  • 一群能够(并且喜欢)写出好代码的人却失业了,只能在一旁嘀咕“WTF”。


让人们成为这种守门人的最明显的问题之一是糟糕的 HTML 输出质量。大多数全栈开发人员来自计算机科学背景,他们在学习程序控制结构同时并没有学习 HTML 的文档结构。他们并不擅长这些,但我们却他们也承担了这些工作。


对于“经典”的计算机科学家来说,CSS 可能非常难以捉摸。像级联这样的功能可能让他们摸不着头脑。为了让 CSS 更容易编写和管理,他们用他们更熟悉的东西把 CSS“吃”掉了,于是出现了 CSS-in-JS。


从技术角度讲,CSS-in-JS 通常被定义为一种解决方案(从业者的定义)或者一种问题(反对者的定义)。我认为它不会让 CSS 变得更好或更糟——它只是一种不同的编码方式。但这并不是说它不造成严重的文化问题:


将 CSS 放入 JS 中,那么任何想要编写 CSS 的人都必须学习 JavaScript。而且不仅仅是 JavaScript,还很有可能是 JavaScript 的另一个特定的“风味”,比如 React。更糟糕的是,JavaScript 爱好者不希望在他们的地盘上使用 CSS。


我最近在一家公司工作,这家公司里有数十个全栈开发人员,却没有前端开发人员。我们要开发一个网站,但没有人懂 Flexbox,除了我。当然,我很乐意提供帮助,但我必须学习 React 才能完成手头的工作。所幸的是,我很快就学会了,但换了另一个 CSS 专家可能就没有那么幸运。CSS 专家能给你带来的价值是他们的 CSS 技能,而不是他们的 JavaScript 技能,所以将 JavaScript 作为对他们的一项要求是荒谬的。


总之,我认为我们需要解决以下几个问题:


我们需要意识到这是一种剥削。虽然有一些干得很愉快的全栈开发人员,但他们承担了太多的责任,而且他们其实不愿意或应当为所有事情负起责任。


我们需要解决 HTML 和 CSS 被低估的问题:性别偏见。如果没有那些为计算机科学做出创举的女性,我们也就不会有计算机科学,但现在男性却“反客为主”。任何算不上“真正的编程”的东西现都被认为是微不足道的、愚蠢的,更适合女性做。对于抱有这种想法的人,应该狠狠地揍他们一顿。


我们需要重新审视关注点分离原则。为了完成某些事情,却要花大力气掌握所有的东西,这对人们来说是个沉重的负担。我们现在用自包含组件来概念化设计,这是件好事,但它应该是一种心理模型,不能造成技术方面的抢夺。


最重要的是,我们需要教育那些根本不写代码的人,不同类型的代码可以用来完成不同的事情,以及每个人的对代码的理解和写代码的方式存在差异。希望通过这种方式能够让更多的人编写适合自己的代码,而不是花时间在焦虑上,比如不知道自己在做什么,或者承担了太多的责任。当然,这并不是说如果你愿意承担编写 JS、CSS、HTML、SQL 和 C#代码的任务或者有足够的时间也不应该去写这些代码!


查看英文原文:https://medium.com/@Heydon/reluctant-gatekeeping-the-problem-with-full-stack-e9ad836570f6


2018-12-10 00:002909
用户头像

发布了 731 篇内容, 共 480.1 次阅读, 收获喜欢 2008 次。

关注

评论 3 条评论

发布
用户头像
给作者点赞!
假设你用的java(或c#),正常智商 + 中偏上的自学能力,往好了说,你3年可以成为一个高级程序员,我说的高级并不是说工作3年(工作5年以上的渣渣我也见了不少)或者拿高薪的,而是你真正理解语言、理解设计模式,明白这些特性是用来处理什么问题,什么场合下使用、各种框架执行原理是什么,扩展点在哪里。
即便你用node.js一样也要花这么多时间,因为难点并不在语法,而是本身就需要时间去接触各种场景,去思考

这种强度的学习下简单学学前端,早点现成的前端框架用用应该可以,不过想深入真的很难
即便深入了你会忘得很快
即便你记忆力超级好,你也来不及学习新的东西,因为后端更新很快,前端比后端还快..

最后你前后端跟专业的比都是隔渣渣,但是很多歌公司抢着要你,因为你啥都会啊,但是工资不会太高,为啥? 你一个前后端都业余的做的东西比人专业的做得好,你做不好公司咋赚钱,没钱有你的高工资?
而且会经常加班,为啥?招全栈的目的就是为了省钱
展开
2018-12-10 13:57
回复
用户头像
如果同时负责html、css、js就算全栈的话,那作者可能对全栈有误解
2018-12-10 11:37
回复
没有更多了
发现更多内容

嘉为蓝鲸 WeOpsV5.22&V4.22 接入大模型:打造 AI 创新运维场景

嘉为蓝鲸

智能运维 #WeOps

小程序容器技术驱动SuperApp生态重构:前端框架新范式

xuyinyin

淘宝天猫店铺商品API接口全方位接入指南

tbapi

淘宝API 天猫API 天猫店铺所有商品接口 淘宝店铺所有商品接口

国产CPU品牌汇总以及作用简单介绍

行云管家

信创 国产化

《算法导论(第4版)》阅读笔记:p134-p155

codists

算法

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(4)

HarmonyOS SDK

harmoyos

Amoro + Flink CDC 数据融合入湖新体验

Apache Flink

大数据 flink 实时计算 Flink CDC

深入解析:AI 智能体的八个关键概念

测试人

人工智能

SpringBoot性能优化的12个小技巧

电子尖叫食人鱼

spring

宫格导航--纯血鸿蒙组件库AUI

华哥的全栈次元舱

AIGC低代码平台 纯血鸿蒙组件库 宫格导航 AI 极客 免费体验

重磅预告!《AI融合高等教育白皮书》即将发布,专家集聚解读先行探索,邀您共同见证

ModelWhale

人工智能 AI+学科白皮书 人工智能通识教育 人工智能教育

案例解读:CST如何直接导入弯折后的PCB

思茂信息

cst CST软件 CST Studio Suite

有哪些类似于jobleap.cn的职业发展相关平台

Y11

求职 找工作 就业 失业

webgl技术在3D展示中的应用

北京木奇移动技术有限公司

软件外包公司 webgl技术 3D展示

【等保知识】过等保单位如何选择备案地?新政策依据是什么?

行云管家

等保 等级保护 等保测评

【融麟科技】WeOps赋能CMDB与自动化管控驱动企业IT资源高效管理!

嘉为蓝鲸

CMDB 智能运维 #WeOps

MCP+A2A协议如何推动AI智能体进化为超级分布式网络

测试人

人工智能 软件测试

智能运维平台 OpsPilot:Jenkins 流水线全链路优化实践

嘉为蓝鲸

智能运维 #WeOps OpsPilot

区块链ETF软件系统的维护

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

大神4000字带你深入Activiti流程引擎,Github标星66.3K!

程序员高级码农

Java 程序员 计算机

备份历史可查 + 元数据留存,助力制品版本追溯与合规审计

嘉为蓝鲸

DevOps 智能运维 制品库

“深时数字地球”国际大科学计划系列工作坊持续开放!专业友好可复现,赋能科学智能生态合作(2)

ModelWhale

科学智能 DDE 深时数字地球 AI4S

开源鸿蒙智能手表生态暨新品发布:开启穿戴产业新纪元

极客天地

【HarmonyOS 5】多目标产物构建实践

深海的鲸同学 luvi

鸿蒙 HarmonyOS DevEco Studio HarmonyOS SDK应用服务

HarmonyOS运动开发:如何绘制运动速度轨迹

王二蛋和他的张大花

鸿蒙

区块链ETF软件系统的开发

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

“深时数字地球”国际大科学计划系列工作坊持续开放!专业友好可复现,赋能科学智能生态合作(3)

ModelWhale

科学智能 DDE 深时数字地球 AI4S

Taro on Harmony C-API 版本正式开源

京东零售技术

系统人看过来!六大要点助你搞懂进销存系统!

积木链小链

数字化 智能制造 进销存系统

提供真实场景需求,全球DePIN项目总链上市值已达71亿美元

PowerVerse

区块链ETF软件系统的核心功能

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

不情愿的守门人:关于全栈开发者的迷思_大前端_Haydon_InfoQ精选文章