Stephen Avatar

2016年我工作的第一年. 当时是在一个工作流引擎内构建公司业务流程图,然后在流程图内编写Groovy来作业务逻辑的编码实现. 那时在页面内写程序好像没有太多的提示,写完要run一下甚至是要把流程完整跑一下才能知道有什么明显的bug.很难想象当时这个小问题我排查了大概两个小时,现在 AI编程 Vibe Coding 两个小时一个项目都写完了.时间过去了十年,编程这件事无论是学习还是实际开发都发生了难以置信的变化.

我是2015年底开始自学编程的,当时的B站已经有很多人上传编程教学视频,看了一些视频之后,我觉的视频学习有一种被别人牵着走的感觉,而且教学视频质量参差不齐,后面我就以看书,百度,论坛为主了。前几年一个很流行的段子就是StackOverflow 提问最多的问题是 如何退出Vim 当然我也为其贡献了宝贵的访问量。我在Ruby China提的第一个问题是一个环境问题 我的 rails 一直安装不成功,大概过了半天论坛大佬看了我的贴图回复需要 yum install nodejs, 在当时觉得这个世界充满爱,自己也要成为能够帮助别人解决问题的人.甚至有些时候一些依赖库版本导致的问题需要自己去github找isuues找解决方案. 现在新人学习的方法可就太友好了,ChatGpt,Gemini,DeepSeek Kimi 千问,豆包这些工具基本满足95%的提问场景,甚至如果有能力的话AI Agent 现在很火的龙虾完全可以不需要自己动手,如果想做一个小产品逻辑也有之前的只差一个程序员,变成了写好自己的提示词。

2016年9月到今天,工作时间还有半年就满十年了。这些年除了学习方式的变化,项目开发,测试,部署整体协作也和当初大不相同。刚工作的前两年Web开发领域还是单体服务为主,前后端也都在一个项目内协作像java JSP,Rails erb这些方案也算是主流,php 作为世界上最好的编程语言在当时也还占有很大一部分市场份额。当时的前端开发还是团队中一个比例不高的岗位,职责也往往是负责页面样式优化,javascript相关用的基本都是JQuery一把梭,公司用的前端框架还是AngularJS。后面到2018年我发现后前端圈子内讨论的都是 SPA,React,前后端分离这些概念。再后来Vue横空出世,国内Web开发领域前后端分离已经成了主流,单体架构也在向微服务架构转型,前端一些古老的iframe方案也渐渐开始使用微前端替换。后端领域也随着 Spring Srpingboot 这种杀手锏框架的普及,给人一种后端开发只能用java的感觉,我当时作为Ruby开发者除了躲在小众圈子时不时嘲讽一下java丑陋的语法,在职业前景上也渐渐感觉到技术栈带来的局限。测试这个岗位也从我刚入行大部分都是点点点工程师到后面严格测试用例编写与执行,客户端测试,服务端测试,自动化测试,功能与非功能测试,测试开发,混沌工程等概念以及岗位的细分逐渐的提高了人员的职业素养与技能要求。在运维领域也是随着云计算,容器,云原生技术的普及,现在很少有企业自建机房,自己维护服务器扩容网络搭建这些基础设施。服务部署也基本由原先的源码 jar war直接运行,到容器化部署,云原生,CI/CD DevOps这些技术所逐渐替代。现在AI浪潮如火如荼,对我们IT行业更是有革命性的冲击。一些业务清晰,需求简单,交互链路明朗的场景,AI写出来的代码确实又快又好。我和同事今年就一个即时通讯产品进行了一些AI Vibe Coding实践后面有机会我展开说一下。十年的时间变化的很快,技术上的革新,产业的升级改变了原有的很多习惯和想法,我的技术栈也在近几年不断的更新。

我的第一份工作其实不完全是一个开发岗位当然title还是开发工程师,当时主要的工作在前文已经有所介绍,我所在部门是信息中心,除了负责内部CRM ERP少量的业务开发外,帮助各地办事处同事重置系统密码也是我很大的一部分工作量,我9月份入职,大概在12月份的时候在网上搜索Groovy相关资料,阴差阳错的发现一个同是脚本语言但是声称让程序员感到幸福的语言还有他国内的技术论坛Ruby-China。 发现RubyChina的那一刻有一种发现新大陆的感觉,原来编程可以像说话一样简单,原来论坛又这么技术大佬分享了高质量的技术文章,原来Linux不是只作为服务器,原来还有语言对windos环境如此不友好。当时我查看了一下北京Ruby招聘的情况,其实当时已经不容乐观了 但还是有几十家企业在招聘ruby工程师,那时我也下定决心要做ruby开发。因为我跟着一本叫做Rails 5敏捷开发的书开发了我的第一个网站。这里有两个插曲,一个是我用公司打印机打印ruby 技术书籍被领导发现,另一个是CTO拿着一本Pyton Machine learning跟我说 机器学习都是用python 你还在学这种没人知道的语言,现在回头想想也很是唏嘘。后面换工作到Ruby作为主要技术栈的公司,就开始完全使用Ruby作为主要开发语言,也正是开始Ruby On Rails的开发之旅,这趟旅程一直到2023年才完全结束。这里也非常感谢Matz, DHH这些大佬发明了Ruby语言,Rails框架,这些技术使我在编码习惯,产品思考,甚至linux相关的领域对我有很多正面积极的影响,一些设计理念,开发思想我觉得是终身受用,包括在后面使用其他语言来做产品,或者做工具都有很大的帮助。

我现在主要是使用的开发语言是golang 和python 还有少许c++。这几种语言各有利弊,在各自擅长的领域可以说是还没有替代者。像golang 在云原生领域,python现在在AI应用,数据分析,c++在底层开发,高性能服务,还有算法领域大部分开发都是使用c++,以及现在的机器人行业也都是c++为主。

说了这么多主要还是为了记录一下我这近十年的工作脉路,从开始的脚本开发,到web开发,再到golang的云平台开发,c++机器人无人机开发,还有使用python做自动化,做测试工具,做自动化部署脚本,做一些项目管理充当一些push的角色。感觉主流技术栈都做了个遍,岗位角色也越来越不明确,好像越做越杂,不过有一个感觉就是可能因为技术能力以及思考问题的心态的转变,我对工作内容,遇到的问题,处理起来都比之前要更加合理,工作视角也从初期或者中期的埋头编码,到现在视野更加广阔,开始思考团队协作,成本把控,投入产出这些更上一层的内容。

今天我把之前GithubPages 仓库delete掉了,这个仓库的流水线坏掉了,而且也有段时间没有更新,看了之前写的技术相关的随笔和一些内容也有和当时不一样的感受。删掉重写也算是对过往的经历的一些总结,还有一些技术栈的回顾,后面会按照时间线从后往前整体回顾整理一下技术脉络,是不是写点随笔发发牢骚。

不管怎么样明天的太阳依旧火热,生活也会越来越好。技术是服务于人,产品是服务于人。而我们作为行业内研发也好 测试也好 PM也好 Stay hungry Stay foolish。但行好事莫问前程,Everything is alright