新鲜松木屑的气味弥漫在空气中,当我打磨凳子最后一个粗糙的角落时,更多的气味飘了起来。我蹒跚学步的孩子高兴地把她自己的积木磨到一边。
木工是我的新爱好。我以前的那些,编码,阅读,写作,让我一直呆在我的笔记本电脑上,一个人呆着。
一份惊喜的礼物埋下了一个想法的种子。小时候,最好的夏日时光是我和父亲将刮木头变成鸟屋、飞机,甚至最终变成 rube goldberg 设备。是时候重新点燃火焰了。
只是它和旧的没有什么不同!
木工感觉奇怪的熟悉。甚至它的多巴胺命中也会触发与编程相同的点。
事实证明,木工最好的部分实际上与软件工程并没有什么不同:
1.您构建自己的工具
最好的软件工程时刻是您构建自己的工具时。那是有目的的工作。
木工也这样做。他们称这种工具为“夹具”。可能会制造一些夹具来满足利基需求(例如钻直孔)。其他的,只是为了省钱。
与往常一样,您必须确定工程时间的价值。
2.工具太多
那里有令人难以置信的各种木工工具,每种工具都针对略有不同的情况进行了优化。想用纹理锯木头吗?反对谷物?需要快速但难看的剪裁吗?需要平滑切割并且不介意需要更长的时间吗?弯曲的切口呢?那只是为了锯!
每个都针对特定用例进行了优化,但除非您有无限的预算,否则您需要决定哪些是您想要做的实际需要的。
任何不得不在 AWS 上选择存储层的人都知道了解您的工具是什么感觉,找出它们最适合什么,以及哪一个最符合您的需求。
3. 有限(非货币)预算
钱不是你唯一的预算。
任何有限的资源都需要谨慎分配。对于软件,预算可能包括硬件限制(CPU/内存)、网络带宽、延迟目标、工程工时等。
事实证明,木工有一个不灵活的预算:物理空间!
我的车库里只有这么多空间(即使在我打扫干净之后)。无论我得到什么工具,都必须与我的工作台一起安装在那里。我必须对我的存储预算花在什么上非常挑剔,而一些心爱的物品,比如锋利的台锯,根本不可能。
4. 先设计,后构建
在这两个世界中,在构建之前勾勒出您的设计会带来巨大的收益。您可以更清楚地了解您将要制作的内容,并弄清楚不同部分将如何相互作用。
否则,您可能不得不放弃几天的工作,因为您转错了方向。
5. 等待
除了木工,你喊“胶水干了!”
从好的方面来说,它可以让您同时处理多个项目。
6. 你有用户!
一旦我的妻子得知我的计划,定制作品的请求就开始滚滚而来。知道我建造的任何东西都有一个热切的接收者在等待它,这就是激励的火箭燃料。
而且由于是我妻子要求的,因此更容易证明购买我“需要”的工具是合理的。
一大区别
通过木工,您实际上可以握住您的作品。
感兴趣?
木工与软件工程具有相同的高度(如果您花足够的时间在胶水上,甚至更高)。
您可以获得相同的快速反馈循环,与用户密切互动,同时避免软件工程中一些更乏味的方面。另外,您永远不会随叫随到。
我明白为什么有些人放弃了软件。
但这不是我的道路,编程太贴近我的心,我的日常工作让我做的不仅仅是编写代码。
但它确实有助于回答我经常问自己的一个问题:
如果我出生在一百年前,在计算机发明之前,我会做什么?
现在答案很清楚了:
找一些东西来建造。