📚 文稿库

大二后端杂谈:实习做项目与自己做项目有什么不同,第一段实习的真实感受

大二学生分享后端实习的真实体验,对比个人项目与公司项目的差异,并介绍Git流程及常用技术栈。

UP主: Stellar鱼 · 时长: 14:29 · 🔗 B站原视频

标签: 后端开发 · 实习经验 · 职场成长 · Go语言 · 程序员

零基础速通后端Golang后的实习初体验

Hello,好久不见,时隔半个多月我又来了。上个视频给大家分享了自己作为大二人工智能专业的学生,如何一个半月零基础速通后端 Golang,找到了一份中小厂的实习。我分享了学习的心路历程、投递过程、学习方法,以及如何背八股、做项目,还分享了两个项目给大家。这期视频想分享一下自己真正上班之后,对于后端这个行业和这份工作的一些看法,希望能让大家对这个工作产生兴趣。这真的并不是很难的一件事。还有一些大家典型的问题,我挑出来了,可能会放在最后,也可能放在另一个视频。

实习第一天:面试造火箭,进去拧螺丝与Git开发流程

分享一下自己第一段实习的感受。我觉得实际实际上手实习比面试过程要简单得多,面试造火箭进去拧螺丝,还真是。实习第一天主要是熟悉主要的开发流程。公司一般有自己的文档,我虽然不能把公司的文档直接拿出来,但我找了一些比较优质的学习文档。比较重要的一点是,你在上班或面试时,差不多要会一点 Git 命令,它非常重要,上班几乎每天都会接触,一定要会,这也是基本功之一。

主要是熟悉 Git Flow 的开发流程,这是开发的基础。至少要懂得如何处理冲突、拉取分支、查看分支、上传代码。因为公司代码一般都在远程的 GitLab 上,开发时是拉取远程 GitLab 的 test 分支,在 test 分支上开发。开发完之后再把功能合并到 test 分支,让你的 mentor 去 review。他查看代码没问题后,再合并到主环境,也就是 master 分支,master 分支就是正式环境。熟悉这个过程我差不多花了一下午时间。实习到公司前一天做什么?就去好好看一下 Git 上传的基础。千万不要在公司上传时,把自己的屎山代码合到公司的旧分支上,导致线上正式环境出现问题,这就很糟糕了。听说我们厂线上如果出现问题会扣一定的绩效,扣工资是每个程序员都不希望的。

公司常用技术栈与Protobuf协议

具体的话我这里有一个文档可以看到,整个知识库都在我的主页链接里面,是一个开源社区,有兴趣的同学可以找我,不想进群的话私发我直接把文档给你就行。还有一个是公司技术栈。我目前入职的公司主要用的就是 Gin、gRPC、MySQL、Redis,还会涉及一些消息队列,还有 Protobuf。我觉得这些是最常用的。

Protobuf 是怎样一个协议呢?这个可以单独学习一下。个人开发自学的话,项目里面很少涉及,但在公司基本上会一直用。当天下午我也花了一些时间学,其实也比较简单。这个协议你可以把它转换成 Go 里的结构体,然后在代码中调用。它是一个前后端约定俗成的协议,你也可以把它理解为 HTTP 传参的请求头和请求体,包括 request 和响应的 response,都是对应的。这个值得一学。

实习第二天:看懂项目架构与统一代码风格

第二天我上手学习并开始写一些简单的接口。mentor 一般第二天会让你先看代码然后再改,去改一些小需求。第二天下午的感受就是感觉好眼熟呀,基本跟我之前看的某个全栈项目的结构是一模一样的。公司都会遵循一定的 MVC 架构,我当时看到公司的代码跟那个结构一模一样,所以第一眼看就非常清晰。做的第一件事就是去路由底下找那些函数,并不看项目的具体功能实现,一般就是改前后端通信的接口。那天我主要是做了接口功能的修改,非常简单。

其次,实习时要注意统一代码风格。写接口之前一定要把项目结构弄懂,代码风格最好仿造已有项目的,包括处理日志的方式、错误处理方式、定义接口的方式、接口函数写在哪个文件。一方面方便自己成体系,一方面方便同事 code review。我当时去改接口时,大部分是仿造同事之前的接口。公司的路由定义不会差很多,你就点进去看看其他同事的写法是怎样的。你可以借助 Cursor 去仿造代码风格,实现功能。一定要用差不多的风格,不要写自己的风格,会很抽象,变成屎山,别人也不好帮你维护。我上手因为仿造 mentor 的代码写法,还被夸写的挺好。

实习到底学什么:积累业务场景与解决方案

还有就是多去读公司的文档。实习三个月是比较难有自己真正的整体项目产出的,一般也不会让实习生从零开始写一个项目。所以要多看公司文档和代码,去学已有的业务逻辑,比方说比较有含金量的支付逻辑、注册登录逻辑,甚至订单抢购秒杀的实现。像我就特意去学公司用消息队列的场景,最后可以把它写到自己的简历里面,就是处理并发的解决方案。

实习主要是学什么?主要是学解决方案。这些是你自己独立开发、自己找项目做比较难接触到的场景。实习时就可以多学公司是如何处理这些场景的,他们肯定有自己的解决方法。锻炼自己能力的机会包括改代码、改 bug。有些写 SQL 的工作可能比较杂活,但对我来说,其实 SQL 不是很熟练,写 SQL 的时候也能锻炼我的能力。同时还会有一些按照业务逻辑修改代码的任务。

职场沟通技巧与接口测试小妙招

修改代码逻辑时,一定要把已知的结构先弄懂。看着公司的代码,大部分人可能难以自行开展工作,当时我看着代码逻辑也很懵逼,不懂需求是什么。这时候要多找 mentor 问,稍微会来事儿一点,趁他不忙的时候去交流一下,还可以请喝奶茶,去请教问题,一般他们会比较愿意跟你交流。

写完代码之后会有测试环节,你可以借助插件进行单测,或者用 Postman 进行接口测试。自己做项目时,测试工具一般也是这两种:一是让 AI 帮你写测试文件,二是如果有用户 token 的话,用 Postman 进行测试。本地跑的时候,可以把鉴权接口注释掉,去掉之后就能自己去测那个接口,这是一个小技巧。

以上就是我在实习前三周做的事。总体氛围比较轻松,有很多摸鱼的时间。大部分时间回一些消息没人管你,不忙的时候也可以做自己的事提升能力,公司一般不会很压榨你。

面试的本质与下期预告:AI专业为何转后端?

关于找实习面试,我跟面试官聊天也有了一些感受。面试的本质,其实面试官基本就是你入职后的 mentor。面试就是要会说,至少让面试官对你放心。让他放心的方式有很多:一是你能待的时间够长,说明你能学得够久,不会半路跑路。任何面试官都不希望把你教会了、发了工资,结果你做一段时间就跑路了。二是基本素养,也就是基本的 coding 能力,体现在算法能力或项目能力上。你能把项目的业务逻辑说清楚,面试官基本就能感受到你这个人差不多可以了。他还会考你一些随机应变的能力。面试的本质就是这两点,不要把面试看得太可怕。我实习感觉做的事非常简单,很多时候是先上车后补票。别人交给我任务时,如果我不会做,一是可以自己花时间学,二是可以去跟别人交流。

最后想跟大家分享一下,我的室友是天津大学做算法的硕士,我本身是人工智能专业,我们经常聊天。我本科其实学了两年人工智能之后,才转向后端方向的,所以对后端和人工智能都有了一些感受。对于人工智能专业,到底要学后端去开发,还是真的能去做大模型?大部分人都有这种疑问。下个视频可能会给大家分享一下我作为人工智能专业的经历。我学了两年深度学习,在实验室主要是做 RAG 方向的,做项目还拿过 4000 块的劳务费,足以说明我在这个领域也有一定的认识。下期视频大概会给大家讲解一下这些,同时也会回答大家的一些问题。OK,这个视频足够长了,拜拜。

On this page