如何技术探索与实践?——一个从测试转开发的北京打工人手记
去年十月,我坐在天通苑地铁站旁边的全家便利店门口,啃着15块钱的三明治,盯着手机里那封被拒的邮件发呆。那是我投递的第37份开发岗简历,HR最后一句“候选人经验与岗位要求不匹配”像一记耳光,打得我有点懵。
我是谁?坐标北京,租房住在天通苑,房租3500,每月到手工资15k,三年前还是个做黑盒测试的QA,现在硬着头皮转行写代码。老婆在老家带娃,视频里总说“你别太拼”,但我知道她心里也急——毕竟在北京,15k连体面生活都算不上。
今天想和大家聊聊,作为一个半路出家的开发者,我是怎么在技术探索与实践中一步步摸爬滚打过来的。这不是一篇高大上的成功学,而是一份带着油烟味和焦虑感的实战记录。
从“点点点”到敲代码:我的第一次项目突围
2021年夏天,我还在一家中小厂做测试。每天的工作就是点点点、写用例、提bug。不是说测试不重要,但看着隔壁开发组的人讨论微服务、K8s、CI/CD,我内心越来越慌。那会儿我刚结婚,老婆怀孕了,突然意识到:如果再不转型,可能一辈子就困在“辅助位”了。
转折点出现在一个内部项目上。公司要搞一个自动化测试平台,但开发资源紧张,主管问:“有没有人愿意试试用Python搭个原型?”我几乎是举手抢的。其实我只会写点基础脚本,连Flask都没正经用过。但我知道,这是机会。
接下来一个月,我白天做测试,晚上回家就啃《Flask Web开发实战》。那本书翻得快散架了,天通苑冬天暖气不好,我裹着羽绒服在电脑前敲代码,手指冻得发僵。最崩溃的是部署那天,Nginx配置死活不对,凌晨三点还在Stack Overflow上翻帖子。最后靠一个老哥的冷门回答解决了问题——那一刻,我第一次体会到“解决问题”的快感。
这个项目虽然只是个内部工具,但它成了我简历上第一个“开发项目”。更重要的是,它让我明白:技术探索不是等你准备好了才开始,而是边做边学,边错边改。
求职季的血泪教训:综合能力比语言更重要
有了项目经验,我开始投简历。但现实很骨感。很多JD写着“熟悉Java/Go/Python”,可我只会Python;有些要求“有高并发经验”,我连Redis都没碰过。最打击我的一次面试,面试官看了我做的测试平台,直接说:“这不算真正的开发项目,太简单了。”
那段时间真的很焦虑。每天下班回来,老婆问我“今天有进展吗”,我只能含糊其辞。有天晚上,我甚至在想是不是该回老家找份安稳工作。
但我不甘心。我重新分析了招聘市场,发现真正缺的不是“会某门语言的人”,而是能解决实际问题的综合型开发者。于是,我调整策略:
不再只学语法,而是围绕真实场景构建项目
我用Python+Django重写了那个测试平台,加了用户权限、异步任务队列、日志分析,甚至集成了Jenkins。虽然功能不算复杂,但覆盖了Web开发的核心模块。把教程当“菜谱”,而不是“圣经”
很多人(包括我)一开始学技术,就是照着教程一行行敲,以为学会了。但真正面试时,面试官问“为什么用Celery不用RQ?”、“数据库连接池怎么调优?”,我就傻眼了。后来我学会了一个方法:每学一个知识点,就逼自己问三个问题——它解决了什么问题?有什么替代方案?在什么场景下会失效?主动制造“故障”来加深理解
比如学Docker,我不只是跑个Hello World,而是故意删掉镜像、改错端口、制造OOM,看系统怎么崩。这种“破坏性学习”让我在面试时能说出“我们线上遇到过容器内存泄漏,通过cgroup限制+监控告警解决了”,比背概念强十倍。
从15k到22k:一个真实offer背后的思考
今年三月,我拿到了现在的offer,月薪22k,做后端开发。谈薪那天,HR问我期望多少,我说“20k起吧”,心里其实没底。没想到对方直接说:“22k,下周一能入职吗?”
后来才知道,打动他们的不是我用了什么高大上的框架,而是我展示的解决问题的思路。比如我提到:“在测试平台项目中,最初用SQLite,但并发一高就锁表,后来换成PostgreSQL,还加了读写分离。”——这说明我有性能意识,知道权衡取舍。
更关键的是,我在GitHub上放了完整的项目文档,包括:
- 需求背景(为什么要做这个平台)
- 技术选型对比(为什么选Django而不是FastAPI)
- 遇到的坑和解决方案(比如跨域问题、定时任务重复执行)
- 未来优化方向(比如引入Prometheus监控)
这些内容,比单纯贴代码有价值得多。企业要的不是“会写代码的人”,而是“能推动项目落地的人”。
给同样在挣扎的你的建议
如果你也像我一样,是半路转行、基础不牢、在一线城市挣扎求生,我想分享几点血泪经验:
1. 项目要“小而深”,别贪大求全
不要一上来就想做个“电商系统”、“社交APP”。我见过太多人卡在“用户登录”就放弃了。不如从一个具体痛点出发,比如“自动整理下载文件夹”、“每日日报生成器”,把它做到极致——加上异常处理、日志、配置管理、单元测试。一个小工具,也能体现工程能力。
2. 教程是用来“拆解”的,不是用来“膜拜”的
B站、慕课网的教程很好,但千万别照搬。试着把教程里的代码拆开,换成自己的业务逻辑。比如教程用MySQL,你试试换成MongoDB;教程用RESTful,你改成GraphQL。只有当你能“魔改”教程时,才算真正掌握。
3. 求职不是考试,是价值匹配
别再问“我需要学多少才能找工作”。企业招人是为了解决问题,不是找“知识库”。与其背100道LeetCode,不如讲清楚你如何用50行代码帮公司省了10小时人工。
4. 允许自己“慢”,但别停
我从测试转开发,花了整整18个月。中间无数次想放弃,但每次只要前进一点点,就离目标近一点。上周五晚上,我又在改一个开源项目的PR,老婆打电话问“还不睡?”,我说“再半小时”。她说:“你变了,以前回家就躺平。”我笑笑——不是变了,是找到了值得燃烧的东西。
最后:技术探索的本质,是认识自己
写这篇文章的时候,窗外是天通苑熟悉的夜色,远处13号线的灯带像一条发光的河。三年前,我在这里焦虑地刷招聘软件;现在,我依然住在这里,但心态完全不同了。
技术探索与实践,从来不是一条直线。它更像在迷宫里摸索,有时撞墙,有时绕路,但只要你手里有“项目”这根绳子,就能标记走过的路,最终找到出口。
所以,别怕起点低,别怕踩坑多。真正的技术成长,不在教程里,而在你解决下一个问题的决心中。
共勉。

评论 0