我在字节跳动实习的三个月

2020-01-18 20:44:55 +08:00
 keith1126

大三学生,去年十月跑去字节跳动后端开发实习,昨天刚离职。人生第一次实习,感触颇多,和大家分享一下~

前排提示:鉴于 V2EX 编辑器的排版能力,可以前往我的博客或者我的公众号文章查看,当然原文在此处也一并附上。


本文基于我从字节跳动离职时的申请,略微修改。

在字节跳动短暂的三个月实习,从去年十月顺手投出简历开始,到昨天办完所有的离职手续而结束。其间所经历的,印证并补充了我在实习前对国内互联网行业的所有设想,包括好的方面坏的方面

先说说好的方面。

字节跳动,作为国内目前的次顶级互联网公司(或许将来会成为顶级),手握今日头条与抖音等产品,发展迅猛,外界对其前景充满期待。自然,字节跳动完全拥有一家「创业公司」应有的工作环境与工作氛围,在我看来可谓是相当不错。

不论是为外人所津津乐道的各种福利(比如好吃且种类丰富的下午茶、零食与饮料),还是相对自由且灵活的管理制度,字节跳动提供了良好的工作环境。而年轻化的人员构成,现代化的管理系统,高效的办事流程,使得沟通顺畅,人际气氛和谐。或者再世俗一点,字节跳动的薪酬也足够高,且不论流传的各种天价 Offer,仅仅是对于实习生的薪酬,我也不得不承认相当厚道。

然而,字节跳动,一向以创业公司自称,Always Day 1,固然灵活且发展迅速,但无可避免地,这样做也充满了弊端(至少在我看来)。

首先,强调快节奏的工作,保持创业,注重产出。这体现在我身边的同事们都显得格外忙碌(譬如我的 mentor,有时候我会觉得他太忙了,以至于不好意思去用我琐碎的问题打断他的工作)。与之相比,有时候我会自我怀疑乃至感到愧疚:大伙就这么忙,为什么就我这么悠闲?这是一种健康的心态与工作氛围吗?我倾向于否定。除了忙碌,更严重的问题在于无止境的加班。不过由于作为实习生的我并不加班,就此便不多谈了。

另一方面,短平快的工作产出,导致了无可避免的工作质量降低,这与所谓的「追求极致」是天生矛盾的,不论以何种冠冕堂皇的理由去辩解。即便以一个水平低下的实习生的视角审视组内的一些工作,我也觉得很多事情不能令人满意。比如,组内的代码庞杂而几乎没有任何文档,这使我想要了解某个 API 时不得不横跨多个微服务去看它的代码实现;而在代码中,注释往往是缺失的,偶尔见到几行注释,却是如下这种毫无作用仿佛模版生成一般的注释,形同虚设(我一开始怀疑这种注释是自动生成的,然而 git log 告诉我并非如此)。而代码本身,我无意去评判(毕竟我的水平也不足以让人信服我的评判),但至少,我认为许多地方可以写得更加「优雅」。

// implement XXX method
func XXX(){
  ...
}

再举一个例子,某日的组会上,某位同事提出了不错的编译性能优化方案(至少我觉得很不错,比起各种听上去花里胡哨的技术名词与方案,十分务实),也做了一些相对深入的工作来解决问题,却被质疑道:做这些对于我们的业务有什么帮助?现在这个不是我们的瓶颈所在,必要性在哪里?(原话不如此,但大意如此)我当时很想开口说一句「追求极致」,但想想还是算了,毕竟口号只是口号,谁信谁 XX,不如闷声发大财,多写一些没有文档与注释的代码,多实现一些产品所要求的特性,多拿一些薪水与奖金。

再谈谈我所分配的工作内容。我极度怀疑,我们的项目组在招我进来之前,并没有想过他们是不是真的需要一个实习生,以及有哪些工作可以给实习生做,而是纯粹为了招聘而招聘。以后端开发之名招聘,却给我分配着测试的任务,而且还是女娲补天式的测试(毕竟,在之前,测试工作形同虚设,Jenkins 上的 regression test 已经坐了不知道多久的冷板凳了)。我并不是认为测试工作不重要,恰恰相反,我认为测试工作很重要,正因如此,我极度怀疑这样的工作分配是否合理。

多提一句,在我实习的半途,我曾经向 mentor 提议换个工作内容,但是被拒绝了,要求我先「完成测试工作」,然后方可做点别的。然而讽刺的是,在我离职前不久,领导终于意识到测试工作的重要性,招聘了好些新的全职员工着力于此,计划以几个月的时间完成这项工作。所以,当初我一个人真的可以先完成这项工作再做点别的吗?

因此,在实习的前两个月,我始终处于一种茫然的状态:过于宏大无当的工作方向,过于忙碌而难以给我指导的 mentor,过于枯燥无味的工作内容。坦言之,从这样的工作安排中我既无法获得乐趣(这是支持我从初中开始编程的最大动力),也无法学到太多有用的东西(这是我前来实习的目的),更觉得自己所做的事情没法创造价值(这是我试图自我激励的幻想)。而至于实习的最后一个月,客观而言,因为新同事的加入,事态稍有改观,然而为时已晚,我已经失去了继续待下去的念想。

多说不必,至此分别。我并不是贬低字节跳动,也不是贬低各位同事的能力(所谓代码质量,都是环境造就,与人的能力无关)。只是,经过三个月的实习,我意识到我和字节跳动并不搭(至少和现在的项目组不搭),那么,就此别过,祝大家和我都有美好的前程。


后记:在提交了此份离职说明后,HR 和项目组领导均与我有所沟通,他们做了一些解释,但其实不必,我完全理解这些问题是取舍与权衡的产物,世上不可能有完美的公司,而我不过是在寻找最适合我的公司罢了。虽然我对字节跳动(或者具体一些,对这个项目组)不甚满意,但这次实习也并非失败,毕竟就实习而言,有所收获便已然足够,不能要求太多。

29595 次点击
所在节点    职场话题
152 条回复
keith1126
2020-01-18 22:01:08 +08:00
@JerryCha #20

然而我面的岗位是「后端开发实习」,做的活却是「测试开发」(或者好听点:Quality Engineering )
keith1126
2020-01-18 22:01:56 +08:00
@jin5354 #19

那么,有什么 tech-driven 的公司推荐呢
q8164305
2020-01-18 22:23:54 +08:00
那你还是去外企吧
leonme
2020-01-18 22:32:31 +08:00
应届生建议去百度、美团,社招建议去阿里、头条,养老建议去腾讯、外企
cloudfstrife
2020-01-18 22:35:09 +08:00
@keith1126 #13 少年人,我得提醒你,别人可以这样,不代表你应该这样。你有考虑过自己的人生应该怎样度过吗?它只有那么些日子,别浪费了。
hhyvs111
2020-01-18 22:56:20 +08:00
@leonme 想多了,天下乌鸦一般黑,没啥区别的。还是看具体的组
ufan0
2020-01-18 23:04:51 +08:00
@keith1126 #22 仰望大佬,另外 Google 近日启动了校招,建议前去试试水!
keith1126
2020-01-18 23:06:56 +08:00
@ufan0 #27

不是大佬...(不过 Google 实习投了简历试试
yangzhezjgs
2020-01-18 23:13:21 +08:00
如果想去 tech-driven 的公司,可以了解一下 pingcap 这个公司
tourist2018
2020-01-18 23:16:10 +08:00
如果真的对生活对编程有自己的追求 还是去外企吧 国外如果困难些 看能不能去微软

如果缺钱 有能力的话去 AT 吧 工资相对高点 比头条之类的“创业公司”压力也小点 然后工作几年可以再去外企
tourist2018
2020-01-18 23:19:29 +08:00
@tourist2018 如果从外企出来再去国内的公司会很难受(包括好多职级特别高的在国内互联网企业也呆着不舒服)
RLado
2020-01-18 23:39:28 +08:00
实习生有多少钱?
我在非 IT 行业外企,Trainer 好像 8000 左右,不知道国内 IT 企业怎样。
lloovve
2020-01-18 23:42:08 +08:00
我赞同企业做法,如果不那么做,过几年大家都连分手费都拿不到
yeeyeung
2020-01-18 23:48:27 +08:00
你是那个皇帝的新衣里的小女孩
skull
2020-01-18 23:55:43 +08:00
实习都是 zf 要求的,企业如果真的需要的话,那就是要一个干脏活的
JamesR
2020-01-18 23:56:42 +08:00
“以后端开发之名招聘,却给我分配着测试的任务”... ...,强烈建议换开发岗,没事就找领导谈,各种方法试了,确实没有换的希望就走人。
时间宝贵,你不做开发,是学不到开发经验的。
Perry
2020-01-19 00:08:23 +08:00
我觉得你同事的质疑是合理的,如果你回答不上来不能信服你的同事那确实不值得做。这点就比较考虑沟通能力了,你觉得值得做,那就请拿出令人信服的理由。
Juszoe
2020-01-19 00:24:24 +08:00
大三就这么强了,大佬大佬,我大四快毕业了,还在挣扎着准备年后去字节实习的面试,能给点建议吗
tianshilei1992
2020-01-19 00:24:30 +08:00
@keith1126 说到底还是投入和回报的 trade off。关于编译时间的优化,很多公司的产品是不到那个体量考虑这个问题的。然而,Google 有一个 team 的人专门在做 Chromium 编译时间的优化,因为这个和整个 CI 系统相关。让一个 developer 提交完 code 编上几天才知道结果这个自然就是一种浪费钱,让一次 CI 跑上几天这也是一种浪费钱。
CEBBCAT
2020-01-19 00:28:43 +08:00
我现在也在做一份实习,楼主说到的没有注释的问题我也大致遇到了,不过偶尔还是能看到一一两行有注释的代码的。

难道我司赛过字节?哈哈。话说回来,其实我写的代码也少有注释,多半需要后添。我努力的方向是先写注释,再添代码。

楼主文中提到有同事提出一个编译优化的方向,被否掉了。楼主当时心情小有激动,但我并不这么想,我想的是这确实没什么大用,至少这听起来更像是。。。雕梁画栋

为免表达不清,我眼中的技术追求更像是:在 Golang 创建 slice 时为 make 指定第三个参数,空间申请一步到位。这属于语言的熟悉

不过如果那位同事提出的方案其实很容易实现组长却还拒绝,那么就要怀疑组长的价值观了

总而言之期待未来能与楼主共事,大家一起加油
------
借楼问一下,大家之前说到的开发是什么样的开发?

目前在写的是一个用户处理模块,模块不小,我经手的都是一些实现功能的需求,或者为数据库加缓存这样,虽然组里对我蛮是照顾,但我似乎得不到解算法题那种绞尽脑汁后恍然大悟般的畅快感

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/639004

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX