当前位置:网站首页>谢邀,人在工区,刚交代码,在下字节跳动实习生
谢邀,人在工区,刚交代码,在下字节跳动实习生
2022-07-06 09:29:00 【字节跳动技术范儿】
拿到春招研发实习offer的同学,可以激动地搓搓你的小手,准备大展宏图啦。
为了满足一下大家的好奇心,我们找到了5位来自不同高校、不同部门的字节跳动研发实习生同学。
接触到字节跳动丰富的数据、资源和业务场景后,他们之中,有人在实习期间完成了高复杂度的分布式任务执行框架,有人给自己正在使用的App增加了更好用的功能,还有人借助实习,一毕业就完成了重点项目。
现在,就请他们讲讲自己的实习经历,为大家带来童叟无欺的真实实习体验。
实习生也能做完整需求
实习生:小楼
学校:中南大学
部门:飞书
我在中南大学读软件工程专业,大三上学期结束之后我就来实习了几个月,之后又去另一家头部互联网公司当了几个月的实习生。
差别还是很大的,那家公司虽然技术沉淀深厚,但实习生只能做一个很小的模块,不像字节可以独立做一个完整的需求,参与从接手到交付的全过程,因此我又回到字节跳动继续实习。
果然,我刚回来接手的第一项任务就是一个web功能开发的完整需求。
那时,飞书web版里日历的功能还不太完善,没有周视图和月视图,不支持同步Google日历和微软Exchange账户的日历,也没有日程分享的功能,于是我作为后端开发就和前端同学一起,把这些PC端已有但web端没有的功能同步了过来。
这个项目做起来有一些我们想不到的业务逻辑,比如日程分享。其实分享日程和分享其他信息类似,都是内容的传播,涉及到内容安全的问题,需要在原有的逻辑里加上公司的内容审核平台,如果分享的日程里有一些色情、暴力的内容就可以将其禁用。
但其中最复杂的当数同步Google和Exchange日历,当我把PC端的代码调整复用在web端后,在飞书web版创建的日程虽然可以同步Google账户,但页面刷新后飞书自己的日程就莫名其妙消失了。
我看了一下后台数据库,发现飞书自己的数据库里并没有这个日程,代码排查了很久,还是一无所获:逻辑没有问题,找不到问题的根源。
我请教了同事才发现,原来是Google的API调用超限,找Google申请增加调用量,才把这个问题解决。
除此之外,有时候甚至是一些紧急的需求,团队同学也足够信得过我们实习生。不久前,PM给了我一个需求,要在飞书会议之后加一个自动发送问卷收集会议反馈的功能,只给了四五天的时间,马上就要上线,只有我一个后端研发支持。当然我也没有辜负团队的信任,现在这个功能的第一版已经上线了。
虽然这些任务看起来困难或紧急,但只要主动学习的精神,去查文档、请教厉害的同学,主动推进,就一定可以完成。
早实习早适应,正式入职担重任
实习生:Leo
学校:北京大学
部门:智能创作
其实毕业前多多实习还是很有利于自己发展的,我自己就受益匪浅。
我自己的专业是物理仿真相关特效,做图形渲染、动画生成之类的,这一行在短视频兴起之前只有游戏等少数几个行业比较对口。
但后来有了抖音,大量的视频特效需求让我的专业有了更大的用武之地。
实习期间,我就给抖音做了一个物理相关的游戏特效demo;另外还搭了一个框架来实现我们部门内工程侧的代码规范和编译检查,我实习结束的时候转给了其他同事,直到现在这个框架还一直运行得很好。
但这短短的3、4个月,让我充分了解部门内使用的各种开发工具以及业务架构,毕业后正式入职就完全不需要花时间适应,可以直接做重点项目的开发。还记得我正式入职的第二个星期就从北京去深圳出差了,和深圳的团队一起开发一个很着急的项目,这个项目就是剪映App。
我的很多同学说,感觉自己毕业后已经在公司呆了半年,一直在适应各种系统、工具和流程,什么都没有做出来;但我不一样,我入职第一个半年收获了很多东西,产出也不错。现在两年多过去了,我已经成为了一个模块的负责人,和几位同学一起做抖音的一些建模和动画相关的工作。
后来想一想,其实很多时候当你在第一步领先了,后面就会处处领先。
这也让我感到遗憾,拿到字节offer之前我都没有实习过。建议现在还在读书的同学除了做好在学校的科研工作之外,多去公司实习。工业界和学术界还是很不一样的,学术界会更注重学术前沿,要把效果做到极致;工业界更注重落地,用的都是业内最新的技术,更具实用性。
这也有利于在校生的人生道路抉择,在公司实习可以多了解一些领域的知识,临近毕业也多拿一些offer来备选,开阔自己的眼界,在充分考虑时代背景和个人兴趣的前提下,再决定自己真正的兴趣和前途。
我是实习生,但我做的项目挑战十足
实习生:豆子
学校:华中师范大学
部门:效率工程
从大三上学期到现如今临近毕业,我已经实习约莫一年半有余了,大学将近一半的时光都在字节度过,在工作的过程中也见证了我所在的部门从刚刚成立到逐渐壮大。
我实习就在武汉本地,离学校比较近什么都会方便一些。我们小组参与的工作是做一个可以使用No Code或是Low Code开发应用的PaaS平台,主要服务于To B场景,业务保密级别非常高,而且对于业务的稳定性要求十分严格。普通的开发任务可能要求SLA到几个九就可以了,但我们的业务要求更严格,大家会尽更大的努力避免可能出现的错误。
PaaS平台业务本身的复杂性,结合业务上的严格要求,再加上当时我们组人力并不是很充足,导致我们组的工作在当时可以说是比较困难且具有挑战性的,比如我在一个批量任务的feature中曾经需要设计一个分布式任务执行框架,需要自动分配上千条任务,分布式执行后获得反馈,同时还要兼顾对于服务器的压力。当时公司并没有一个方便我们接入的类似组件,所以只能自己想办法去解决。
举个例子,比如用我们的平台开发的To B服务“飞书人事”里,一个大部门改名了,要把所有员工信息的“部门”这一项批量改成新的名字;或者有很多员工一起入职,要批量录入数据,就要用到这个功能。可能听上去非常的简单,但是在 PaaS 平台,表象上的数据底层有诸多的“元数据”进行支撑,数据修改时有许多的复杂联动逻辑,这也是为什么需要分布式地去进行任务的分发与执行。
我先调研了很多开源的分布式任务执行框架,然后借助这些开源项目写了初版的服务内的组件,但由于字节内部环境和开源环境毕竟不同,在运行时出现了非常多的 BUG。
改BUG诚然是非常痛苦,但在经过一个多星期和同事的共同努力后,我们的这个feature终于按时上了线,并且在线上运行时这个分布式任务执行框架运行的还算是比较稳定,后面也是很少出现错误。
像这个feature一样,在组内经历了很多富有挑战的开发任务之后,我对于业务的理解,以及代码能力都大大提升。以前在学校的时候只注意实现功能,可能并不注意代码健壮性、也不关心代码能不能覆盖边缘case,能跑就行;在字节跳动严格的Code Review下也让我学会如何把粗糙的东西打磨得更精细。
现在,如果一家公司用飞书办公,启用里面的“飞书人事”,就可以使用我当时完成的这个功能了,我在学校里的开发者社团也申请了飞书,用上了我自己开发的这个功能。毕竟用飞书文档来做敏捷开发实在太好用了,我连毕业论文都是用飞书文档写的。
实习之后,我才懂了真实的业务与行业
实习生:好耶
学校:同济大学
部门:商业化
我在同济大学软件学院,大三下学期春招时拿到了字节跳动的实习offer。
我主要做的是商业化广告投放平台的前端开发,在这里我发现,在公司写代码和在学校是很不一样的。
在学校,经常是一个大佬带一群同学一起合作,没有明确的分工;但在公司,我需要跟产品经理讨论实现这个需求的细节,跟测试谈测试方案。
因为真实的业务往往是很复杂的。
拿广告举个例子,我来之前对广告的理解就是广告主单纯地来投广告,给广告主做一个平台,写几个参数,上传一点素材就行了,来了之后发现业务逻辑比这复杂得多,每天都有很多意想不到的需求。
一开始我还不理解,跑去问PM才知道,我们作为广告平台,自身的业务需求和广告主的诉求并不完全重合。
来自广告主的需求可能是要去解决某个使用体验问题,或者是想让我们提供更深度的策略定制,来方便他们把投放广告的效果达到最好。
但是从我们投放平台自身的需求来说,要站在广告业务角度来迭代,可能是为了适应政策的要求,或者进行某些测试,整体迭代周期更长,更看重用户反馈,需要不断的进行迭代,需求也更加细致。
正是因为这样,我实习期间做了一项服务的代码重构,把原来的老服务写成新的服务,提升维护的便利程度,这也是平台迭代的一部分。
因此,不同的角度产生了不同的需求。很多领域也一样,对于刚刚进入职场、接触业务的人来说,很多行业知识不去切实了解体验的话是理解不到的。
看番茄小说的我,来给番茄小说加功能
实习生:博言
学校:合肥工业大学
部门:AI lab
我的学校在合肥,去年4月,正在读大三的我来到了北京,成为了字节跳动的一名研发实习生。
当然,我本身也是这家字节产品的用户,平时会刷抖音,骑车的时候看不了视频就会打开番茄小说听书。
在AI lab的语音团队,通过语音合成技术把文字变成音频是我们的工作之一。具体分工方面,实习生和正式员工都是一视同仁的,每个人都会独立负责一些业务,不会打乱来安排。
不过,我没想到的是,竟然可以给自己用的产品开发功能。
实习期间我做了一个功能,根据故事里角色的人设,赋予每个人物独一无二的配音。拿《三国演义》举个例子,武圣关羽的声音就会比较豪迈,诸葛亮的声音就会比较儒雅,而小乔的声音则会更加灵动,一个章节里每个人物的声音都是各有不同的。
这个功能就放到了番茄小说上,现在已经开始A/B测试了,我自己下班路上听小说的时候就在用,临场感增加了很多。最近PM告诉我,有了这个功能,用户留存率的确变高了。
我还做了一个语音合成质量检测的平台,可以识别记录一些不好的合成效果给到工程同学去做优化。曾经就发现过一个问题,有时候中文小说里掺杂了英文,其中字母「s」的声音就会变得特别长,比如「apples」就变成了「apples——」,声音有点恐怖。发现这样的问题后我们就会改进它,这样我的工作就真真切切地提升了用户听小说时的感受。
要完成这些工作,也不必担心自己知识水平不够。针对每一项你想了解的技术,公司里总能找到丰富的文档,可以找到擅长这项技术的人请教。我们有很多技术群,每个垂类都有,虽然平常大家也会发表情包、开玩笑,不过一旦有人分享技术文章或者代码段,就会一秒钟切换到学习模式,当我提出技术问题,会有一大群同学来告诉你应该怎么做,每个出主意的同学还会互相讨论,比较各自提出的解决办法,直到总结出一个最好的方案。
边栏推荐
- Chapter 5 namenode and secondarynamenode
- Summary of game theory
- 业务系统兼容数据库Oracle/PostgreSQL(openGauss)/MySQL的琐事
- China double brightening film (dbef) market trend report, technical dynamic innovation and market forecast
- 力扣leetcode第 280 场周赛
- Market trend report, technical innovation and market forecast of China's desktop capacitance meter
- 提交Spark应用的若干问题记录(sparklauncher with cluster deploy mode)
- 腾讯面试算法题
- LeetCode 1984. Minimum difference in student scores
- Solve the problem that intel12 generation core CPU single thread only runs on small cores
猜你喜欢
MP4格式详解
解决Intel12代酷睿CPU单线程调度问题(二)
LeetCode 1020. Number of enclaves
LeetCode 1641. Count the number of Lexicographic vowel strings
第五章 Yarn资源调度器
Tree of life (tree DP)
~74 JD top navigation bar exercise
Data config problem: the reference to entity 'useunicode' must end with ';' delimiter.
~86m rabbit practice
Two weeks' experience of intermediate software designer in the crash soft exam
随机推荐
~86m rabbit practice
Educational Codeforces Round 122 (Rated for Div. 2)
LeetCode 1636. Sort the array in ascending order by frequency
字节跳动2022校招研发提前批宣讲会,同学们最关心的10个问题
Saw local status change event StatusChangeEvent [timestamp=1644048792587, current=DOWN, previous=UP]
Sublime text code formatting operation
Li Kou leetcode 280 weekly match
Tree of life (tree DP)
业务系统从Oracle迁移到openGauss数据库的简单记录
Investigation report of bench type Brinell hardness tester industry - market status analysis and development prospect prediction
~77 linear gradient
视频压缩编码和音频压缩编码基本原理
Codeforces Round #771 (Div. 2)
ByteDance new programmer's growth secret: those glittering treasures mentors
Detailed explanation of FLV format
LeetCode 1984. Minimum difference in student scores
字节跳动多篇论文入选 CVPR 2021,精选干货都在这里了
js封装数组反转的方法--冯浩的博客
Story of [Kun Jintong]: talk about Chinese character coding and common character sets
One hundred questions of image processing (11-20)