可视化工程师
不写网页的前端工程师,还能干什么
作为前端工程师,很多人的主要工作就是和网页打交道。
而作为前端领域中一个几乎不用写网页的特殊分支,可视化利用计算机图形学和图像处理技术,充分感知和挖掘数据间蕴藏的丰富信息,将数据以图表的形式展现给用户,可以实现很多传统 Web 网页无法实现的效果。
前端工程师为什么要学可视化
现在很多 C 端或者 B 端的互联网产品都离不开可视化。
C 端最著名的例子就是淘宝“双十一”购物节的可视化大屏。B 端产品的例子那就更多了,许多中后台的管理系统,都会用统计图表来显示系统运行的各种状态。另外,很多企业级应用中的态势感知和指挥调度大屏也是可视化非常常见的应用,以及国家大力推动的智慧城市、智慧社区、智慧生活等等。
如果你有关注过,就会发现,可视化在其中都有着非常广泛的应用。也正因为如此,行业内对可视化工程师的需求也越来越大,许多一线的互联网公司都有可视化相关的招聘需求,但是相关的专业人才却寥寥无几。
如何成为一名可视化工程师
一名优秀的可视化工程师,最应当具备的能力就是要根据产品经理和设计师的想法,实现真正贴合用户需求的、灵活多变的、具视觉震撼力,并且充满创意的优秀可视化作品。
这句话说起来简单,但是要做到,绝不是会使用某个库、会调用某个 API 就能实现的。
比如说,现在我们要把一个图表的线条样式,从实线段改成虚线段,那我们就可能不能使用某个现有的图表库来完成。这是因为,有可能这个图表库中并没有提供参数支持线条的虚线。这时候,我们要么放弃这个需求,要么就得换图表库或者自己去修改图表库的源代码。如果我们不放弃,想要自己去修改图表库的源代码的话,其实会遇到更多的问题。因为,这些图表应用不仅业务代码相当复杂,图表库本身的源代码也很复杂,所以,不管是修改代码还是后期维护,我们都会面临很多复杂的问题。
因此,想要成为一名可视化工程师,我们不能停留在可视化现有的库、框架和工具的使用层面上,必须深入技术栈的底层,充分理解数据,掌握视觉呈现相关的技术和基本原理。打好基础之后,再系统地学习可视化领域的方法论,才能提高解决问题的能力。
如何快速掌握可视化
想要学好可视化,我们就必须要了解可视化的体系都有什么。
从图中你可以看到,可视化涉及的内容非常多。
首先,可视化的视觉主要涉及四个部分,分别是理论基础、图形系统、图形库和工具。
看起来内容很多,但我们没有必要全都深入学习。而是应该把重点放在理论基础上,因为随着技术的发展,工具会改变,而基础不会。视觉部分的理论基础就是数学和图形学,也就是说,我们必须要学会如何运用数学和图形学知识,来绘制各种各样的几何图形,这样才能实现更加酷炫的视觉效果。
数据这一块呢,虽然相对比较简单,但是内容也不少。如果我们要深入学习细节的话,压力太大,也很难坚持下去。好在,可视化工程师对数据的理解,会随着业务的深入而逐步加深。所以,在数据部分,我们只要理解解决问题的整体构思和方法论,知道如何从一个可视化工程师的角度去理解和运用数据,就已经足够为我们未来的深入研究,打开一扇大门了。
最后,谈可视化离不开性能,性能往往决定了可视化项目最终所能呈现的整体感官效果。怎么理解呢?举个例子,当你想要通过一段代码,来实现非常具有视觉冲击力的效果时,却发现即使 GPU 和 CPU 都以最大功率运转了,还是没能把你构思的画面,在屏幕上流畅地显示出来。这是为什么呢?
这很大可能是因为性能没有达到最优。也许是你的技术选型和代码实现在渲染方面遇到了瓶颈;也许是你过于关注渲染本身,而忽视了计算;也有可能是核心算法有改进空间。有时候,我们花大力气去调优渲染机制,其实不如换一种更加合理的算法取得的收益更大。上面这些呢,都有可能是导致性能不佳的元凶。因此,在性能方面,我们应该学习的,是如何快速找到合理的性能优化点。