精选

鱼厂实习总结来啦!

缘起

去年 8 月 6 号,y 哥问我我是否有当编程小助手的意向,当时我还有些犹豫,现在想想真的差点错过了这个宝贵的机会。一年前的我怎么也没想到,这竟然成了我进入鱼厂实习的契机。当时 y 哥找我的原因,我想主要是因为我在编程导航社区比较活跃,之前在群里帮助过不少鱼友远程解决技术问题,现在想想真的是无心插柳柳成荫啊。

编程小助手经历

我现在还清楚地记得,备考专升本的那段时间一边上高数、英语课程,一边在下课后查看编程导航帖子和群里的消息,看看有没有我可以回答的问题。尽管忙碌,但帮助他人解决问题让我感到充实,真是痛苦并快乐着。

最难忘的经历莫过于除夕夜,我还在帮一位朋友调试 Bug。这真是一次神奇的跨年经历。

这段小助手的经历让我收获巨大。过去学习项目、解决问题都是独自摸索, 主要通过学习鱼皮大佬给其他人的问答来明确方向,很少有机会与鱼友深入交流 。但通过小助手这个机会,我结识了许多优秀的鱼友,更重要的是变得更加自信了。就像游戏中打怪升级一样,每解决一个问题,我的自信 +1。这种成长体验让我受益匪浅,现在遇到暂时解决不了的 bug 也不会慌张,相信自己一定能够找到解决方案👍。

到目前为止,我已经添加了将近 500 个鱼友,非常感谢每一位愿意让我帮助的鱼友,谢谢你们的信任,我一定会继续努力!

线下实习机会

6 月 3 号,去哈尔滨参加专科毕业答辩的高铁🚄上,我突然收到了鱼皮哥的消息,说我可以去线下实习。当时还以为是在做梦🤣从天而降的实习机会啊,而且时间非常合适,我专升本考试结束后到开学前有大半年的空闲时间,正好可以去实习啊,真是求之不得的机会。

再次感谢鱼皮哥和 y 哥给予的宝贵机会!

鱼厂的上班氛围也是真的好,大家可以因为某一个话题有说有笑,也不会有人疯狂 PUA。到吃饭的点就去干饭[手动狗头],团建还非常多,我在的两个月大概团建了大概 4 次的样子,鱼友们有去鱼厂的机会就不要犹豫了,干就完了!

实习感悟

两个月的实习时间让我成长了很多,也发现了自身的不足。总结可能有不对的地方,大佬们多多包涵😭

不要自以为是,不懂及时沟通

大佬 A 让我修复一个小 bug,我按常规操作新建分支并切换到对应分支进行开发。在配置数据库相关信息时遇到了报错,但我没有及时向大佬 A 反馈获取最新的 SQL,而是自作聪明地把对应的 entity 类交给 ChatGPT 生成 SQL。完成功能后提交 PR,结果出现了非常离谱的问题:我本地运行正常,但在大佬 A 那里直接报错,浪费了他一下午的时间😭。大佬 A 也告诉我像这种修改了数据库的表这样重要的内容,正常工作都是由一个专门的文档进行记录的,非常重要!

经过这一次意外让我深刻意识到:有问题一定要及时反馈,而不是自以为是。不要害怕提问,搞清楚问题大家都能节约时间。不懂就问,不确定就问,避免南辕北辙!同时有风险要及时暴露出来,不要等到快验收了才抛出问题,到时候神仙也救不了啦。

要准确理解需求才能避免返工

写代码之前一定要做好充分的调研和实现方案文档,这比写代码本身更重要。如果没有调研好,方向错了,就需要重新编写代码,给大家增加没有必要的工作量。比如, 在开发一个内部工具时,需要将 PlantUML 代码转化为图片,我当时并未完全理解 PlantUML 的作用,想当然地以为,可以直接将框架生成的流程代码渲染成图片,结果自然是南辕北辙,做了大量无用功。

不得不感叹,这个表表情包太真实了

写文档贯穿始终

这两个月对于文档的理解真的是深刻啊。文档真的是贯穿始终了,第一个需求是大佬 A 给我调研好的文档,后面的需求是自己写的文档,最后也是有离职文档要写,写文档真的是贯穿始终啦

比如我就学习到下面的几点

1)使用到了一个新的框架,需要提供可以直接运行的简单 demo

2)需要重点说自己的卡点(浪费时间最久的卡点)不要再让读文档的人再浪费时间去踩一遍坑

3)主流程要清晰,开始列举序号的时候前面都要介绍一下你下面的是啥,这样读文档的人就可以挑选自己有用的信息去读

4)README 文档一定要表明代码运行的环境比如 Node22、Java17 等等

5)如果是需求调研文档,最后的总结一定要具体指出自己选择的哪个方案,以及各个方案的优缺点做一下介绍。做到读文档可以只看总结也可以了解各个方案的优缺点,节约时间

6)重点代码要着重标注,不重要的代码可以进行折叠

比如,在语雀可以这样

重点标注示例

折叠代码示例

代码规范的一致性

第一次提 PR 时,我的代码风格与项目整体规范不一致,导致大佬 B 花了大半天的时间来 review,浪费了大佬宝贵的时间。很多问题其实都是可以提前避免的,保持与项目代码规范的一致性也是很重要。

比如团队协作一般都要使用的 Git , 我当时没有理解 merge 和 rebase 的区别一时着急用了 rebase 虽然没有造成线上 BUG 但是还是浪费了大佬的时间

为了防止以后忘记我专门记录一下 Git 操作流程,下面重点就是这个

Git 操作流程规范

提交代码前的标准流程,先更新一下主分支代码看看远程仓库里面的代码是否有更新,有更新就需要先 merge 主分支代码到自己的分支,之后再把自己的修改 commit 然后再 push

第一步:拉取主分支最新代码

1)使用 IDEA 自带工具

2)使用 Git 命令

bash
复制代码
git fetch xxx

第二步:切换到自己的分支
如果分支名是 dev/leikooo 这种格式(两个单词间有 /),IDE 中会显示目录层级结构,更加直观。

第三步:合并主分支代码

1)使用 IDEA 可视化
在主分支上右键选择 Merge 'master' to 'xxxx'(把主分支最新的代码 merge 到自己的分支),切记选择 Merge 而不是 Rebase,避免像我一样😭

2)使用 Git 命令

这个命令表示: 把 xxx 分支 merge 到当前分支

shell
复制代码
git merge --no-ff xxx

第四步:提交并推送
完成 commit 后再 push,可以直接使用 IDEA 进行操作。选择自己想要 push 的分支进行 push

充分测试的必要性

提交 PR 前一定要进行充分测试,尽量避免因为明显的 bug 导致重新部署上线,这样很浪费大佬的时间。不要像我一样,连前端很明显的 bug 都需要大佬指出后才去修改。比如前端的页面过滤选项正确和错误两个选线颠倒了。这种完全可以避免的问题就真的没必要等到线上之后发现再修改,测试也是很重要的啊!之前没有意识到测试的重要性

总结

回首过去,从高考后那个对编程一无所知的少年,到如今能为社区贡献一份力;从专升本的成功上岸,再到走进鱼厂实习,每一步都离不开幸运的眷顾。我庆幸自己过去几年的坚持学习,庆幸当初那个克服社恐的自己选择了帮助他人,更庆幸自己没有在一个耗时一周的 Bug 面前选择放弃。

非常感谢编程导航这个平台,感谢鱼皮大佬,最近几年的重大事件都有编程导航的陪伴,每天刷一下真的会获得向上的动力(鱼友们学历又好又卷啊😂),现在回看当年的打卡记录和积分排行榜的截图,真的是感慨万千!

体验过上班之后也深刻的理解到,上班的不容易真的还是挺累的,每天拖着疲惫的身子挤入人满为患的地铁,披着朦胧月光回到狭小的出租屋。我感觉可以能够理解为什么上班之后就不上进的原因了,太累了啊!虽然如此还是希望自己在未来工作的时候能够持续精进不要温水煮青蛙的颓废掉,虽然会很累但是什么又轻松呢?想起来一句话 「 真正有价值的事,从来都不是轻松舒服就能完成的 」

这次实习经历让成长巨多,让我明白出了问题要及时反馈、不懂就问、有风险及时抛出、代码规范、文档的重要性。非常感谢鱼厂的各位大佬的帮助,再次感谢鱼皮哥、y 哥给的机会😭。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
下载 APP