如何成为一位优秀的前端工程师(译)

  • 白小霁
  • 2 Minutes
  • September 30, 2017

原文 译者/白霁

我昨天在Yahoo!做个采访,采访内容主要是让候选人问一些问题。必须强调一下,他们提大多数的问题令我大失所望!我喜欢听到一些能够表明在Yahoo!工作有着明确的激情的问题!昨个,我听到最好的一个问题就是:「如何成为一个好的前端工程师?」这是一个值得大众一起去讨论的问题。

起初,前端工程师需要知道 HTML 、 CSS 和 JavaScript 。并不用擅长的使用他们,你真的只要知道他们三个就好了。这不意味你要成为这三个领域的专家,而是你要能够使用他们独立的完成大多数的业务工作。

一个好的前端工程师有快速的上手能力。对于所有人而言,驱动当前网页发展的技术不是一成不变的。毫不夸张的说,事情每天都在变化,这取决你是否要了解这些变化。时常思考和内化(消化)出现的新科技和范例,这已成为你的生活,你不能永远满足于你时至今日所知道的一切。网络的明天将会彻底的不同于今日的网络,那你的工作就是去理解这些不同对你web application的影响。

有许多计算机科学的部分被统一称为科学。前端不是科学而是艺术。一位艺术家不仅了解交易的工作,还知道使用他们的方法。一个问题的解决方案可能仅仅适用在一个情况下,失效与其他的情景。在Web application的前端界,针对一个问题有着许多的解决方案。他们当中没有一个是错的,但是其中一部分相比其他更受青睐。一个好的前端工程师知道何时去使用具体的解决方案和何时考虑其他的解决方案。

一个好的前端工程师能够和涉及工作的各方有效的沟通。在任何给定的时间里,一个前端工程师至少有四个客户的答案:

  1. 产品经理 :这是一群对产品方向负责任的人。他们对怎样的应用提供给用户和使用这样的模式挣钱有着很好的看见。通常,他们会加许多的需求。
  1. UI设计师:这是一群对应用程序的视觉设计和交互模块负责的人。他们关注:什么对用户是有意义的,交互一致性,整体可用性。他们大部分给出富有挑战性的UI设计。

  2. 工程管理部门:实际搭建和维护应用的组织。在一次工程中,主要考虑的是正常运行时间、性能和最后期限。推动工程通常让事情变得尽可能简单,当做出改变的时候不会引进故障点。

  3. 终端用户:应用的主要用户。虽然不会直接和终端用户交互,但是他们的反应是至关重要的,如果一个应用没有用户想用它,便会变得一文不值。终端用户通常要求的应用可以帮助他们个人和其他竞争对手的同类产品提供的功能一样。

所以谁是前端工程师最关心的呢?答案是四个都是。一个好的前端工程师需要了解怎样去平衡需求和四人团的欲望,最后得出一个最优解。沟通炒鸡重要🌈,因为前端工程师们处于这四个团体交流链的顶端。这可能意味着那些炫酷的新特性需要按比例缩小,因为会影响到前端的性能或是推迟设计将会对应用程序的可访问性造成负面影响。作为一个前端工程师,你需要了解每一组来自那里和能够提出让各方都满意的解决方案。一个好的前端像一个大使,会遇见各种各样的变化,需要有这样的心态在日常的生活中。

还有一件重要的事情,我会告诉新手不要仅仅答应接手任务,而没有review code。你必须理解要求做的并不仅仅是BUG提示说:「this isn’t working right」,同样是理解功能和设计的意图。一个任务是增加一个按钮,这一定不是意味着增加一个按钮就结束了。这可能意味着你需要去产品经理那里询问需要添加什么按钮,之后去UI那边确定按钮是否是正确的交互方法。作为一个好前端这样的交流是必须的。

在计算机科学当中,作为前端工程师仅仅是这复杂工种的一种。大多数传统编程概念不能应用,而在很多的软科学领域中应用到众多的技术并在许多的平台使用。作为好的前端工程师必要的专业知识量是巨大的,由于中和各方的需求让知识量变得更加复杂,可最终责任落到了你的肩膀上。专业知识只能将你领进前端大门,但是你所做的应用程序和你与他们协作的能力让你变得优秀。