休闲编程
休闲编程 你们都是在赚钱吗?举手:有多少人因为好玩而学习编程?第一部分 什么是休闲编程? 定义 为了编程本身的乐趣而编程——不是为了工作,不是为了赚钱,也不是为了外部要求。 其表现形式: 因为好奇事物的运作方式而构建东西 仅仅是为了感受新语言而进行探索 解决只有在脑海中存在的问题 创建解决实际上没有问题的工具 编写让你微笑的代码 这不是: 副业或潜在的初创公司 职业发展的技能培训 按照教程逐步操作 为面试而进行的编码挑战 构建别人期望你构建的内容 关键区别: 内部动力与外部压力 它为何重要: 通过重新连接内在动机防止倦怠 通过低风险探索发展直觉 保持对手艺的长期热情 常常导致意想不到的突破和学习 第二部分 休闲编程的光谱 风格1:现场探索者 通过直播或博客在公众中构建 显示混乱的过程:死胡同、错误、重启 社区成为责任和能量的来源 项目从实用工具到纯实验 风格2:深入挖掘者 过于关注理解事物如何真正运作 构建复杂系统的玩具版本 重视学习胜过交付 通常有多个“教育”实现 风格3:创意技术人员 将代码作为艺术媒介 生成艺术、音乐合成、互动装置 技术服务于创造愿景 通常将编程与其他学科融合 风格4:问题解决者 用代码解决个人小问题 解决一些微小烦恼的工具 适合他们的“足够好”解决方案 通常意外构建有用的东西 风格5:语言探索者 不断尝试新语言和范式 在不同语言中实现相同的概念 吸引不寻常或实验性的语言 代码作为智力好奇心 第三部分 所有风格的共同模式 建筑“无用”东西的许可 不需要商业案例 好奇心足以证明 失败的实验仍然教会有价值的课程 关键见解:投资回报率不适用休闲编程 跟随能量,而不是计划 当兴奋感减退时转换项目 多个被放弃的代码库是探索,而不是失败 无聊是关于你感兴趣的事物的数据 关键见解:无聊是数据,而不是失败 纪录旅程 分享过程,而不仅仅是结果 教学迫使更深入的理解 与走相似道路的他人建立联系 关键见解:叙述你的决策 接受学习过程 新领域的初学者心态 舒适于不知晓 过程优于产品 关键见解:进步胜于完美 第四部分 你的个人编程乐园 环境 专用的“实验”文件夹/代码库 没有生产顾虑:最小的设置,没有CI/CD压力 快速项目初始化脚本 版本控制可选 你可以尝试的方法 每周实验(2-4小时探索一项新事物) 自己构建的挑战(构建你使用的工具的玩具版本) 解决烦恼项目(解决你自己的恼人问题) 教学项目(在解释过程中构建某物) 跨语言挑战(同一问题,不同语言) 心态转变 “如果……呢?”而不是“我应该……” 进步胜于完美 学习胜于交付 好奇心胜于生产力 第五部分 实际例子 Zikani Nyirenda - 实用实验者 创建随机但有用的工具:浏览器自动化、文件组织、Git工具 跨Go、Rust、Python、Vue和React进行实验 “我今天能解决什么小问题?”的编码方法 通过代码满足个人需求的完美例子 github.com/zikani03 Jeremiah Chienda - 全栈实验者 探索不同的架构模式和框架 在学习新技术的同时构建解决真实问题的工具 展示休闲编程可以涵盖整个技术堆栈 github.com/liwoo Tsoding Daily - 现场探索者 每天直播 4 小时,随机从头构建项目 构建自己的文本编辑器、编程语言、光线追踪器 显示完整过程,包括失败和调试 “我们来看看如果……会发生什么……”的思维方式 ThePrimeagen - 高能问题解决者 创建CLI工具和Neovim插件以优化个人工作流程 对开发工具和性能的热情传染 会对其他开发者的代码/方法进行反应和评论 使优化和工具感觉像极限运动 Casey Muratori - 系统深度挖掘者 手工英雄:在直播中从零开始构建完整的游戏 解释每一行代码和系统设计决策 不使用库,从第一原理理解所有内容 演示你可以在没有框架的情况下构建现代软件
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡