发布于 2026-01-05 2 阅读
0

艺术学院如何让我为编程做好准备

艺术学院如何让我为编程做好准备

在我工作的这家创业公司,工程部门的很多同事都有着精彩的职业经历——有机化学、教育、计算机科学、出版、数据等等,不胜枚举。我个人在转行软件开发之前从事的是传统插画:主要是粉彩、油画和丙烯画。

虽然我通常不会因为非传统背景而受到批评,但我认识一些人,他们把艺术仅仅等同于情感表达,把技术仅仅等同于数学和逻辑。我认为编程既是艺术,也是科学和实用工具。基于此,我想分享一些我在艺术院校学到的经验,这些经验我每天都在工作中运用。

抽象表达往往能带来更好的沟通效果。

当我提到“抽象艺术”时,很多人会想到杰克逊·波洛克蒙德里安,或者毕加索一些比较“另类”(通常是立体主义)的作品。就我个人而言,我非常喜欢在蒙德里安的页面上看到的这段引言(链接见上文):

“我希望尽可能接近真理,因此我将一切都抽象化,直到我得出事物的基本性质。”

作为一名开发者,我非常欣赏这个想法——我可以剔除项目中所有不必要的细节,直到只剩下最精简、最美观、最简洁的极简版本。项目中的代码越少,整体就越清晰;结构越简单,色彩就越鲜艳。这并不意味着一个项目应该有“正确”的代码行数、字符数或方法数;只是我追求的是通过简洁实现优雅(当然,真正实现这个略显高远的目标又是另一回事了😁)。

作为一名像素艺术家,我经常思考抽象的问题——在我的涂鸦变得难以辨认之前,我可以去掉多少细节?哪些内容是必须保留的?我在设计课程界面或编写文档时也会问自己同样的问题。我会反复思考(真的会思考很多😳)应该保留多少灵活性——多少配置才算过多?多少配置又算过少?在保持服务功能和实用性的前提下,我可以抽象掉多少复杂性?编写文档也很难——将模糊不清的共享知识和个人知识提炼成易于管理的要点、示例和/或图表,本身就是一门艺术。

同样的道理也适用于口头解释。根据听众(无论是同事还是编程新手)选择合适的细节程度,可以让你清晰地与他们沟通。

我们有时会把库或工作流程称为“黑盒”——我认为这是一种很有价值的工具,也是一种很好的抽象方式,无论对于初学者还是经验丰富的开发者都很有帮助。有时候,我们不必了解所有事情的运作原理,这很有意义——我们可以更专注于我们正在做的事情。

不要对你的作品过于珍视。

在我母校的学生和校友中流传着一个关于一位老师开设的特别难的绘画课的故事。整整一个学期,学生们每周花六个小时,用铅笔在纸上画同一个模特,摆着同样的姿势。他们倾注了全部心血,几个月来痴迷于光线、形体和微妙的阴影变化。课程结束时,在小组点评之后,老师做了最后的指导:

“把它抹掉。”

经过一番苦心钻研,学生们要擦掉每一笔精心绘制的线条,直到纸张变得灰蒙蒙的,毫无生气。有人说这很残酷(说实话,我也不否认),但这却以一种令人难忘的方式教会了他们一个非常重要的道理:不要太在意自己的作品——重要的是你完成了它。你已经从中吸取了经验,而且(正如老师会说的那样)——“你画过一次,你就能再画一次。”

这个想法在我作为开发者的工作中发挥了重要作用,无论是代码审查中的批评,还是眼睁睁看着自己写的成千上万行代码被一次性从项目中删除。你经常会听到有人说“不是你的代码!”,这话一点没错!无论这些代码现在存放在哪里,我从过去的工作中积累的那些宝贵(有时甚至是奇特的)知识对我来说都弥足珍贵。当有人指出我代码中存在的奇怪模式或改进空间时,我会毫不犹豫地删除之前的“草稿”,转而寻找更好的解决方案。

对工作不满意是品味发展的标志。

这件事对我来说意义非凡。我在艺术学院的时候,注意到自己对作品的感受有一种规律:

  1. 我会非常努力地工作,创作出一些让我引以为豪的作品。
  2. 我会看到我的同龄人、导师,甚至是著名艺术家创作的优秀作品,然后开始将自己的作品与他们的作品进行比较。
  3. 于是,我感到沮丧,对自己的作品感到不满——我以前所做的一切都显得幼稚粗糙;我的双手无法创造出我脑海中所看到的东西。
  4. 经过数天/数周/数月的与自身技能水平的斗争后,我终于开始再次创作出令自己引以为豪的作品。

对于学过编程的人来说,这听起来可能很熟悉——至少在我教网页开发的时候,我的学生们经常这样说。我的一位绘画老师告诉我,品味和技能的发展速度和时间都不一样。如果你看不到自己作品中的缺陷,那么你可能需要进一步改进和提升你的技能。如果你觉得自己的作品有所欠缺,那么你的品味水平已经超越了你目前的能力水平。这样想帮助我更好地应对自我怀疑,并且(基本上)摆脱了可怕的冒名顶替综合症。

感谢阅读!如果您还有其他从看似无关的领域汲取经验并运用到科技工作中的经历,欢迎分享。

文章来源:https://dev.to/annarankin/how-art-school-prepared-me-for-programming-33l2