NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 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:002550
用户头像

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

关注

评论 3 条评论

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

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

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

95-后程序员一出校门就拿年薪-30多万?,android开发文档百度云

android 程序员 移动开发

@Android程序员:不是安卓不行了,handler内存泄露

android 程序员 移动开发

Android - singleTask启动模式详解(1),kotlinnative原理

android 程序员 移动开发

Android 9,flutter安装教程2019

android 程序员 移动开发

Android AutoService 组件化,android完整项目源码

android 程序员 移动开发

35岁教师下岗,自学编程能给我的生活带来多大变化,android指纹识别开发

android 程序员 移动开发

5月份,京东 Android开发面经分享!,kotlin协程并发

android 程序员 移动开发

Android 11适配指南之系统相机拍照、打开相册,Android开发两年

android 程序员 移动开发

Android AOSP 6,flutter面试题

android 程序员 移动开发

5年内被辞退3次,35岁程序员该何去何从?百度,这些年Android面试的那些套路

android 程序员 移动开发

6年老Android2019面经总结,2021年抓住金三银四涨薪好时机

android 程序员 移动开发

8年老Android开发谈;Context都没弄明白凭什么拿高薪?

android 程序员 移动开发

37岁老码农现身说法:那些年,我走过的弯路,手把手教你5G时代Webview的正确使用姿势

android 程序员 移动开发

4年Android开发13K,刷完这份1307页Android-面试全套真题解析,跳槽涨薪15K

android 程序员 移动开发

Android - 运行时权限一个工具类搞定,让人茅塞顿开

android 程序员 移动开发

Android 10手势导航的侧滑返回效果优化策略,2021最新Android大厂面试真题大全

android 程序员 移动开发

4轮字节面试后杳无音信,自己是在了备胎池了吗?感觉我的Android开发要凉了呀

android 程序员 移动开发

8年老Android开发谈;简化UI都没弄明白凭什么拿高薪?,android路由框架

android 程序员 移动开发

Android - 更安全地保存静态密钥,android三种开发模式

android 程序员 移动开发

8年老司机教你,如何写出一份“有理有据使人信服,Android开发者必看避坑指南

android 程序员 移动开发

@Android程序员:到底是Android不行了,1-3年的Android开发工程师看过来

android 程序员 移动开发

Activity显示界面——说说View的那些理不清的关系,移动端h5页面适配

android 程序员 移动开发

Android - singleTask启动模式详解,腾讯Android面试

android 程序员 移动开发

Android 11 中的存储机制更新,android项目开发实战入门光盘文件

android 程序员 移动开发

3个月8个Offer!2020字节跳动+京东,移动应用开发框架

android 程序员 移动开发

50w字+的Android技术类校招面试题汇总(附答案,kotlin枚举反射

android 程序员 移动开发

Activity切换效果,androidwifi密码

android 程序员 移动开发

Android - AndroidStudio的下载、安装与配置,android开发艺术探索下载

android 程序员 移动开发

Android - 开发常用工具类Utils,真的已经讲烂了

android 程序员 移动开发

5G时代已经到来了,你还觉得Android行业凉了嘛?,Android面试官

android 程序员 移动开发

606页Android最新面试题含答案,助力成为offer收割机,已开源

android 程序员 移动开发

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