首页 女生 都市言情 爱是一座城堡

第50章 为自己写下第一行代码

爱是一座城堡 流星阑珊 6671 2026-03-29 17:56

  四月的第二个星期二,刘星在清理电脑硬盘时,发现了一个被遗忘的文件夹。

  它藏在D盘最深处,夹在一堆工作备份和技术文档之间。文件夹名叫“Ideas_2018”,创建日期是三年前的春天。刘星点开它,里面是十几个文本文件和思维导图截图,记录了那些年他脑子里闪过、但从未付诸实践的各种想法:

  *一个针对程序员的健康管理应用,记录坐姿提醒、眼保健操、久坐站立;

  *一个简化版的家庭财务共享工具,适合夫妻共同记账但保持隐私边界;

  *一个阅读进度管理插件,整合豆瓣书评和阅读时长统计;

  *甚至还有一个“中年危机自救指南”的网站框架,想集合心理咨询资源、职业转型案例、技能学习路径……

  每个文件都只有简短的描述,几行核心功能,然后就没有然后了。繁忙的工作,家庭的责任,日复一日的加班,让这些“自己的项目”永远停留在想法阶段。最后修改日期停留在2019年6月——差不多是他上一个项目最紧张的时候,从那之后,这个文件夹就被彻底遗忘了。

  刘星一个个点开这些文件,像考古学家发掘自己三年前的思维碎片。有些想法现在看来很幼稚,有些依然有价值,还有一些让他感到一丝悲哀:原来那么早,自己就已经在思考“健康管理”“财务共享”“中年危机”这些问题了,但从未真正行动。

  他关掉文件夹,靠在椅背上。午后阳光斜射进房间,照亮空气中飞舞的微尘。窗外的香椿树冒出了嫩芽,是那种鲜亮的、近乎透明的黄绿色。春天真的来了。

  电脑屏幕上,除了那个刚被打开的旧文件夹,还开着几个网页:兼职平台的接单页面,招聘网站的求职记录,以及一个在线翻译工具。这是他现在生活的全部数字映射:寻找机会,等待回复,完成任务,换取报酬。

  功能性,工具性,生存导向。

  他忽然想起读《平凡的世界》时,孙少平在工棚里读书的场景。对于孙少平来说,读书不只是获取知识,更是在艰难生活中保持“精神站立”的方式。那么对于程序员刘星来说,什么才是他的“读书”呢?

  答案几乎是立刻浮现的:写代码。

  不是为公司写,不是为客户写,不是为报酬写,而是为自己写。为了表达某个想法,为了解决某个真实问题,为了纯粹的创造乐趣而写。

  这个念头一旦出现,就再也压不下去了。像一颗埋藏已久的种子,被春雨唤醒,固执地要破土而出。

  但写什么呢?

  刘星重新打开那个“Ideas_2018”文件夹,一个个浏览。健康管理应用太复杂,需要硬件配合;家庭财务工具涉及敏感数据,且他现在没有“家庭”可以共享;阅读插件需要浏览器扩展开发,技术栈不熟……

  他的目光停在了最后一个想法上:“中年危机自救指南”。

  这个想法最初是怎么产生的?刘星努力回忆。好像是2018年,他刚满三十八岁,项目压力巨大,身体开始出问题,和張穎的关系也进入瓶颈期。某个加班的深夜,他感到一种深刻的虚无感,于是写下了这几行字:

  “一个匿名社区+结构化资源库。用户可以分享自己的转型故事(匿名),可以找到心理咨询师、职业顾问、技能课程等资源,可以根据自己的情况(年龄、行业、经济状况)生成个性化的‘自救路线图’。”

  现在看来,这个想法依然有价值——甚至更有价值,因为他自己正在经历这一切。但他不打算真的做一个网站,那太庞大,太复杂,需要设计、开发、运营、推广,不是一个人能完成的。

  他需要的,是一个更小、更私人的东西。

  刘星关掉所有网页,打开他最喜欢的代码编辑器——Visual Studio Code。深色的主题,彩色的语法高亮,光标在空白的编辑区域里安静地闪烁。这个界面他看了十几年,熟悉得像自己的手掌纹路。

  他新建了一个文件,命名为:`reboot_diary.py`

  #`.py`是Python的后缀。Python不是他最擅长的语言——他更熟悉Java和C++——但它简洁,灵活,适合快速原型开发。而且,他最近做了不少Python相关的翻译工作,手还热着。

  然后,他盯着空白的编辑器,手指悬在键盘上。

  第一行代码写什么?

  在职业生涯中,刘星写过无数个“第一行代码”:`public class Main {`,`#include `,`function init(){`……那些都是为了项目,为了需求,为了交付。它们有明确的目的,有规范的格式,有评审的标准。

  但这一次,完全不同。没有产品经理的需求文档,没有架构师的系统设计,没有测试用例,没有deadline。只有他自己,和一个模糊的想法:写一个私人的、数字化的自我重建记录工具。

  他需要一个起点。最简单的起点。

  深吸一口气,他的手指落下。

  键盘发出清脆的敲击声:

  #python

  #于破碎处重生·个人重建记录工具

  #作者:刘星

  #开始日期:2021年4月13日

  #这是第一行代码,为自己而写。

  四行注释,中文。不符合任何公司的编码规范——英文注释是行业默认标准。但这是他自己的项目,他想用母语开始。

  光标在最后一行末尾闪烁,等待下一步。

  刘星思考了几分钟。这个工具应该是什么?一个日记本?一个进度跟踪器?一个资源管理器?也许都是,也许都不是。他决定从最基本的功能开始:记录。

  他继续写:

  #print(“【系统启动】重建记录工具已初始化。“)

  #print(“提示:这是一个私人工具,没有云同步,没有数据分析,只有最朴素的记录。“)

  定义了一个类,创建数据目录,打印启动信息。很基础,但这是一个开始。

  他按`F5`运行。控制台弹出,显示:

  #【系统启动】重建记录工具已初始化。

  #提示:这是一个私人工具,没有云同步,没有数据分析,只有最朴素的记录。

  简单的黑白文字,但在刘星眼中,却有一种难以言喻的美感。这是他为自己创造的第一行输出。

  接下来该做什么?他想了想,决定先实现一个核心功能:添加记录。

  添加一条重建记录

  #:param category:类别,如'工作','健康','学习','关系','财务','思考'

  #:param content:记录内容

  #:param mood:情绪状态,1-10分

  #:param tags:标签列表

  #按日期保存

  ......

  #读取当天已有记录(如果有)

  ......

  #保存

  ......

  写完这个方法,刘星停下来想了想。他需要测试一下。于是他在代码底部添加:

  #测试添加一条记录

  category=“思考“,

  content=“写下第一行为自己而写的代码。感觉很奇怪,像是重新学走路。但每一步都是自己的。“,

  mood=6,

  tags=[“编程“,“自我重建“,“起点“]

  运行。控制台输出:

  【系统启动】重建记录工具已初始化。

  提示:这是一个私人工具,没有云同步,没有数据分析,只有最朴素的记录。

  【记录添加】2021-04-13 15:23:41 -思考:写下第一行为自己而写的代码。感觉很奇怪...

  同时,在项目目录下,自动创建了一个`reboot_data`文件夹,里面有一个`20210413.json`文件。刘星打开它:

  ......

  “timestamp“:“2021-04-13 15:23:41“,

  “category“:“思考“,

  “content“:“写下第一行为自己而写的代码。感觉很奇怪,像是重新学走路。但每一步都是自己的。“,

  “mood“: 6,

  “tags“:[

  “编程“,

  “自我重建“,

  “起点“

  ]

  ......

  格式工整,内容清晰。一条数字化的、结构化的私人记录。

  刘星看着这个JSON文件,心里涌起一种奇妙的成就感。不是完成了一个大项目,不是解决了一个技术难题,而是创造了一个小小的、只属于自己的系统。它不完美,功能简陋,但它是活的,它在运行,它在记录。

  他想记录更多。

  他回到代码中,删掉了测试部分,然后写了一个简单的交互循环:

  ......

  再次运行。这次,程序进入了交互模式:

  【系统启动】重建记录工具已初始化。

  提示:这是一个私人工具,没有云同步,没有数据分析,只有最朴素的记录。

  进入交互记录模式(输入'quit'退出)

  可用类别:工作、健康、学习、关系、财务、思考、日常

  ========================================

  类别:

  光标在闪烁,等待输入。

  刘星想了想,在“类别:”后输入:`工作`

  内容:`上午完成了一个技术文档翻译,收入800元。下午投了3份简历,暂无回音。`

  情绪:`6`

  标签:`翻译,求职,收入`

  回车。控制台显示“记录已保存。”

  他继续:

  类别:`健康`

  内容:`今天散步30分钟,做了眼保健操。睡眠还是不好,凌晨3点醒了一次。`

  情绪:`5`

  标签:`运动,睡眠`

  类别:`学习`

  内容:`继续读《平凡的世界》,读到孙少平在煤矿的坚持。写了一点读书笔记。`

  情绪:`7`

  标签:`阅读,思考`

  类别:`关系`

  内容:`给母亲打电话,她理疗有好转。和张颖约了周末带清清去公园。`

  情绪:`6`

  标签:`家庭,儿子`

  一条条记录,像碎片一样被收集起来。没有宏大叙事,只有日常的、琐碎的、真实的瞬间。

  最后,刘星输入`quit`退出程序。他打开数据文件夹,看到今天的JSON文件已经包含了五条记录。他一条条看过去,像在看另一个自己的日记——更结构化,更数字化,但同样真实。

  窗外天色渐暗。刘星没有开灯,就着电脑屏幕的光,继续完善这个工具。他添加了查询功能:

  #def query_entries(self, category=None, date=None, tag=None, keyword=None):

  #“““查询记录“““

  #这部分代码他写了二十分钟,处理各种查询条件的组合

  #支持按类别、日期、标签、关键词搜索

  又添加了简单的统计:

  #python

  #def show_stats(self, days=30):

  #“““显示最近N天的简单统计“““

  #统计各分类的记录数量

  #统计情绪平均值

  #统计最常出现的标签

  代码越写越多,功能越来越完整。但刘星没有感到压力,反而有一种流畅的愉悦感。他不需要考虑性能优化,不需要考虑可扩展性,不需要考虑团队协作规范。他可以按照自己的想法来,可以随时重构,可以尝试新技术——只是为了学习,不是为了交付。

  晚上八点,他写完了基本功能。工具现在可以:

  1.交互式添加记录

  2.按多种条件查询记录

  3.显示简单统计

  4.导出某段时间的记录为Markdown文件(方便阅读)

  他运行了统计功能,查看最近七天的记录:

  ```

  【最近7天统计】

  总记录数:12条

  分类分布:

  -思考:4条

  -工作:3条

  -健康:2条

  -学习:2条

  -关系:1条

  平均情绪值:5.8

  常用标签:阅读(3),编程(2),家庭(2),求职(2)

  ```

  简单的数字,勾勒出他过去一周的生活轮廓:以思考和工作为主,情绪在及格线徘徊,阅读和编程是主要活动。

  刘星靠在椅背上,看着屏幕上的代码。编辑器显示这个文件现在有387行。不算多,但每一行都是他今天下午亲手写下的。没有抄袭,没有复制粘贴,没有框架生成,从第一行注释到最后一行函数,全部原创。

  他忽然意识到,这是近两年来,他第一次不是为了报酬、不是为了求职、不是为了满足他人期望而写的代码。这是纯粹的创造,是自我表达,是数字世界里的手工陶艺。

  他保存所有文件,关闭编辑器。房间已经全黑了,只有电脑屏幕的光照亮他的脸。他站起来,走到窗边。

  夜色中的城市依然繁忙,车流如织,灯火如星。但这一次,刘星感到的不再是疏离和渺小,而是一种微妙的连接感。在这个巨大的数字生态系统里,他也贡献了一点东西——不是商业产品,不是开源项目,只是一个私人的、简陋的、但完全属于他的小工具。

  它不会改变世界,甚至不会改变他自己的生活困境。明天,他依然要面对房租、账单、求职、孤独。但这个工具的存在,像是一个锚点,提醒他:即使在这个破碎的时期,他依然有能力创造,有能力用自己最熟悉的方式——写代码——来理解、记录和重构自己的生活。

  他回到电脑前,打开`reboot_diary.py`,在文件最顶部,那四行注释下面,他又加了一行:

  #这不是一个产品,这是一个过程。代码会迭代,人生也会。

  然后,他运行了最后一次交互模式,添加了今天的最后一条记录:

  类别:`思考`

  内容:`今天写了一个私人的重建记录工具。387行代码,为自己而写。感觉像是找回了一部分失落的自我:那个单纯因为热爱而编程的少年。工具很简陋,但它是我的。在这个一切都不确定的时期,至少我能确定这些代码的每一行都是我亲手敲下的。`

  情绪:`7`

  标签:`编程,自我重建,创造,起点`

  保存,退出。

  刘星关掉电脑。房间陷入完全的黑暗,只有电源指示灯微弱的红光,像一颗遥远星辰的余烬。

  他躺在床上,闭上眼睛。脑海里不再是那些焦虑的念头,而是代码的结构:类、方法、循环、条件。像一首熟悉的旋律,安抚着他的神经。

  他想,也许这就是他的“平凡之路”:用代码记录破碎,用代码理解重建,用代码在数字世界里为自己搭建一个临时的避难所。虽然简陋,虽然私密,但它是真实的,有温度的。

  而今天写下的第一行代码,就像孙少平在工棚里翻开的第一页书,是一种宣告:我还在这里,我还在思考,我还在创造。生活可以击垮我的很多部分,但不能剥夺我写代码的能力和权利。

  窗外传来救护车的鸣笛声,由远及近,又由近及远。城市在呼吸,在运转,在发生无数的故事。

  而在一个十二平方米的出租屋里,一个中年男人刚刚为自己写下了387行代码。没有用户,没有收入,没有掌声。只有寂静的夜晚,和一行行沉默的字符。

  这就够了。

  因为这是起点。

  是于破碎处,为自己写下的第一行代码。

目录
设置
手机
书架
书页
评论