趣味编程

Hacker News Top 新闻

摘要

Christopher Phiri 的演讲稿《娱乐式编程》探讨为乐趣而编程的理念,介绍五种娱乐式编程风格,并鼓励开发者通过低压力实验保持对编程的长期热情。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/14 00:59

# Christopher Phiri 来源:https://www.cphiri.dev/presentations/recreational-programming ## 趣味编程 你们居然还有钱拿? ## 举手示意: 你们有多少人是因为觉得有趣才学编程的? ## 第 1 部分 ## 什么是趣味编程? ## 定义 为了编程本身的乐趣而编程 \- 不是为了工作,不是为了钱,也不是为了外部要求\。 ## 它是什么样的: - 因为好奇事物如何运作而动手构建 - 探索新语言,只为体验一下用起来是什么感觉 - 解决只存在于你脑海中的问题 - 为你实际上并没有遇到的问题创造工具 - 编写让你会心一笑的代码 ## 它不是什么: - 副业或潜在的创业项目 - 为职业发展而提升技能 - 一步\-一步地跟着教程做 - 为面试而埋头刷编程题 - 构建别人期待你构建的东西 **关键区别:**内在动力与外部压力 ## 为什么它很重要: - 通过重新找回内在动力来预防倦怠 - 通过低\-风险的探索培养直觉 - 保持对编程这门手艺的长期热情 - 往往带来意想不到的突破与收获 ## 第 2 部分 ## 趣味编程的不同类型 ## 类型 1:实时探索者 - 通过直播或博客公开构建过程 - 展示混乱的过程:死胡同、错误、推倒重来 - 社区成为督促自己坚持下去的力量和活力来源 - 项目涵盖实用工具到纯粹的实验 ## 类型 2:深度钻研者 - 痴迷于理解事物究竟如何运作 - 构建复杂系统的简化实验版本 - 重视学习胜过交付 - 往往有多个“用于学习”的实现版本 ## 类型 3:创意技术家 - 将代码用作艺术媒介 - 生成艺术、音乐合成、交互装置 - 让技术服务于创作构想 - 经常将编程与其他领域相结合 ## 类型 4:问题解决者 - 用代码解决自己的烦恼 - 制作解决微小却恼人问题的工具 - 采用对自己管用的“够用就好”的解决方案 - 经常无意间做出有用的东西 ## 类型 5:语言探索者 - 不断尝试新语言和新范式 - 用不同语言实现相同的概念 - 被不寻常或实验性的语言吸引 - 将代码作为满足求知欲的方式 ## 第 3 部分 ## 所有类型的共同模式 ## 允许自己构建“没用”的东西 - 不需要商业理由 - 好奇心就是充分的理由 - 失败的实验仍然能带来宝贵的经验 **关键认识:**投资回报率不适用于趣味编程 ## 跟随热情,而非计划 - 兴奋感消退时就换个项目 - 多个搁置的代码仓库意味着探索,而非失败 - 无聊能告诉你自己对什么感兴趣 **关键认识:**无聊是一种信息,而非失败 ## 记录探索历程 - 分享过程,而不只是结果 - 教别人会迫使自己理解得更深入 - 与走在相似道路上的人建立联系 **关键认识:**讲述你做决定的过程 ## 拥抱学习过程 - 在新领域保持初学者心态 - 坦然接受自己有所不知 - 过程重于成品 **关键认识:**进步重于完美 ## 第 4 部分 ## 你的个人编程游乐场 ## 环境 - 专门的“实验”文件夹/代码仓库 - 无需考虑生产环境:配置尽量简单,没有 CI/CD 压力 - 快速初始化项目的脚本 - 版本控制可选 ## 你可以尝试的方法 - 每周实验\(花 2\-4 小时探索一个新事物\) - 从零构建挑战\(构建你所用工具的简化实验版本\) - 解决自身烦恼的项目\(解决你自己的恼人问题\) - 教学项目\(一边构建,一边讲解\) - 跨语言挑战\(同一个问题,不同的语言\) ## 心态转变 - 用“如果……会怎样”代替“我应该……” - 进步重于完美 - 学习重于交付 - 好奇心重于生产力 ## 第 5 部分 ## 现实中的真实案例 ## Zikani Nyirenda \-*实用型实验者* - 创造各种随兴但实用的工具:浏览器自动化、文件整理工具、Git 实用工具 - 在 Go、Rust、Python、Vue 和 React 之间进行实验 - 以“今天我能解决什么小问题?”的思路编程 - 用代码解决自身烦恼的典范 github\.com/zikani03 (https://github.com/zikani03) ## Jeremiah Chienda \-*全栈实验者* - 探索不同的架构模式和框架 - 在学习新技术的同时构建解决实际问题的工具 - 展示趣味编程如何覆盖整个技术栈 github\.com/liwoo (https://github.com/liwoo) ## Tsoding Daily \-*实时探索者* - 每天直播 4\+ 小时,从零构建各种随兴项目 - 构建了自己的文本编辑器、编程语言和光线追踪器 - 展示完整过程,包括失败和调试 - 对一切都抱着“来看看如果……会发生什么”的态度 ## ThePrimeagen \-*精力充沛的问题解决者* - 创建 CLI 工具和 Neovim 插件,优化个人工作流程 - 对开发工具和性能充满富有感染力的热情 - 对其他开发者的代码/方法作出反应并加以点评 - 让优化和工具开发像极限运动一样刺激 ## Casey Muratori \-*系统深度钻研者* - Handmade Hero:通过直播从零构建一款完整的游戏 - 解释每一行代码和每一个系统设计决策 - 不用库,从基本原理出发理解一切 - 展示如何在不使用框架的情况下构建现代软件 ## Ben Eater \-*教学型构建者* - 在面包板上搭建计算机,解释每一个组件 - 制作视频系列,讲解 CPU、内存和网络究竟如何工作 - 花几个月构建花 5 美元就能买到的东西 - 让硬件基础知识通俗易懂、引人入胜 ## Dan Luu \-*深度技术探究者* - 撰写详细的博客文章,探究性能方面的谜题 - 对一切进行基准测试:键盘、终端、编程语言 - 将“为什么 X 这么慢?”的好奇心转化为数千字的研究 - 展示出于兴趣的探究如何揭示整个行业的问题 **每个人都代表着一条重新找回编程乐趣的不同道路** ## 最后的挑战 选择一个实验: 1. 为你每天使用的某个工具构建一个尽可能糟糕的版本 2. 花 2 小时体验一门你一直好奇的语言 3. 记录自己解决一个小问题的过程 4. Fork 一个有趣的项目,随意折腾一下 5. 尝试现场编程或直播你的过程 **唯一的规则:**不再有趣时就停下来\。 ## 最后的思考 “目标不是成为这些程序员中的任何一个,而是记住你为什么开始编程,并在发展职业生涯的同时,让那份好奇心保持鲜活\。”

相似文章

Why Am I Still Programming

Lobsters Hottest

本文探讨了在行业倦怠背景下,开发者为何坚持编程,强调了社区建设和创造性过程的重要性,而非单纯的代码产出。

享受编程,依然无妨

Hacker News Top

作者在 Hacker News 上弥漫的 AI 悲观情绪中撰文,主张即使 AI 能自动生成代码,个人依然可以纯粹为了乐趣在业余时间手写代码、探索类型安全与递归模式等编程思想,享受编程并不需要经济上的正当理由。

以理论构建的视角阅读编程

Hacker News Top

本文推荐 Peter Naur 的著作《编程即理论构建》,主张编程的本质在于构建和传达对软件的心理模型,而不仅仅是编写代码。

In Context

Lobsters Hottest

一场关于上下文的演讲,主张大多数开发者从事的是“信息编程”而非机制编程:静态类型适合人造的、内部的机制,而面向外部世界的大型系统必须是动态的、灵活的、可观测的,并阐述了 Clojure 的信息导向方法。