傲慢与偏见?设计师要会写代码,那开发要会做设计咯~

  • 2019 年 10 月 7 日
  • 笔记

静电说:之前写过一篇名为《一像素的恩怨情仇》的文章,讲述的是前端拒绝按照设计师给出的设计稿去复现线上版本,所引发出的一系列问题。 其实这篇文章是静电在看了知乎上的一篇问答《开发人员拒绝按照UI标注还原设计》所做的一篇回应,当时在某酷发表后设计师的反馈非常热烈,浏览量创历史新高。

知乎的这篇原文在此网址:https://www.zhihu.com/question/25528485/answer/31664756 有兴趣的设计师可以复制到浏览器翻翻看,相信你看完后会觉得底下的回答,特别是高赞的回答有多傲慢和可怕。

说起这个,是因为这两天我在朋友圈里的一个观点,想表达的就是在初学UI设计的时候,不能舍本逐末,在设计都没有学好,图都做不好的情况下就去舍本逐末,追逐一些优先级很低很低的东西。

但是不幸的是,楼很快就歪了,一位开发工程师发了长篇评论,大意就是说,未来设计师是一定要会前端代码的,毕竟前端这种“技术含量很低”的东西他们开发工程师看不上,不愿意做。而且不挣钱,工资低。大牛开发工程师都去做“后端”开发了,就是底层啦,算法之类的。(为了保持良好的讨论氛围和隐私,在这里我就不去截图了,如果你看到也请见谅,我们的讨论始终是平和的。

要知道,抛出这样的言论其实是挺拉仇恨的,你看不上的“技术含量低”的工作,就要抛给设计师去做。美其名曰是全栈设计师,emmmmm,那么咱们来看看现在的设计师都要全能到什么程度了:

第一,要会做UI界面;第二,要会做小广告;第三,要会做公司宣传册;第四,要会帮老大做ppt美化;第五,还要会摄影;第六,要会各种画画手绘;第七,要会画低保真原型还有交互稿;第八,要会C4D,否则设计不够炫酷。如果这还能理解,算设计师本职工作的话。那后边还要加上一条:设计师要把开发认为低端的代码工作也揽过来,写html,写各种前端。

嗯?我感觉在这样下去设计师已经变成打杂的了,下一步应该是拿起扫帚当扫地大妈大爷,这样才能体现出“全栈”的实力。来来,前边这个大神脚抬一下,你工位很脏啊,跟猪窝一样~ 诶诶~你这个模块语法错了,会不会写!要不让大妈帮你?

当个设计师好累,有没有~【哭~】

一. 移动端UI开发现状分析

在十几二十年前,那个网页设计的时代,由于开发流程不完善,分工不明确,很多时候网页设计是由开发工程师来完成的。这个很好理解,可以看看当时的网页的简陋程度。随着技术的进步,我们的分工越来越细,在2006年静电参加工作那年,我所在的中型公司已经有“前端开发工程师”这样的职位了,他们主要负责将设计师产出的设计图稿转换成html代码,并附带一部分js代码交互工作。那个时候,不少设计师其实是多少会一点html代码的,毕竟html代码并不是很难的内容,而且跟工作关系密切,这不难理解。

97年的苹果网站

但随着时间进程继续往前发展,前端工程师这个职位已经在网页设计时代成为互联网公司的标配,设计师专注负责出图和设计,前端工程师承担起设计和代码的转换,在一定意义上说,这对前端工程师的要求是越来越高的,单纯的html只能是初级中的初级,如何配合开发人员完成代码嵌套,以及完成网页端一些复杂的交互工作,更成为这个阶段前端工程师的重点。另一个层面上,前端工程师需要对审美有涉猎,也需要对开发原理有了解,这样他们才能更好的把设计稿还原出来,同时方便开发工程师的工作。因此,这是个不可或缺的职位,也是分工细化的必然结果。

随着互联网的技术越来越成熟,一部分设计师和前端工程师不满足于当前的技能要求,开始相互渗透和补充,“全栈设计师”这样的职位定义也开始流行起来。可以说真正完成,既能开发,又设计很出色的人,是极少的。这部分“全栈设计师”一大部分会偏重于某一个方向,比如开发,或者设计。比如你开发掌握的还算不错,但是设计的话,基本就是七十多分的水准。反之亦然。可以说,能掌握到这种程度的从业者,其实水准已经相当不错。但是我们要知道,术业有专攻,在各方面能全面发展的,只能是极少中的极少。

在当时倡导快速开发及万众创业的时代,不少标榜“全栈设计”的从业者在一些中小型公司非常受欢迎,原因很简单,一个人就可以完成两三个人的工作,用人成本上很经济实惠。而且这部分公司对设计或者代码水准要求并不高,能做出来就好,及格就行。

在这个阶段,传统的网页端设计逐渐开始向移动端设计方向发展。开发技术也产生了不少变化。从之前设计出图-前端切图生成html-套代码的方式,变成了设计师出UI设计稿-开发工程师(前端)复现界面-后端工程师开发底层逻辑等形式。

大家可以看到,之前门槛稍低的html已经逐渐式微。除非是全html5页面,大部分的native APP则需要开发者使用Xcode或者java等开发环境来实现所谓“界面的复现”工作。这已经不是一个低门槛的工作,也是现在的UI设计师不太可能完成的。

二. 傲慢和偏见从何而来?

简而言之,目前的应用开发流程大致为:设计出图-开发工程师(前端)-开发工程师(后端)。在这样的情况下,傲慢和偏见就来了,鄙视链也就来了。 后端开发工程师瞧不起前端复现界面的工程师,毕竟后端代码深奥无法捉摸,前端只需要利用后端提供的接口,把后端工程师的功能调用就可以。

加上工资等等的因素,越是看不见摸不着的,才越显得高深。此时一部分后端开发工程师内心的魔鬼就跳出来了,看不起工作流程中的某些职位,觉得这些工作低端,他们不费吹灰之力就可以完成。

开发工程师鄙视链

这种低端的工作,怎么能由自己做呢?干脆推给设计师去做就好了啊。可是,经过我上面的分析,你觉得设计师能做吗?调查100个设计师,估计99.99%的设计师宁愿去学个C4D和插画,也不愿意去搞代码,毕竟不伦不类。Xcode什么鬼?java什么鬼?

因此,这种天真的,想当然的美好是不可能存在的。他们只能存在某些人的想当然之中。

三.职位的存在就是合理的

静电的观点一直是中立和温和的。互联网科技行业现在已经愈发成熟,每个职位的安排也是从产品开发能否顺利完成的角度去考量的,不是从所谓的“低端”,“没有技术含量”这样的偏激思维去考量的。

况且,我认为在这个工作链条中,运营,产品,交互,设计,前端开发,后端开发,等等都是缺一不可的,不存在高低贵贱之分。如果拿这样的观点大张旗鼓的去宣传,我只能说这个人“情商”需要加强一点了。 你会在你们公司对着设计说,写前端代码这种没有技术含量的工作是你设计的工作,不是我们“高贵”的后端开发的吗? 你能对着一个运营或者销售同事说,你们这些职位没有技术含量,低端,lowB?这个时候其实已经无关乎技术了,情商似乎更重要?

突然就想发这张图了~

职业为什么要分出贵贱?举个例子,在建筑行业,建筑设计师设计了一栋超级炫酷的建筑,一线工程师和工人把他们建造和复现出来。你能说一线工程师和工人没有技术含量?难道房子建造出来全是“建筑设计师”的功劳?

我想说,每个行业和职位都有他的专业度和难点,不要觉得他们看起来很简单,就去瞧不起或者鄙视人家。这只能说明自己见的太少。静电认识很多位在前端开发上造诣很深厚的开发工程师,大多谦虚低调。因为他们知道,前端不是随便调用个Ajax接口就合格的。有些大神甚至可以编写出“星际争霸”的网页版游戏。有些甚至可以使用前端技术在浏览器上玩出花,开发出让人惊叹的应用,这就是前端的魅力。

其实我想表达的是,不要随意轻视每个职位。作为专业技术人员,更应该跳脱出那种傲慢的心态,摆脱那种世界没了我就无法运转的态度。多去体验下不同的人和事物,让自己的心态更加平和谦逊。这样才能在自己的职位上发挥出更大的优势。

在这里还是想再唠叨下T型人才理论,一个人大致分为两个层面,广度和深度。不同的加点会对自身产生影响。

一般来说,遵循3:7分配是比较合理的,如下图:

在这里理论里,还有一种失衡态,第一种平庸,而后边两种都很可怕,片面追求某一个维度而忽略了其它维度对自身带来的影响。这两种状态产生的从业者,要么是神,要么是偏激的疯子,或者耍嘴皮子的人。

所以,千万不要做电影里毁灭世界的科学怪人啊~小时候,我们的愿望大概会是:做个科学家,为人类做贡献。但是千万别成为一个走火入魔的科学家啊~

电影中的科学怪人真不少 主角拯救世界很忙

四.问题来了,设计师要会前端吗?

要!非常必要!设计师有必要了解开发原理。请注意,在这里不是让设计师去写代码,而是要懂得,这个东西是如何实现出来的。达到懂而不做的程度,是最理想的状态。如今,每一个职位之间都会产生交叉和融合,在这个基础上去谈分工合作,效率会最大化。

互联网行业中的任何职位的从业者,都应该有这样的觉悟,就是你会去了解其它职位的工作内容和工作重心,这样在沟通的时候更能用自己本职的技能来促进整个产品链条的运作。设计师是这样,开发工程师也是这样,试想,不懂审美的开发工程师,能复现出怎样的UI设计稿?不懂开发或运营或设计的产品经理,能做出怎样的优秀产品?

之前听说过一个逸闻,被誉为产品经理的神级人物张小龙,会带着他的团队定期去深山“修炼”。我想通过这种方式,一个人才能认清这样一个道理:感受和体验这个世界越多,自身就越谦卑,知道自己的渺小。在刚工作的时候,静电也曾经偏执的认为,设计可以改变世界!后来,我发现这句话不太严谨,应该改成:设计确实可以改变世界,但是要和其它不做设计的小伙伴一起。

在这里截图静电朋友圈的一些留言,观点不辨不明,感谢各位小伙伴的发言(已尽最大程度做了马赛克处理)。供大家感受和参考: