艺术和手工艺。创造力和勤奋。将平凡的事物变得不平凡,并加入天才和个性的色彩。一位绣花工人花费数小时用简单的彩色线创作艺术品,而编程也是如此——用文字和数字花费数小时编织出有目的的东西。
最近,我开始学习 JavaScript,大约在同一时间,我也开始自学十字绣。在学习这两者的过程中,我体验到了学习像十字绣这样的传统工艺和像编程这样的现代工艺之间的相似之处。学习传统工艺可以教会我们学习编码的新方法,因为学习传统工艺所获得的技术和技能可以很容易地转移到像编程这样的现代工艺上。
十字绣是将不同颜色的线组合起来,在画布上绣出小小的 X,从而创作出图案或文字,或两者兼而有之的简单过程。就是这样。小小的 X。 然而,当这些微小的针脚组合在一起时,就能呈现出精致的视觉效果,具有细腻的阴影甚至深度。编程呢?小小的文字和数字。
相似之处和不同之处
所有工艺的共同之处在于创造过程。工艺是创造新事物的行为,无论你是用电脑键盘还是用针线来做这件事,你都在用自己的双手设计和创造一些新的、独特的东西。可能存在相似的版本,但没有一个完全像你此刻正在创造的东西。可能性是无限的。所有工艺共有的另一个特点是,你必须掌握某些技能和技术,并练习这些技能和技术才能创造出你的产品。翻过织物,背面和正面一样整洁干净,就像大师级程序员在软件引擎盖下的代码一样。
在比较传统工艺和现代工艺时,我们还需要记住一些差异。传统工艺需要更多的实际动手操作(使用针线而不是敲击键盘)和体力劳动。在编程中,重复的过程可以通过几行代码自动化,而在十字绣中,数百针中的每一针都是手工完成的。
手工制作的工艺品通常不是完美的,但那些精通的人往往非常接近完美。这是人与机器的较量,机器通常被设计成尽可能少地犯错或在过程中消除错误。一方面,传统工艺更加独特,更难复制。你可以完全相同地复制或再现软件,但做两次相同的十字绣项目永远不会得到两个完全相同的副本。由于代码存在于计算机或互联网上,并且可以很容易地复制,你可以让你的作品供他人使用,这就是为什么像编程这样的现代工艺可以对世界产生更大的影响,并惠及更多人。
尽管存在这些差异,但传统工艺实际上可以教会我们很多关于编程和编写代码的过程。接下来,让我们看看我们可以从传统工艺中学到什么。
十字绣和编码——两者都有架构
编写代码和工艺背后的动机非常相似。这都是关于创造过程和从事我们喜爱的事物。编写代码和制作十字绣项目通常也都有一个目的。你可能会选择开始一个新的十字绣项目,将其用作装饰品、礼物,或者仅仅是为了好玩。编写代码也是如此,但代码还具有解决某些问题并使你能够构建对人们有帮助或可以改进或自动化事物的能力。它是功能性的。
让我们从过程的最初开始。一个新的十字绣或编码项目总是从一个想法开始。你集思广益。你弄清楚你想构建什么样的网站或你想开发什么样的软件。你决定你想绣什么样的十字绣图案。你可能会在 Pinterest 上做一些研究,为你的十字绣项目寻找灵感。你可能会浏览 GitHub,看看其他人编写的哪些代码与你想编写的代码相似。
接下来,你考虑项目的架构和设计。你希望它看起来像什么?你希望在十字绣字母中使用什么样的字体?它会有多大?你将使用什么颜色的布料和纱线?然后,你将你的设计理念转换成一个方格网格,标明每个针脚的位置以及你将使用的纱线颜色。对于软件,你考虑你想在软件中实现的功能和特性。设计会是什么样的?你希望用户界面看起来像什么?你的代码的某些部分将如何协同工作?然后,你继续编写伪代码,作为将你的想法转化为代码的第一步。
在设计过程中,给自己一些余地很重要。不灵活会扼杀创造力。不要把所有东西都设计得一丝不苟。在你的脑海中听起来很棒或者在纸上绘制十字绣图案时看起来很棒的东西,实际上可能在织物上看起来并不好。给自己一些空间,以便在进行过程中调整事物。也许你想在一侧减少几个针脚,在另一侧增加几个针脚,也许你最终决定不同的纱线颜色看起来更好。软件也是如此。并非所有你最初计划的东西都可能在生产中很棒,或者实际上是用户想要和有用的。
下一步是弄清楚你需要哪些工具。你的十字绣项目需要什么质量、颜色和尺寸的布料?什么尺寸的绣绷和针?什么颜色的纱线以及多少?你手边有剪刀吗?你家里有你需要的一切吗?还是你必须外出购买一些工具和材料?对于编写软件,你需要确保你有一台可用的计算机,下载了文本编辑器甚至 IDE,并安装和更新了你想使用的任何软件。你想使用哪种编程语言?哪个数据库?你还需要哪些其他技术?
在网上查找学习资源,例如 YouTube 视频、教程、文档或研究书籍和手册。掌握基础知识并加以练习对于任何想要达到 10 级能力的人来说至关重要。学习如何缝纫并进行大量练习。当你看到精美的针线活时,针脚中的线不会扭曲而是平放。针脚很优雅。学习 JavaScript 的基础知识,并花时间加深你的知识,但你真正学会如何构建你的项目和使用你的工具只能通过实践。试错是最好的学习方式。你刚学的新针法不起作用?拆线并重试。你的代码没有运行?注释掉部分代码,找出问题所在。
重用资源
创建项目的一个重要步骤是找到正确的资源并正确地使用它们。利用可用的资源来节省时间和精力。不要试图重新发明轮子。与其徒手绘制你的十字绣设计并花费数小时绘制网格图案,不如在网上找到你喜欢的设计并对其进行修改。使用免费网站将你的设计转换为网格图案。也许你可以重复使用你的一些旧图案。考虑在 Etsy 上购买十字绣图案,而不是自己制作。这可能会花费你几美元(它们通常非常便宜),但可以节省你大量的时间、精力和挫败感。在编写代码时,找到你可以使用的合适的库和框架,而不是完全从头开始构建你的网站或软件。看看你是否可以重复使用你的一些旧代码。寻找其他开源代码,这些代码可以帮助你完成你的项目。找到可以让你更快更有效地构建项目的软件。
开始——mise en place
在你开始开发过程之前,请确保你已准备好所有工具并在你面前。剪下布料,将其放入绣绷中,铺开你需要的纱线颜色,准备好剪刀和针,将你的网格图案放在你面前,并在你的布料上绘制一个网格,这将使你更容易遵循你的图案并确定每个针脚的位置。在编写软件时,请确保你的笔记本电脑已充电,你可以访问互联网,你已下载并更新你将需要的所有工具,并且你已在屏幕上打开你的工具。调出或将你可能需要的任何文档或教程添加为书签,这样你就无需在工艺或开发过程中进行搜索。
找到一个好的起点
在十字绣时,你通常会在将织物放入绣绷之前将其对折两次,以便找到它的中心,这将是你开始绣制你的设计的地方。在编程时,弄清楚你的项目的核心部分或功能是什么,并围绕它构建。例如,在构建网站时,先构建后端,然后再担心用户界面和设计。
系统地工作。不要只是这里缝几针,那里缝几针。而是分段绣制十字绣。编程也是如此:一个接一个地开发功能,而不是在不同的功能之间来回跳转。
可持续地工作。如果你遵循规则和正确的技术,这将节省你的时间、精力和材料。在十字绣中,这将使你避免使用过多的纱线,从而节省你的钱,并且它还可以防止错误并节省你的时间。在软件开发中,遵循最佳实践将使你避免最终背负大量的技术债务,并将节省你调试和改进程序的时间。
拆除所有错误
你很可能会在十字绣你的设计或构建你的软件时犯错误。修复错误是所有工艺的重要组成部分,并确保在错误发生时查找它们并立即修复它们。最坏的情况是,你将不得不拆线或剪断你所有的纱线或扔掉项目,或者你将不得不删除你所有的代码并重新开始。
当事情第一次没有成功,并且你损失了一点点纱线和织物或一点点时间时,这不是世界末日。重要的是学习如何以正确的方式调试和修复事物。学习如何阅读错误消息,注释掉代码的某些部分并运行它,以便找到哪个部分导致了问题。不要只是剪断纱线,而是真正地一针一针地拆线,即使那样会花费更长的时间。编程和十字绣都涉及大量的试错。
最重要的是,你要保持耐心,在感到沮丧时多休息一会儿,暂时远离项目,并在需要时寻求帮助。归根结底,工艺,无论是传统的还是现代的方式,都应该是有趣和富有创造力的,而不是给你带来痛苦和沮丧的东西。
通读本文后,你可能已经注意到,十字绣和编码实际上比你最初想象的更有很多共同之处。如果你是一名程序员,无论是专业的还是业余的,我只想鼓励你尝试一种传统的工艺,如十字绣、编织、缝纫等,并探索它将教会你什么,从中学习,并将一些课程和技巧融入到你的日常编程工作中。
5 条评论