浅谈技术探索与实践:一个准备考公的程序员的深夜自白
上周五晚上十一点半,浦东张江某小区32平的小出租屋里,我正对着电脑屏幕发呆。女朋友小林已经裹着毯子在沙发上看《甄嬛传》重播——她说这剧比我的代码稳定多了。而我,左手边摊着一本翻到卷边的《Spring Boot实战》,右手边开着Replit Agent跑一个临时调试的服务,屏幕上还挂着Cursor的聊天窗口,光标一闪一闪,像在嘲笑我:“兄弟,你到底是要搞技术,还是要考公务员?”
那一刻,我真的有点懵。
一、起因:月薪22K vs 公务员编制,谁更香?
先自我介绍一下:我是阿哲,坐标上海,一名在职Java程序员,在一家中型互联网公司干了快四年。目前月薪22K(税前),和女友合租在浦东,房租3500,水电煤网加起来每月再掏800左右。表面看,生活还算体面;但只有我知道,每天早上挤13号线时那种“被掏空”的感觉有多真实。
去年十月,我妈打来电话:“隔壁老王家儿子考上区税务局了,双休、公积金高、还有食堂。”语气里满是羡慕。挂了电话,我默默打开上海市公务员考试公告页面,鼠标悬在“报名”按钮上,迟迟没点下去。
不是不想考,是不敢考。
毕竟,我现在的技术栈全靠自学撑着:Spring Boot + MyBatis + Redis + Kafka,项目经验也都是业务堆出来的。没有大厂光环,也没有开源项目背书,真要裸辞备考,万一没上岸,简历可能连HR的初筛都过不了。
但又不甘心一辈子当“码农”。35岁危机、加班文化、需求反复变更……这些词像幽灵一样缠着我。于是,我做了一个折中决定:在职备考,同时保持技术敏感度——不求升职加薪,但求别被时代甩下车。
二、实践:用Spring Boot搭个“考公进度追踪器”
说干就干。既然要兼顾技术和备考,不如把两者结合起来。我突发奇想:能不能写个小工具,自动记录我的刷题进度、模考成绩、申论练习次数?这样既能练手,又能督促自己。
于是,一个周末的下午,我打开了IDEA,新建了一个Spring Boot项目,取名叫gwy-tracker(“国考追踪器”谐音梗,程序员懂的都笑)。
核心功能很简单:
- 用户登录(用JWT)
- 每日打卡申论/行测
- 上传模考截图
- 生成周报邮件
技术选型很朴素:Spring Boot 3.2 + Spring Security + MySQL + Thymeleaf(对,我没用Vue,因为想快点上线,前端能用就行)。数据库设计花了半小时,接口写了两天——中间被产品经理临时插了个紧急需求打断,差点心态崩了。
但最让我惊喜的,不是功能实现,而是整个过程让我重新找回了“写代码的乐趣”。
以前在公司,写代码是为了交付,是为了KPI。而现在,每一行代码都是为自己服务。比如,我在用户表里偷偷加了个字段:motivation_quote VARCHAR(255),每次登录随机显示一句鸡汤:“行测70+不是梦!”、“今天你申论了吗?”。
小林看到后笑得前仰后合:“你这系统比你的精神状态还稳定。”
三、工具流进化:从书籍到AI编程助手
当然,光靠自己硬肝是不够的。技术更新太快,我得找帮手。
首先是书籍。我书架上那本《Spring Boot实战》(第2版)已经被翻得快散架了。这本书我是在2021年花69块买的,当时刚跳槽,想着“得补基础”。结果一直吃灰,直到这次做项目才真正啃完。书里关于自动配置、Starter原理的章节,让我对Spring Boot的理解从“会用”进阶到“知道为啥能用”。
但说实话,现在光看书效率太低。于是我开始尝试AI编程工具。
第一个试的是 Cursor。这玩意儿真的香。比如我要写一个邮件发送服务,以前得翻文档、查Stack Overflow,现在直接在Cursor里输入:“用Spring Boot写一个每周自动发送学习报告的邮件服务,支持HTML模板。” 它几秒就生成了完整代码,还带注释。
有一次我故意问它:“如果用户没填邮箱怎么办?”
它回:“建议加非空校验,并抛出IllegalArgumentException。”
我:“那用户体验不好,能不能友好提示?”
它秒改:“已添加前端表单校验 + 后端fallback提示。”
那一刻我愣住了——这哪是工具,简直是结对编程的队友!
后来我又试了 Replit Agent。虽然在国内访问有点慢,但它的“自然语言执行命令”功能太适合快速验证想法了。比如我想测试一个REST接口是否返回正确JSON,不用启动整个项目,直接在Replit里写几句伪代码,Agent就能模拟调用并返回结构化结果。
当然,AI也不是万能的。有次它给我生成的JPA查询方法名写错了,导致N+1问题,数据库CPU飙到90%。还好我在本地测试,没提交到生产(笑死,我哪来的生产环境)。
但总体来说,这些工具极大降低了技术探索的门槛。我不用再为了一个小功能折腾半天,可以把精力集中在“逻辑设计”和“业务价值”上——而这恰恰是考公面试里经常被问到的:“你怎么解决问题?”
四、焦虑与平衡:白天写申论,晚上调Bug
不过,现实远比理想骨感。
十二月的一个周三,我白天请了假去参加线下模考,行测只考了58分,申论被老师批“观点散乱,缺乏政府思维”。晚上回到家,瘫在沙发上不想动。可想到明天还要上线一个公司需求,只能强打精神开电脑。
那天凌晨两点,我在调试一个诡异的事务回滚问题。Spring的@Transactional明明加了,但异常被捕获后居然没回滚。查了半天,才发现是因为我在同一个类里调用了另一个带事务的方法——典型的AOP失效。
烦躁之下,我给Cursor发消息:“为什么@Transactional不生效?我已经加了rollbackFor了!”
它冷静地列出五种可能原因,其中第四条正是我的问题。我照着改了,果然好了。
那一刻,我没感到喜悦,反而有点难过:我是不是太依赖这些工具了?如果哪天它们不能用了,我还能独立解决问题吗?
小林看我脸色不对,递来一杯热牛奶:“你最近是不是压力太大了?要不要暂停一下?”
我摇摇头:“不能停。公务员考试还有87天,项目上线还有3天,房贷下个月5号……停了,就真输了。”
五、反思:技术探索的意义,不止于找工作
慢慢地,我开始调整心态。
我不再把“技术”和“考公”对立起来。相反,我发现技术思维其实和公务员考试高度契合。
比如:
- 拆解问题:写代码要分模块,申论也要分层次论述;
- 边界意识:接口要有参数校验,政策执行也要考虑适用范围;
- 容错设计:系统要有降级方案,人生也要有Plan B。
更重要的是,持续学习的能力,才是真正的铁饭碗。
无论是考公还是继续做程序员,底层逻辑都是:你能为他人创造什么价值?
Spring Boot让我高效交付业务,Cursor帮我节省重复劳动,书籍夯实我的理论基础——这些都不是“炫技”,而是解决问题的工具箱。而公务员考试,本质上也是在考察你“解决公共问题”的能力。
所以,我现在的策略是:
- 工作日:专注工作 + 晚上2小时备考
- 周末:上午刷行测,下午写点小项目保持手感
- 每月留一天“放空日”,彻底不碰电脑,陪小林逛商场或去世纪公园散步
六、结语:在不确定的世界里,做确定的自己
写这篇文章的时候,已经是凌晨一点。窗外张江的路灯还亮着,远处写字楼里仍有零星灯光——或许也有和我一样的人,在理想与现实之间挣扎。
我知道,考公未必上岸,技术也可能被淘汰。但至少在当下,我选择既不躺平,也不内卷,而是“清醒地前行”。
Spring Boot教会我“约定优于配置”,让我少走弯路;
书籍告诉我“基础不牢,地动山摇”;
Cursor和Replit Agent则提醒我:工具是翅膀,但飞向哪里,还得自己决定。
如果你也在职场和梦想之间徘徊,不妨试试:
- 用技术解决自己的真实问题(哪怕只是个打卡App);
- 善用工具,但别被工具驯化;
- 保留一块“为自己编码”的净土——那里没有需求评审,只有创造的快乐。
最后,分享一句我在《Spring Boot实战》扉页上写的批注:
“代码可以重构,人生也可以。只要不停止探索,你就永远有选择权。”
共勉。
—— 阿哲,一个正在刷《行测5000题》的Java程序员
2024年4月,于上海浦东出租屋

评论 0