当前位置:网站首页>我走过最迷的路,是字节跳动程序员的脑回路
我走过最迷的路,是字节跳动程序员的脑回路
2022-07-06 09:29:00 【字节跳动技术范儿】
程序员总有十分理性的一面,
或者说——特别「轴」的一面,
常常令人感到「这也太较真了」吧!
所以,到底有哪些具体体现呢?
字节跳动的程序员们,这次被我们抓了个正着。
第 1 幕
字节跳动某工区写字楼的电梯又出 bug 了。
算法工程师东昊已经等了 20 分钟,堵在电梯间的人越来越多,纷纷发出「就离谱」的唏嘘声。
东昊从沉思中回过神来,拍了拍旁边同学的肩膀:
「你说,在我们这种复杂写字楼的场景下,调度算法应该怎么写?」
一句话评论:
给程序员一台电梯,你会获得一套调度算法。
第 2 幕
字节跳动内部发起了一场抽奖活动。
大多数不够幸运的人总是有些失落:
「唉,又完美避开了所有奖项。」
技术同学:
「不行,抽奖嘛,总要公开一下源代码,才能让大家知道是不是公平抽奖。」
一句话评论:
抽奖要放源代码,就像写论文要放参考文献一样。
第 3 幕
字节跳动程序员学斌拉着他的好朋友一起看黑客电影《Who Am I》。
屏幕上,电影主角正在疯狂敲键盘写代码。
学斌眼前一亮,立马按下暂停键。
朋友一脸懵逼:
「咋了?」
学斌仔细端详了电影主角的代码:
「哦,这个是 bash,一个脚本。」
一句话评论:
随时随地 review 新代码。
第 4 幕
学斌一直不能理解他的一位同事兼室友。
比如,室友的脏衣篓里,画着一条水平线,他每天把换下来的脏袜子扔进去,直到某一天触达了水平线,再统一拿去洗。
后来有一天,学斌看不下去了:
「你为什么不每天晚上洗漱的时候,顺手洗一下袜子呢?」
室友:
「效率太低。只有把袜子攒起来批量洗,才能把平摊到每一双袜子上的时间、劳力成本降到最低。」
学斌:
「好像很有道理的样子耶?」
一句话评论:
洗袜子也要考虑规模经济。
第 5 幕
已经下班的 QA 同学一帆刚刚更新了自己手机上的一些软件。
他详细地看了更新介绍,下意识地找到了相应的功能,发现这个新功能的 UI 有些问题。
恢复原状→开始录屏→复现 bug→保存视频。
一套操作行云流水。
这时一帆意识到:
「诶,这不是字节跳动的产品呀?我、我的手在做什么?」
一句话评论:
先有录屏后有 debug。
第 6 幕
字节跳动产品经理玥玥正在整理打印一些测试用的图片。
她打开后台,把需要的图片一张张截图、保存,整理好准备打印。
图片很多,耗时很久,玥玥很枯燥。
坐在旁边的后端同学阿辉看不下去了:
「这么简单重复的事情,你就不会搞个脚本?」
阿辉调出了后台,写了一个脚本。
5 分钟后,所有需要的图片整整齐齐的按顺序出现在了玥玥桌面上的一个文件夹里。
看着玥玥惊喜的表情,阿辉叹了一口气:
「要不,你去学下 Python?」
一句话评论:
「懒人」改变世界。
第 7 幕
字节跳动程序员文博,正和他的大学同学们一起在火锅店等位。
服务员热情的向他们介绍了等位期间叠千纸鹤抵现金的活动,于是,一群人开始叠千纸鹤。
文博思考了一阵儿,向同学们发起了号召:
「我们先来考虑一下如何设计流水线的深度吧,在千纸鹤的质量和叠纸速度之间做一个平衡。」
方案想好之后,文博和他的同学们量产了上百个千纸鹤。
看到这么多千纸鹤,服务员一脸尴尬:
「不好意思呀,咱们店里这个活动,千纸鹤数量上限是 60 个。」
一句话评论:
每件日常小事都有最佳实践。
第 8 幕
字节跳动程序员郝先生和太太一起在家做了一大桌子菜。
饭后,郝太太放下手机,看了一眼老公:
「你去洗碗行不行呀?」
郝先生盯着桌上的盘子和碗筷:
「嗯……稍等,我在思考双手如何端不同大小的盘子和碗,才能让搬运的次数最小。」
一句话评论:
我不是不干活,我只是在思考干活的逻辑。
第 9 幕
看到群聊里有人发金馆长熊猫表情包,字节跳动交互工程师灵灵叹了口气:
「魔性是魔性,但还缺少一些灵魂。」
但毫无美术功底的灵灵并不会画表情包:
「唉,画画可不像摆鬼脸那么简单。」
等等,摆 鬼 脸 ?
这个简单啊。
趁着一场字节跳动内部的 hackathon,灵灵拉了一群小伙伴,搞了一个系统。
先标注一下表情包角色的面部关键点,再加个表情识别模块,然后重建人脸 3D 模型。
最后把摄像头打开对准自己,开始摆鬼脸。
这不是个表情包,这是个 Demo
看,这多有灵性。
吃瓜同学看到大为震撼:
一句话评论:
只要你足够技术,我就能足够鬼畜。
第 10 幕
周末,前端程序员孙瑞穿好外套准备出门。
朋友已经在网上预约了某热门餐厅的号,等他一起来拔草。
「会不会下雨?」
孙瑞顺势解锁了旁边的电脑,打开浏览器,搜了一下天气。
「很好,虽然下午会天阴,但今天不下雨。咦,这个晴天太阳符号转变成阴天云朵符号的动效好流畅啊,怎么实现的?」
他下意识地 F12 了一下,研究这个效果背后的代码,无视了手机弹出的消息。
终于查明白怎么做的了!
他重新拿起手机和钥匙走到家门口,看了一眼手机,3 个未接来电+ 10 条未读消息。最新的消息是:
「算了,不等你了,过号了重新排要等俩小时,我回家叫外卖了。」
一句话评论:
最令人好奇的,是别人家的技术。
最 终 幕
本编辑部卑微的小编,正准备把前几天采访技术同学尼奥的稿件交给他本人确认。
「希望一稿过。」
小编鼓足勇气,按下了回车键。
「给我开个编辑权限吧,我调整下格式。」
格式???
开通权限之后,小编发现文档里所有中文段落中夹杂的英文专业词汇,前后都被尼奥加了一个空格。
↑ 就像这样
「嘿嘿,要不要给你分享一下我们团队的文档规范看看?」
一句话评论:
强迫症使我快乐。
——
其实,说「轴」也好,「较真」也好,
都是字节跳动的程序员们可爱的另一面,
工作中的他们,有着追求极致的精神,肩负着千万量级的业务,保证着亿万用户的体验。
他们为人真实,不喜装模作样;
他们直面问题,对技术有最纯粹的追求;
他们也秉承着这种追求,在技术这条路上不断激发创造。
边栏推荐
- LeetCode 1638. Count the number of substrings with only one character difference
- LeetCode 1984. Minimum difference in student scores
- 第6章 Rebalance详解
- 软通乐学-js求字符串中字符串当中那个字符出现的次数多 -冯浩的博客
- sublime text 代码格式化操作
- Sublime text code formatting operation
- 腾讯面试算法题
- CMake速成
- Basic principles of video compression coding and audio compression coding
- Oneforall installation and use
猜你喜欢
Audio and video development interview questions
第5章 消费者组详解
Chapter 2 shell operation of hfds
One hundred questions of image processing (11-20)
sublime text 代码格式化操作
QT style settings of qcobobox controls (rounded corners, drop-down boxes, up expansion, editable, internal layout, etc.)
第三章 MapReduce框架原理
One hundred questions of image processing (1-10)
Pull branch failed, fatal: 'origin/xxx' is not a commit and a branch 'xxx' cannot be created from it
Simply try the new amp model of deepfacelab (deepfake)
随机推荐
LeetCode1556. Thousand separated number
Solve the problem that intel12 generation core CPU single thread only runs on small cores
第5章 NameNode和SecondaryNameNode
MP4格式详解
Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog
LeetCode 1560. The sector with the most passes on the circular track
Market trend report, technological innovation and market forecast of China's double sided flexible printed circuit board (FPC)
Market trend report, technical innovation and market forecast of tabletop dishwashers in China
Raspberry pie 4b64 bit system installation miniconda (it took a few days to finally solve it)
Bisphenol based CE Resin Industry Research Report - market status analysis and development prospect forecast
Educational Codeforces Round 122 (Rated for Div. 2)
Chapter 5 yarn resource scheduler
LeetCode 1557. The minimum number of points that can reach all points
LeetCode 1552. Magnetic force between two balls
Spark独立集群Worker和Executor的概念
Basic principles of video compression coding and audio compression coding
Research Report on market supply and demand and strategy of double drum magnetic separator industry in China
JS encapsulates the method of array inversion -- Feng Hao's blog
Spark independent cluster dynamic online and offline worker node
Spark的RDD(弹性分布式数据集)返回大结果集