【转载】我为什么编程

【转载】我为什么编程

编程远不止是一项技能,而是一种探索、尝试和满足好奇心的方式。好几次放弃编程了,但最终都重新捡起。编程是与世界互动的方式。

文章来源:Why I Do Programming

本文的灵感来源于 Aaron Boodman 的这篇 文章

我记得自己小时候是个安静沉稳的孩子,最开心的时候就是手里拿着一堆电线。父母经常把这些电线当玩具给我,还会给我一把螺丝刀和一个旧磁带播放机,让我拆开再组装起来。那时我才三岁。我虽然不懂自己在做什么,但我喜欢探索机器内部构造的感觉,喜欢琢磨它是怎么运作的。

一年级时,我接触到了MS-DOS和Logo,也学过一点PASCAL。后来学校换了更好的电脑,我就开始用BASIC写一些小程序:井字棋、计算器之类的。感觉很神奇。

我十岁那年终于拥有了自己的电脑。起初,我主要用它来玩游戏,但自从能上网后,一切都改变了。我接触到了HTML、CSS和基础JavaScript。那时还没有HTML5,所以网络功能有限,但我仍然做了很多奇奇怪怪、丑陋不堪的网站。我的计算机科学老师居然还挺喜欢它们。我甚至还帮别人做HTML作业赚了点零花钱,不仅是帮同学,也帮我弟弟。

那时我非常沉迷于GTA,并发现了MTA和SAMP这两个社区制作的MOD,它们为游戏添加了多人模式。我开始痴迷于运行自己的服务器,并添加自定义MOD和规则。这让我接触到了PAWN,一种在这些MOD中使用的脚本语言。我想要构建一个几乎无所不能的世界,就像在现实生活中一样。一种雏形的元宇宙。

最终,我发现了Second Life——一个拥有独立经济系统的完全虚拟世界。它拥有我在 GTA 中想要建造的一切。我开始创作:衣服、建筑、用 LSL(一种 Lua 的超集脚本语言)编写的脚本。我甚至还赚了点钱,把 Second Life 的货币兑换成了现实世界的现金。

但过了一段时间,我意识到我不想只为虚拟世界创作。我想为现实生活中的人们创造一些有意义的东西。那时我大概16岁,还不确定那会是什么。但我知道:我想买一台新电脑和一台Korg microKORG合成器来制作电子音乐。于是,我在一个本地的白帽黑客论坛上开了个小“生意”,转售ICQ号码和其他一些数字产品。我赚的钱足够买我想要的东西……差点因为旷课被学校开除。

大约在那时,HTML5发布了,网络突然又焕发出了强大的力量。我用JavaScript在网页头部制作了动画云朵,层层叠叠,如同真实的天空一般飘动。我没有保存源代码,但仍然保留着截图。差不多也是在那段时间,我发现了Bret Victor的《基于原则的发明》(Inventing on Principle)演讲,这场演讲塑造了我对编程和创造力的看法。

大学时,我学习的是创新工程专业——课程融合了半技术性和商业性。我最喜欢的课程是工程制图(大量使用CAD软件)、计算机安全(我曾经“黑”过学校的SMTP服务器——不是因为我聪明,而是因为操作极其简单)以及哲学。哲学教会了我提出正确问题的重要性,以及构建个人哲学的重要性。

毕业后,我感到迷茫,不知道自己想要什么。幸运的是,一位朋友邀请我加入一家名为MipoTheBot的创业公司,这是一个面向使用 Upwork 等平台的自由职业者的 Slack 机器人。我负责设计、用户界面/用户体验设计,并重新开始编写代码。我的职业生涯就此开启。最终,我们关闭了这家公司,因为我们对销售和市场营销的了解还不够深入。但我从中吸取了一个重要的教训:这些都很重要。

在随后的几年里,我涉足多个行业,积累了丰富的经验。最重要的是,我发现伟大的产品都源自于规模小、充满好奇心且紧密协作的团队,在这样的团队里,每个人都对最终成果负有责任。

Aaron Boodman 的文章中,最让我印象深刻的是他关于职业倦怠的描述。和他一样,我也经历过职业倦怠,而且是两次。最近一次并非工作相关,而是源于个人生活变故。我休息了一个月,一边休养生息,一边拜访了欧洲各地的朋友。回来之后,我重新燃起了创作的热情。那次休息让我意识到,我依然热爱编程。对我而言,它从来都不是一份工作。

对我而言,编程的魅力在于总有新的领域等待探索。运维、后端、前端、硬件和系统编程——每一个领域都引领我走向不同的方向。而在每个领域内部,又蕴藏着更多值得深入钻研的分支:Web性能优化、本地优先软件、分布式系统、加密技术、去中心化、人工智能、设计工程等等。

有时候最难的是保持专注,而不是追逐每一个闪亮的新事物。

对我而言,编程远不止是一项技能。它是一种探索、尝试和满足好奇心的方式。从电线和螺丝刀到如今的应用程序,工具虽然变迁,但那种探索的冲动却始终如一。这就是我不断回归编程的原因。它是我与世界互动的一种自然方式。

“一人公司”何以成为可能?
越使用AI,越不担忧。