一年工作心得

121 阅读7分钟

前言

作为一名毕业一年的双非本科生,我从 Java 开发的 "萌新" 走到能独立负责项目重构,踩过坑、遇过贵人,也在技术与职场中摸爬滚打积累了些心得。以下从个人经历技术成长经验分析三个维度分享,希望能给同路的你一些参考(个人 GitHub:github.com/leeqi10,欢迎交流~)。

一、个人经历:从 "雏鸟" 到独当一面的职场路

1. 实习经历:技术入门与软实力觉醒

第一段实习:中小公司的 "破冰之旅"

刚进公司时的我像张白纸 —— 领导让注册 GitLab,我脱口而出 "我有 GitHub",当场闹了乌龙(现在想起还会笑)。最初只能做些老项目维护,比如改改接口参数、排查生产环境的日志报错,但这段经历让我第一次接触到 "真实的开发流程":

  • 学会用Jenkins部署项目,知道了 "测试环境" 和 "生产环境" 的区别;

  • 跟着同事排查过MySQL死锁问题,第一次意识到 "八股文里的事务隔离级别" 不是空谈;

  • 慢慢从 "只会写 demo" 变成能独立接需求,就像雏鸟终于学会扇动翅膀。

image.png

这段时间的成长全靠 "主动凑上去"—— 看同事改代码时凑过去问思路,遇到问题先查博客再请教,毕竟职场里没人会像老师一样追着教你。

第二段实习:杭州公交公司的 "认知颠覆"

这段实习是我人生的重要转折点。当时抱着 "提前完成任务就能转正" 的心态,接手了 "虎跃数据大屏" 等项目,每天追着产品经理确认需求,甚至为了赶进度熬到晚上 11 点(第一次体会到 "成年人的崩溃")。

image.png

但真正让我蜕变的是领导的一句话: "技术重要,但被看见更重要" 。他没教我具体的代码技巧,却点醒了 "个人 IP" 和 "影响力" 的重要性 —— 比如写技术文档时多留注释方便他人接手,开会时主动梳理需求逻辑让大家记住你的思路。

靠着这些 "软实力",我不仅和大领导有了交流机会,甚至在转正关键期被领导力荐(他说 "这小伙子能扛事")。但最后我主动离开了 —— 通过业务接触,我发现公司的核心技术负责人即将离职,而老板没能留住他。果然,我走后不久公司就开始狠抓绩效,印证了我的判断。

这段经历让我明白:职场里,选对平台和看清趋势,有时比努力更重要

2. 工作经历:医疗公司的 "独当一面"

正式入职的第一份工作,是在一家医疗公司负责项目重构。面试时老板觉得我 "思路清晰",直接把重构的担子交给了我(现在想想,当时的勇气比能力多)。

项目的核心挑战是:医院要求系统日均处理 1.2 万份文件传输,而老系统用的是FastDFS存储,分布式 ID 靠 "自研轮子" 实现,性能和扩展性都很差。我的解法是:

  • MinIO替代FastDFS(轻量且支持分布式部署);

  • 引入Snowflake算法替换自研分布式 ID(避免重复造轮子);

  • 搭了分布式集群分流处理请求(物理机器优化 + 软件层负载均衡)。

image.png

最后项目顺利交付,也让我明白:解决问题不必死磕 "纯技术优化",结合资源灵活变通更重要(比如时间紧时,合理利用硬件集群比死抠 SQL 效率更高效)。

二、技术成长:从 "背八股" 到 "用底层逻辑解决问题"

很多人觉得 "八股文没用",但工作一年后我发现:真正的八股文不是靠背,而是理解背后的设计逻辑。分享几个我在实际场景中用到的例子:

1. MySQL 的 MVCC:不止是面试题,更是业务逻辑的 "底层思路"

MVCC(多版本并发控制)是 MySQL 的基础知识点,但在做 "公交一卡通实时扣费" 需求时,我才真正理解它的价值。

场景:多用户同时刷公交卡,需要避免 "重复扣费" 或 "漏扣费"。如果直接用锁机制,会导致并发效率低;而借鉴 MVCC 的 "版本号控制" 思路 —— 给每笔交易加一个版本号,提交时校验版本是否匹配,既保证了并发安全,又没牺牲性能。

核心逻辑:MVCC 的 "读写不阻塞" 思想,本质是 "用空间换时间",这种思路在很多业务场景都能复用(比如分布式系统的数据一致性校验)。

2. TCP 三次握手:消息队列的 "防丢包" 灵感

面试常问 "为什么 TCP 要三次握手",直到做医疗系统的 "文件传输确认" 功能时,我才懂它的妙处。

场景:医院的文件需要实时同步到云端,必须保证 "不丢包"。借鉴 TCP 的 "确认机制",我设计了一套流程:

  • 客户端发送文件时带一个 "序列号";

  • 服务端接收后返回 "确认号"(类似 TCP 的 ACK);

  • 客户端收到确认后再发下一批(避免重复发送)。

这其实就是把 TCP 的 "三次握手" 逻辑用到了业务层 ——底层协议的设计思想,完全可以迁移到应用层解决问题

3. Redis 分布式锁:从 "死锁坑" 到 "看门狗机制"

做医疗系统时,我用 Redis 实现分布式锁控制文件上传,却遇到了 "线程执行时间超过锁过期时间" 的问题(导致并发冲突)。

一开始想 "让锁不过期",但又怕线程崩溃导致死锁。最后用了 Redis 的 "看门狗机制":锁快过期时,让线程自动续期(类似定时任务检查,没执行完就延长锁时间)。

image.png

这让我明白:八股八股文里的 "问题场景",都是前辈踩过的坑,理解了就能少走弯路。

三、经验分析:给新人的 3 条实战建议

1. 技术成长:别等 "被教",主动 "偷学"

职场不是学校,没人有义务教你技术。我的方法是:

  • 看同事的代码提交记录(GitHub/GitLab 的 commit 历史藏着很多技巧);
  • 遇到问题先查官方文档(比博客更权威,比如 Spring 官网的源码注释);
  • 定期复盘:每周花 1 小时整理 "本周遇到的 3 个问题 + 解法"(我的 GitHub 里有整理,可供参考)。

2. 职场生存:软实力比技术更 "隐形加分"

  • 学会 "向上管理":主动给领导同步进度(比如 "今天完成了 XX,明天计划 XX"),避免 "突然被问住";
  • 培养 "个人 IP":在团队里专注一个领域(比如我在公司主动负责 "分布式存储",大家遇到相关问题会自然找我);
  • 看懂 "趋势":像第二段实习时,通过核心人物离职判断公司走向,及时止损很重要。

3. 长期发展:别做 "工具人",做 "解决问题的人"

技术栈会过时(比如FastDFSMinIO替代),但解决问题的能力不会。我的习惯是:

  • 接到需求先想 "为什么要做"(比如重构项目时,先搞懂医院 "1.2 万文件" 的核心诉求是 "稳定" 而非 "炫技");
  • 多问 "有没有更优解"(比如用开源组件替代自研,避免重复劳动)。

结语

从双非本科到能独立负责项目,我踩过的坑和遇到的贵人,都在告诉我:职场是场马拉松,技术是腿,眼光和软实力是方向。希望我的经历能给你一些启发,也欢迎在 GitHub 上交流 —— 毕竟,程序员的成长从来不是孤军奋战~