和叔叔的关于求职的一次对话
这份对话记录涵盖了从职业规划、技术趋势(AI编程)、简历优化、项目挖掘到工程师思维的完整闭环。
珍贵对话归档:与叔叔的深度交流(关于实习、AI与工程师思维)
时间跨度: 1月21日 - 2月初 参与人: 叔叔、我(杰)
1月21日 09:39
叔叔:
研发效能工程师-实习生JD职位描述 a. 在指导下完成负责研发效率、CI/CD 相关基础设施的优化及维护,持续优化完善自动化过程;
b. 参与开发客户端构建工具链,持续优化编译调试效率;
职位要求
a. 本科及以上学历,计算机、软件工程相关专业,学科基础扎实。
b. 熟悉C++/Python/Nodejs语言,熟悉CMake, 熟练使用Git, 熟悉Linux指令及Shell编程
c. 具有全栈开发经验/Android或iOS移动端开发经验优先
d. 搭建自动化集成流程框架或者自动化测试经验优先。
e. 对技术有热情,学习能力强,责任心强,工作认真细致,具备良好的服务意识,具有良好的团队沟通与协作能力。
我: 叔叔,看了下JD,感觉这个岗位比纯算法岗更适合我。我现在做的毕设项目(获客系统)还有几个小网站就是我自己负责全栈开发的。最近为了上线,正好在天天折腾Linux服务器,像Nginx 配置、HTTPS证书、写脚本跑服务这些流程我都有尝试过,但是做的过程中可能比较依赖ai, Shell这块算是有实战经验。这种偏落地和效能的活儿,我上手应该很快。但是,目前项目我主要是用ai写 test.py这样的自动化脚本,所以CI/CD那种大型自动化流程还没太接触,这块知识可能需要学习一下。
我想投递一下试试看。
叔叔: 你有移动端开发经验么?Android/ios
1月21日 09:53
我: 安卓原生开发可能只有学校课程设计水平,用Android Studio写个简单的Demo,懂一点 Gradle构建和 Java基础,但复杂的商业项目确实没搞过。小程序这块我有接触过(用的 Vue/UniApp 技术栈),之前实习过程中接触过,我觉得可能对移动端的适配、调试、网络请求这些逻辑是通的。
叔叔: 你可以先补一补,客户端和 git 操作。
我: git很熟悉,我经常用。
叔叔: 2月初再投递。
我: 好的好的。
叔叔: 算法题也会有,所以还是要准备下。
我: 嗯嗯嗯,算法难度大概是什么样的呀?简单 -中等?
叔叔: 简单 -中等。
我: 噢噢好的好的。
1月22日 12:12(及后续回复)
我: 叔叔,昨天看到个新闻,GPT5.2用7天写出了三百万行代码,复刻了谷歌浏览器,但是我看有人说把项目拉下来之后,发现其实全是架构混乱的壳子,真实的业务逻辑可能被ai用简单的几行代码糊弄过去,维护成本甚至高过ai编辑快速完成节省的时间。然后我上个月写了一个系统,在写的过程中,也是主要是依赖 copilot+Claude4.5完成的,然后复杂的逻辑我用 Claude code+GLM4.7执行文档审核,两个agent合作互相审核和完善,但是最后方案还是需要我来大致看一遍。
然后我就比较好奇,字节的内部对AI编程的看法是怎么样的,是真的觉得ai以后能重构开发范式,还是说更多是辅助工具,用的时候时刻担心会造成大量的幻觉,后期维护成本过高?
叔叔: 之前比较忙,没有回你消息。
简单说下,AI是降门槛和提效的有效的手段。按照目前的AI能力来看,单纯的编码能力已经是顶尖。未来的发展趋势就是AI可以独立完成需求设计、开发、测试、交付验证。现在还只是在初期的阶段。
字节目前对AI编程是积极拥抱的态度,大部分互联网公司是一样的态度,AI使用率越高,团队的效率越高。公司内也有大量的AI工具在建设。
AI的幻觉很大一部分来自于“本身需求的不清晰”,如果你没有给到清晰的上下文,无论是人还是AI,都不见得能给到你想要的答案。类似考试也要划重点,是一样的。在业界的实践中大部分都是在引导大家进行“补充更有效的上下文”,而这件事就是当下必须需要人介入的,这也进一步使得人和人的差异凸显出来,基础扎实,逻辑性强,思维缜密,表达能力好的同学就会更突出更高效。
你的简历准备得怎么样了?春节后可以尝试投一下。 另外算法题还是要刷的,这是判断同学技术基础和思维逻辑的重要参考。
我: 最近在做现在实习公司这边的一个Java项目和刷算法题,我搜了一下字节面试好像是对底层原理要求比较高,所以我想借助这个项目了解一些常用的开发相关的内容(Redis, git命令,进程锁,还有并发之类的,不知道有没有用)。
我最近也在和ai聊,然后ai说大厂想要招的不是只会curd的开发,是想招有架构师思维的开发人员。
叔叔: 是多方面考察的,比如你做的java项目,有什么难点?你怎么解决的?一般会顺着项目了解细节,评估需求的难度/复杂度。以及你的应对方式,是被动的接受需求还是有自己的想法。看你做事的方式。
对技术有热情,学习能力强,责任心强,工作认真细致,具备良好的服务意识,具有良好的团队沟通与协作能力。
从你做的事情中评估你的技术热情、学习能力、责任心等等。
12:03
我: 情景是这样的,五个月前我招进来这个公司(遨森电商)的岗位工作其实是低代码平台影刀开发,但是组长分配的RPA需求我通常半天搞定(排期可能是一两天),剩余时间主动申请调研这个Java项目,起初带我的师兄只是让我写个预研究报告,但是我空的时间实在太多了,他们分配的任务一点难度都没有,然后我就开始写代码了。
然后组长给我分配了接手另一个实习生开发的公司自研平台对接Wayfair平台商品推送的Java项目,两个星期前接手的时候,GraphQL封装层耦合严重,"改国家"要动几十个文件,还有编码bug。然后我就在做影刀工作的空余时间,就把它给重构了一遍。最近是在调研公司他这边其他平台对接的实现方式,用AI给他总结。然后再结合Wayfair平台的开发文档用AI先生成了一版初稿,然后我再慢慢的改。
其他:之前还做过FastAPI获客平台、个人网站练手(GitHub Actions+CICD)。
我(补充): 对了,这个Python项目,主导获客系统开发 (FastAPl)。针对第三方接口不稳定性实现指数重试机制;针对AI生成的冗余代码进行模块化重构,降低维护成本,提升可读性。这个是和温州一个公司一起做的一个外包项目,相当于是线上的远程实习生。
我就担心,项目难度这一块会不会面试官有点看不上。或者我假期在家可以补充一下哪部分内容嘛。
12:15(关键拷问)
叔叔: 你觉得这些项目有什么难点?
--组长分配的RPA需求我通常半天搞定(排期可能是一两天)
- 是因为需求简单你能半天能搞定,还是因为你比别人能力更强,做得更快?别人能不能半天搞定?
- 需求的质量怎样?交付后是否有完整的测试流程?还是自己测测没有问题就交付了?
-- GraphQL封装层耦合严重,"改国家"要动几十个文件,还有编码bug。然后我就在做影刀工作的空余时间,就把它给重构了一遍。
“重构”的技术方案是什么样的?做了哪些事情?效果怎么样?
一般面试就是这样,顺着你讲的项目,点深入问一些细节来了解项目难度和思维方式。 除了这些之外还有就是技术基础和代码考核。
我:
- Python这个,主要是对接的平台(tikhub)经常改api,因为抖音的反爬机制是很厉害的,所以基本上定不定期就要进行接口的重写,有时候新的能用,有时候老的能用,需要经常关注公告,我就写了一个回退机制,就是同时写了V3到V6的接口对接程序,然后需要用到哪个,我就给他开启哪个。
还有就是AI生成的代码虽然一下子生成很快,往往存在很多bug,我就通过ai写单元测试的方式来修复。比如说我把技术文档已经丢给他了,但是他生成的还会遗落一些参数。所以我写测试文件校验输入输出。 同时同事为了追求项目进度,就经常把很多函数写在一个文件里导致维护的时候翻起来很麻烦,我就给他重构了一下。模块化了。
- Java这个目前是在重构的过程中发现在他写的一些代码在别的地方调用不了,然后我回去检查,才发现实习生同事把所有的通用实体类写成了私有类。但是因为其实目前只写了传输层的类的定义,所以技术难点上其实都没有碰到很难的。
叔叔:
你自己也不觉得这里有难点,所以项目经验这块没有优势。那技术基础和代码考核的影响就会增大。
--还有就是AI生成的代码虽然一下子生成很快,往往存在很多bug,我就通过ai写单元测试的方式来修复。
AI生成代码会存在bug,那AI单测也会有同样的问题,这里是怎么解决的?
12:24
我: 开始没有这么快的,就是三个月之后,我大概就比较熟悉影刀了,就经常是提需求的速度赶不上我写的速度,而且他这个需求是周期性的,就是有时候业务比较忙的时候,需求会比较多,闲的时候我觉得没事情干,我就主动找了。
需求主要分为两类: 一类是维护旧的平台,比如说亚马逊商品上架,这个就是要先去理解它的复杂逻辑,然后修复一些小的逻辑错误,或者是修复一些元素失效的问题,这个是比较前期的开发任务,后面的话,因为这个流程我比较熟悉了,改一下就比较快。但是测试还是挺耗时间的。 另一类是把原来他们需要人工做的复杂的流程,想通过自动化的方式,比如说去亚马逊上下载商品信息,然后再传到飞书上面,再自动调用引导的AI去实现类目的一个分析,再传回飞书上,这是我写的比较复杂的一个自动化流程,写了一个星期吧。
交付的之前肯定是测试过,然后保证测试用例都符合业务方的标准,然后再让业务确认一遍,没问题就交付,之后有bug的话,我让他们提需求,然后我再去优化。
叔叔: 大部分实习生的经历都差不多,但是技术基础、思维方式、沟通能力会差别很大。
我: 先是调研了一下Wayfair平台的技术文档,我是一个个发给AI,让他总结文档的内容,然后总结的过程中,我发现有几个参数是好像每个节点都要用到,我就给他们整合了一下,写成通用实体类。
12:32
我(回答关于AI测试准确性的问题): 因为AI生成的测试内容它会描述的比较详细,我给提示词就让它,输出的过程加一些文本,我就能够清楚的判断出是哪里出了问题,然后我就可以快速的回去定位他的问题。
这一块主要是原来的函数比较长,但是单元测试的函数相对来说会简单一点,所以定位起问题会好定位很多,基本上我自己也能看出来。
还有就是我喜欢在提示词里面让他加日志,这样的话,方便我了解他每个行为在做什么,从输出里面也能看出来,然后确认功能没问题的再把不必要的日志删除。
我(补充): 这也是写那个Python项目的时候我发现了一个方法,就是往往给AI的信息足够详细,它能快速定位问题出在哪里,后面我就遇到比较复杂的问题,我就会让他加日志,这样我的工作量就会少很多。
12:47
我: 我反思了一下自己的回答,太不严谨了,我好好复盘一下。
13:13
我: 应该是思维方式的差异,我想的是交付,系统能跑就行,但是没有考虑系统的稳定性,是脚本思维,删日志,ai写的测试也不可信,衡量标准应该是业务的文档,应该由人来定义这个标志,然后再根据这个标准进行测试。
之前太关注交付速度,忽略了从系统的角度考虑问题,谢谢叔叔点拨。