编程之路:我为什么要编程

我童年时期是个安静内向的孩子,最快乐的时刻是手中握着一捆电线。父母常把它们当作玩具送给我,还有一把螺丝刀和一台可以拆解的旧磁带播放器。那时我三岁,虽然不知道自己在做什么,但探索机器内部、试图理解其工作原理的感觉让我着迷。

一年级时,我接触到了 MS-DOS、Logo 语言和一点 PASCAL。后来学校配备了更好的电脑,我开始用 BASIC 编写小型程序:井字棋、计算器之类的东西。这种创造过程让我感到神奇。

10 岁那年,我终于拥有了自己的 PC。起初主要用于玩游戏,但接入互联网后一切都改变了。我发现了 HTML、CSS 和基础 JavaScript。这是 HTML5 发布前的时代,网页功能有限,但我仍建了许多奇怪而丑陋的网站。我的计算机老师甚至喜欢它们。我还通过帮同学(甚至包括我哥哥)完成 HTML 作业赚了点零花钱。

那时我沉迷于《GTA》系列,并发现了 MTA 和 SAMP------社区开发的多人游戏模组。我沉迷于创建自己的服务器,添加自定义模组和规则。这让我接触到了 PAWN(一种用于这些模组的脚本语言)。我想打造一个可以实现现实世界几乎所有活动的虚拟空间,某种意义上的"元宇宙原型"。

最终,我发现了 Second Life------一个拥有完整经济系统的虚拟世界。它包含了我在 GTA 中想要实现的一切。我开始创作:服装、建筑、使用 LSL(Lua 语言的超集脚本语言)编写的程序。甚至通过兑换 Second Life 货币获得了真实收入。

但后来我意识到,自己不想只为虚拟世界创作。16 岁时的我仍不确定真实世界的"意义"是什么。 当时我最大的愿望是购买新电脑和 Korg microKORG 电子合成器。为此,我在本地白帽黑客论坛上开展了一个小型"业务":转售 ICQ 号码和其他数字资产。虽然赚够了钱,但因旷课差点被学校开除。

大约在那个时候,HTML5 的发布让网页功能重新变得强大。我创建了第一个带有动画 JavaScript 云层的主页,云层在标题栏中分层运动,如同真实天空。虽然源代码已丢失,但我仍保留了截图。同期,我发现了Bret Victor的《基于原理的发明》演讲,它彻底改变了我对编程与创造的理解。

在大学期间,我攻读了"创新工程"专业------融合半技术性与商业导向的课程。最喜欢的课程包括《工程制图》(大量使用CAD)、《计算机安全》(曾"黑入"过学校的 SMTP 服务器------不是因为技术高超,而是因为系统漏洞明显)和《哲学》,它教会我提问的重要性以及构建个人哲学体系的价值。

毕业后,我一度迷茫。幸运的是,朋友邀请我加入初创公司 MipoTheBot------一个面向 Upwork 等平台自由职业者的 Slack 机器人。我负责设计、UI/UX 并重新开始编写代码。我的职业生涯由此开启。最终我们因不擅长销售和营销关闭了项目,但这段经历让我明白:商业策略同样重要。

此后几年,我在多个行业积累了丰富经验。最重要的是,我意识到优秀产品往往源于小而紧密的团队,团队成员共同对结果负责

亚伦·布德曼(Aaron Boodman) 文章中最触动我的部分是他关于"职业倦怠"的描述。我同样经历过两次。最近一次并非工作相关,而是源于个人生活的剧变。我休了一个月假去欧洲拜访朋友,回来后重新燃起了创造的欲望。这段间歇让我意识到,我仍然热爱编程,编程对我而言从未只是工作。

对我而言,编程的魅力在于永远有新的领域等待探索:运维、后端、前端、硬件、系统编程------每个方向都吸引我以不同方式深入。在这些领域中,还有更多细分方向:网页性能、本地优先软件、分布式系统、加密技术、去中心化、AI、设计工程等等。

有时最大的挑战是保持专注,而不是追逐每个新奇事物。

对我而言,编程始终不仅是技能。它是探索世界、动手实验、满足好奇心的方式。从电线和螺丝刀到应用程序,工具在变化,但这种探索的冲动始终未变。这正是我不断回归编程的原因------它是我与世界互动的自然方式。

原文链接:esafev.com/notes/why-i...

相关推荐
一只小阿乐4 小时前
react 封装弹框组件 传递数据
前端·javascript·react.js
533_5 小时前
[element-plus] el-tree 动态增加节点,删除节点
前端·javascript·vue.js
禁止摆烂_才浅5 小时前
前端开发小技巧-【JavaScript】- 获取元素距离 document 顶部的距离
前端·javascript·react.js
wshzd5 小时前
LLM之Agent(二十九)|LangChain 1.0核心组件介绍
前端·javascript·langchain
程序猿_极客5 小时前
Vue 2脚手架从入门到实战核心知识点全解析(day6):从工程结构到高级通信(附代码讲解)
前端·javascript·vue.js·vue2学习笔记
q***71855 小时前
海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)
java·前端·spring boot
web加加5 小时前
vue3 +vite项目页面防f12,防打开控制台
前端·javascript·vue.js
A尘埃6 小时前
大模型应用python+Java后端+Vue前端的整合
java·前端·python
遥遥晚风点点7 小时前
Spark导出数据文件到HDFS
前端·javascript·ajax
克里斯蒂亚L7 小时前
开发一个计时器组件
前端·浏览器