27届 在字节实习有感!!!

1. 实习有什么作用

看到漫天的帖子都说实习是为了找工作,进大厂,但是这是建立在你已经确定好要工作的情况下,其实这个时候实习就是你必须要经历的一部分了,但我想说的是实习对于还没确定方向的同学来说有什么作用。

1.1. 对大厂祛魅

经历过实习之后,你就知道工作到底是在干什么,做一个需求需要经历什么,每天的工作强度是怎么样,不是说你进了大厂就能接触到多么厉害厉害的技术,相比于华丽的代码,线上的稳定性更加重要,再好的设计模式也比不上0bug的舒服。但是这不是你写屎山代码的理由,在保证稳定性的基础上,去优化自己的代码。

上班之后你就知道双休是多么舒服,在上学的时候不觉得,上班之后周末的两天超级爽,尤其是周五的晚上,又可以早下班又可以熬夜玩,不用担心第二天会晚起。而且上班上一天和上学上一天完全是不一样的感受,上班你会有各种事情的插入,你必须随时保持精力去完成布置的任务,突然拉你一个会让你排期你也得马上拍板,上课想上就上,不想上就不上,无所谓都。

1.2. 确定你的方向

实习后,你就能大致了解工作是一个什么情况,你可以想象之后如果你入职了会是什么一个情况,你能否接受这种强度的工作,对比在学校读研,哪个你更喜欢,(这里还是建议去稍微规模大一点的公司实习,在小公司实习会更加打消你对工作的热情)。经过这样一对比,你应该能确定你到底想走哪个大的方向了。

对于已经明确有目标的同学,做业务可以让你体会到各种业务的不同,组内的氛围,强度,还有晋升的方式,可以为你之后选择一份合适的工作起到很大的作用。举个简单的例子:tob和toc的业务就有很大的不同,tob业务需要你有很深的业务理解,各种概念,元数据、同步链路等等在toc 可能都不常见。

2. 实习学到了什么

2.1 如何沟通

沟通是一种非常重要的能力,可能在学校的时候,你能跟你的老师聊的很好,但是在职场中,沟通能力完全不一样,怎么样以非常简短的语言让别人知道你在做的需求并且你希望别人能帮你什么,这个能力非常非常重要。不能是你啪啦啪啦说一堆,然后别人再挨着挨着回来问你,这样沟通效率非常低,本来10分钟可以解决的事情,非聊到了半小时,甚至还要拉上你的mentor来交涉,这就非常的没有必要,在离职之前跟mentor one one 的时候就提到了这一点,虽然是实习生的通病,但是非常重要,对职业发展来说都是很重要的事。鼠鼠这方面还需要多锻炼。

2.2 写代码不是最重要的事

甚至可以说写代码是最轻松的事情了,做一个需求有比写代码需要花费精力更多的说,比如前期的调研,比如跟qa聊冒烟case的时候,一个好的技术方案,可以让你的代码写起来更轻松,bug更少。我甚至觉得技术方案的设计是最需要花时间的地方。所以,如果做好调研,如何考虑全面,怎么样减少复工,做一个靠谱的开发工程师,这些是必备的技能,字节的1-2的要求就是做一个靠谱的开发工程师。这种做事的方式,虽然不会让你之后的职业发展锦上添花,但是没有养成好的习惯,会在很大程度上影响你之后的发展。

2.3 多问哪个好而不是怎么做

作为一个实习生,多问是必须的,但是怎么问,就有讲究了,如果遇到问题就问你的mentor,可能一时间也没法给你一个明确的方案,非常浪费大家的时间。你要怎么做呢,你应该是给出自己的思考过程,给出两、三套方案,让你的mentor去评估哪个更好,这样一方面可以减少帮助你的人的理解上下文的时间,一方面能更容易讨论出思考过程的问题,甚至讨论出更好的方案。一个好的方案永远是讨论出来的,不是谁一下就想出来的,不要做一个没有思想的木偶人,学习优秀的人的思考过程,之后你看待问题的角度才会多元化。

2.4 对不合理的需求说不

一方面是对接PM,不是他们说什么我们就做什么,有的需求很不合理,会把现在的代码搞的一团糟,之后难以维护,对于这种需求,我们要坚决说不,让他们给出第二套方案,或者我们给出一套方案,让他们去问客户能不能接受。所以在tob的业务中,业务理解很重要,因为研发就是半个业务方,对于toc的业务,你自己本来就是用户,对于PM提的需求,天然就能理解。

一方面是安排给你的任务,不是说让你这样做,你就这样做,你可以有自己的想法,虽然有可能你这样的设计是错误的,但是这就是你提升的地方,之后怎么不提出这种错误的设计。还有就是上游的不支持,比如说你本来就只需要部分数据,但是上游只提供了一个查询全量数据的接口,那么你能不能让他们提供一个这种接口,而不是让你拉全量你就拉全量,然后自己在内存中解析。对于实习生来说,你可能很难推动这种横向的事情,但是有这样的思考,就能不做一个“傀儡”。

这只是鼠鼠的一点点理解,鼠鼠对业务的理解和对职场的理解还非常浅显,有说错的地方,看个笑话即可。

#27届实习##实习学到什么##字节实习##字节##实习生活中那些难忘的瞬间#
全部评论
字节✌️说得好
点赞 回复 分享
发布于 昨天 23:50 陕西

相关推荐

04-29 21:58
已编辑
广东工业大学 Java
不吃香菜_暑期实习全国可飞版:很多时候小厂反而要求高,不怎么要求基础,就要求你来了能马上干活。大厂反而更愿意慢慢培养你,主要看你基础行不行,反正我是这种感觉
点赞 评论 收藏
分享
当你决定学 Go,这是你即将面对的…(一部分):⸻🧱 Go 语言基础:变量声明(var、短变量声明 :=)、函数、包管理(模块、go mod)、值类型 vs 引用类型、常量、控制结构、数组、切片(底层结构、扩容机制、共享底层数组陷阱)、Map(哈希冲突、遍历无序)、字符串与 rune、结构体、指针(你以为逃过了指针地狱?)、方法与接口(鸭子类型)、类型断言、类型别名与定义、零值初始化、defer、panic/recover、init() 函数执行顺序、裸返回(你敢用它就等着被骂)。💡 面向接口编程:接口本质(隐式实现)、接口值结构(interface 是一个 tuple:类型+数据)、nil 接口陷阱、空接口 (interface{})、类型断言与 type switch、组合 vs 继承、值接收器 vs 指针接收器区别。🧵 并发编程:goroutine、channel(无缓冲、有缓冲、关闭通道)、select 多路复用、context 控制 goroutine 生命周期、WaitGroup、Mutex、RWMutex、sync.Once、sync.Map、atomic 原子操作、race condition 检查(go run -race)、调度器(GPM 模型)、CSP 模型哲学、不要在生产上滥用 channel 做 pub-sub。💥 错误处理:error 接口(值语义)、errors 包、fmt.Errorf + %w、自定义 error 类型、sentinel error、wrap & unwrap、go1.20 引入的 errors.Join、不是每个 err 都该 panic,你得学会优雅处理 error 返回。🧪 标准库与测试:net/http、json、os、io、bufio、context、time、flag、template、log、testing(单测、基准测试、示例测试)、go test -cover、table driven tests、mock 接口、自定义测试套件。📦 包管理与项目结构:go mod init、go get、replace、包导入循环报错、包粒度与复用、internal 包限制、工具类包 vs 面向业务目录结构(cmd、pkg、internal、api、configs…)。📊 工程能力:代码生成(go generate)、embed、lint 工具(golangci-lint)、gosec 安全检查、性能分析(pprof)、内存泄漏分析、trace、逃逸分析(go build -gcflags)、内联优化、go build、go run、交叉编译、构建信息注入(-ldflags)。🐋 网络编程与服务开发:http.Client 超时设置、超时控制与上下文 context 传播、gRPC(protobuf、interceptor、拦截器链、metadata)、RESTful API、Gin/Echo/Fiber、服务启动优雅关闭(context + signal)、日志(logrus/zap)、配置中心(viper)、依赖注入(wire、fx)、中间件设计、OpenAPI + Swagger、JWT + Session 认证、接口幂等设计。🗃️ 数据存储与 ORM:sql 包原生操作、连接池原理、事务(tx)、预编译语句、数据库扫描(Scan vs ScanStruct)、GORM(生命周期钩子、关联加载、字段映射、更新空值)、MongoDB 官方驱动、Redis Go 客户端、消息队列(Kafka、NATS、RabbitMQ)、分布式锁实现。🚀 微服务与分布式基础:服务注册与发现(etcd、consul)、配置中心、服务网关(Kong、APISIX)、限流熔断(resilience-go、sentinel-go)、链路追踪(OpenTelemetry + Jaeger)、日志收集(filebeat + ELK)、容器部署(Docker、K8s)、Sidecar 模式、微服务部署规范。🧠 常用工具与生态:GoLand、delve 调试、golangci-lint、Air 热加载、Taskfile 替代 Makefile、Swag 文档生成、protobuf 编译、mockgen、goimports、gofmt、vet、buf、wire 自动注入。✍️ 附加内容:•如何优雅处理协程泄漏?•为什么 defer 要小心用?•你以为 Go 没有 GC 就能低延迟?•为什么你手写的并发永远跑不过 sync.Map?•JSON 序列化 struct tag 写错一个字母,天崩地裂。当你觉得 Go 学起来简单是因为你还没学完。欢迎进入 Go 世界 —— 看起来干净写起来爆肝
点赞 评论 收藏
分享
评论
19
7
分享

创作者周榜

更多
牛客网
牛客企业服务