账号:
密码:
PO18文学 > 都市言情 > 华娱:开局让顶流给我打工 > 第十五章 字节跳动的代码与樱花
  (本章代码浓度过高,谨慎观看哈哈哈)
  2016年8月30日bj字节跳动总部大厦
  周吔站在大厦玻璃幕墙前,仰头望著“字节跳动”四个发光字,指尖无意识地摩挲著书包带。沈砚穿著標誌性的蓝卫衣,胸前別著“技术顾问”徽章,看上去和普通程式设计师无异。
  周吔跟著他穿过办公区,此起彼伏的键盘声像极了高考前的自习室。她看见有人穿著印有“代码即正义”的t恤,有人在工位上摆著机械键盘,还有人对著白板激烈討论,白板上歪歪扭扭写著“推荐算法第47次叠代方案”。
  经过茶水间时,周吔被冰箱上的便利贴吸引:“『前端组的咖啡归我,后端组的bug归你』这是你们的企业文化?”
  “算是『程式设计师黑话』,”沈砚从冰箱里拿出两罐可乐,拉环声清脆,“意思是『別抢我咖啡,你的代码自己debug』。”
  两人路过一间玻璃会议室,里面正在进行头脑风暴,投影屏上跳动著抖音的用户画像。
  “他们在討论什么?”她小声问。
  “tiktok的海外推荐算法,”沈砚指了指屏幕上的东南亚地图,“比如在印尼,用户更喜欢用短视频记录婚礼,所以要增加『传统服饰』的標籤权重。”
  “哇,你怎么知道的这么多?”
  “技术顾问的职责之一,”他晃了晃工牌,“帮不同部门翻译『技术语言』和『人话』。”
  沈砚的工位在角落,靠近落地窗,桌上摆著《算法导论》。周吔一眼便看见镇纸下的樱书籤。
  “没想到你还留著。”她伸手触碰书籤,发现下面压著一张便签:“『周吔的睫毛在逆光下的反光率是37%』这是什么?”
  “算法笔记,”他耳尖微烫,“为了优化『逆光滤镜』参数。”
  “骗子,”她促狭看著沈砚笑,“你明明就是想我了。”
  这时,陈默抱著文件夹路过,看见周吔时眼睛一亮:“嫂子来啦?老大工位的樱书籤可是他的『镇宅之宝』”
  “陈默!”沈砚打断他,“去帮我拿杯冰美式。”
  “懂了懂了,”陈默挤眼,“这就去,不打扰你们『技术交流』。”
  周吔望著陈默的背影:“你们程式设计师都这么爱开玩笑?”
  “只有他爱,”沈砚嘆气,“不过他说得对”他拿起书籤,阳光穿过樱瓣的鏤空处,在她脸上投下细碎的影,“你確实是我的『镇宅之宝』。”
  这时手机震动,周吔收到张嘉嘉的消息:“小周,云边镇的剧本写到程霜第一次遇见刘十三,需要女生主动的细节,帮我想想?”
  她抬头看向沈砚,忽然有了灵感:“要不……女生故意把橡皮擦滚到男生脚边,然后说『你的鞋比我的代码还会躲bug』?”
  沈砚挑眉:“这台词……似曾相识?”
  她吐了吐舌头:“抄袭我们的初遇场景,不行吗?”
  “行,”他笑,“不过张嘉嘉要是敢把这段写进去,我就找他收『灵感版权费』。”
  周吔跟著沈砚穿过开放式办公区,忽然停在茶水间冰箱前。昨天在酒店整理行李时,她特意把惠州带来的桂圆乾和酸梅汤秘方分装成小袋,此刻正安静地躺在帆布包侧袋里。
  “等等,”她拽了拽沈砚的卫衣下摆,“我带了点惠州特產,要不要分给你同事?”
  记住我们101看书网
  “特產?”沈砚挑眉,“不是说行李箱超重了吗?”
  “但给你的同事们的份,我偷偷留了。”她眨眼,从包里掏出印著惠州西湖风景的油纸袋,里面是用玻璃罐装好的桂圆乾,还有手写的酸梅汤秘方卡片。
  路过陈默工位时,她忽然停住。工位上摆著个歪歪扭扭的程式设计师公仔,胸前掛著“代码永不崩溃”的牌子——和沈砚送她的萨摩耶公仔是同类型。
  她递上一罐桂圆乾,“陈默,谢谢你之前帮我查数学题的解题步骤。”
  陈默瞪大眼睛,看看沈砚又看看周吔,忽然笑出小括號:“嫂子太客气了!不过这桂圆乾……老大平时可捨不得分享零食。”
  “谁说的?”沈砚伸手抢过罐子,“她带的酸梅汤秘方更厉害,消暑的同时还能提神醒脑。”
  “哦~”周围忽然响起起鬨声,几个程式设计师凑过来,其中一个戴著“算法之神”徽章的男生笑道:“沈顾问这是被甜到写bug了?”
  这时,张一明端著咖啡路过,目光扫过油纸袋。
  周吔递上卡片:“张总,这是酸梅汤秘方,夏天煮了喝能提神。”
  “收下了!”张一明接过卡片,故意提高声音,“不过沈砚,下次再用『优化睡眠』当藉口独吞特產,我就把你的『专属滤镜』代码公开。”
  “张总!”沈砚皱眉,周围爆发出一阵鬨笑,有人开始喊“老大重色轻友”,有人追问“周吔专属滤镜”是什么。
  周吔这才想起,沈砚曾说过给她定製过“情感滤镜”。她凑近他耳边:“原来你真的写了专属代码?”
  “只是调整了0.3%的亮度和对比度,”他別过脸,“因为你在逆光下的睫毛……”
  “会反光,反光率37%,”她替他说完,想起工位上的便签,“所以是『周吔绿』和『睫毛滤镜』?”
  周围突然安静,几个程式设计师掏出小本本:“笔记记下来!原来老大的灵感来源是——”
  “干活去!”沈砚抄起键盘作势要敲,人群鬨笑著散开。陈默趁乱拿走两罐桂圆乾,边走边喊:“嫂子下次来带点荔枝啊!上次寄过来的超级甜!”
  周吔看著被洗劫一空的油纸袋,忽然笑出声:“你们程式设计师抢零食的样子,像极了我和朋友抢烤肉”
  “因为代码消耗热量快,”沈砚收拾著空罐子,忽然从抽屉深处摸出个铁盒,“不过我留了一手,你送的酸梅汤原料,藏在这里。”
  铁盒里装著晒乾的酸梅、薄荷叶,还有她手写的便签:“程式设计师加班必备,煮15分钟即可,忌空腹喝。”
  临近中午的时候,沈砚带她去员工食堂。路过休息区时,有人在玩switch,有人在打桌球,还有个程式设计师戴著vr眼镜调试设备。
  “好悠閒哇,你们上班环境好轻鬆呀”周吔看著有人边吃泡麵边写代码。
  “这叫『弹性工作制』,”沈砚替她挑了靠窗的位置,“不过凌晨三点的会议室,比高考考场还热闹。”
  12:00·员工食堂张一明端著餐盘坐到对面,故意调侃:“听说你给一位作家提供灵感了?沈砚没吃醋吧?”
  “吃醋?”周吔挑眉,“他帮我想了好多细节,比如『橡皮擦滚到脚边』的梗”
  “哦~”张一明拖长声音,“原来『技术顾问』的工作范围,还包括帮女朋友想恋爱剧情?”
  沈砚咬著吸管斜睨他:“张总要是这么閒,不如去优化tiktok的海外推荐算法?”
  “哪敢啊,”张一明举手投降,“不过说真的,周吔,”他忽然正经,“如果以后想拍短剧,字节的微视部门可以直接对接。”
  “谢谢张总,”周吔笑,“不过我现在连《雷雨》的台词都记不全……”
  “记台词?”沈砚忽然放下可乐罐,“我写了个『台词记忆小程序』,用艾宾浩斯曲线帮你规划背诵,”
  “沈砚!”她打断他,“你是不是连我的课表都想写成代码?”
  “差不多,”他认真点头,“比如把『台词课』设为每日9点提醒,『形体课』设为14点,还有……”
  “打住!”她假装生气捂住他的嘴,“我自己会安排,谢谢沈顾问。”
  午餐后,沈砚带她参观实验室。玻璃墙內,工程师们在调试vr设备,屏幕上闪烁著抖音的未来界面——那是沈砚参与设计的“元宇宙短视频”原型。
  “以后用户可以用vr拍视频,”他指著屏幕上的虚擬樱,“每片瓣都是实时渲染的3d模型,飘落轨跡符合流体力学算法。”
  “听起来像魔法。”周吔伸手触碰玻璃,虚擬樱落在她指尖。
  “是代码的魔法,”他轻声说,“就像我用算法算出,今天带你参观的最佳路线——能避开所有需要开会的同事,还能在下午三点零七分,让阳光刚好照到你脸上。”
  她转头看他,发现他耳尖泛红,沈砚,”她忽然握住他的手,“你其实……”
  “其实什么?”他低头看她,睫毛在阳光下投下扇形阴影。
  “其实比代码更懂浪漫。”
  窗外,此刻阳光正好,字节跳动大厦的玻璃幕墙反射著蓝天白云。周吔望著沈砚,忽然明白——有些代码是写给机器的,有些浪漫是写给人心的,而她,恰好是他代码里最温柔的例外。
  下午,周吔的帆布鞋踏入沈砚的办公室,目光被他工位的白板吸引。上面用马克笔写著一行未擦去的代码:if (zhouye_smile == true){ world_light += 100;}
  “这是……”她指尖划过字母,忽然想起之前在惠州夜市视频时,他说“你笑的时候,我心跳破表了”。
  沈砚伸手擦掉代码:“测试用的偽代码,不值一提。”
  “明明是『周吔笑了,世界亮了』,”她歪头看他,“程式设计师的浪漫,就是把情话写进bug里?”
  “被你发现了,”他嘆气,从抽屉深处抽出一本《python入门》,封面贴著便利贴:“给周同学的第一节编程课——2016.8.30”
  她愣住:“你还记得我们的约定?”
  “约定?”他装傻,
  陈默抱著机箱进来,忽然指著周吔的帆布包:“嫂子!上次你寄的荔枝太甜了,我吃了三颗就写了1000行代码!”
  周吔掏出玻璃罐,“桂圆乾也一样甜,你们程式设计师多补补、”
  沈砚扶额:“陈默,你话太多了。”
  陈默嬉皮笑脸:“冤枉!是嫂子寄的荔枝太好吃。”
  周吔笑出梨涡:“下次还给你们寄荔枝”
  沈砚打开电脑,屏幕上是精心准备的python教学ppt。周吔抱著《python入门》坐在转椅上,眼睛亮晶晶的:“听说程式设计师上课前都要『祭键盘』?”
  “祭键盘?”沈砚挑眉,把笔记本电脑推给她,“你想祭什么?”
  “比如……”她从帆布包里掏出袋荔枝干,“用特產贿赂老师,换取『作业减半』特权?”
  “贿赂技术顾问,按字节规定要扣年终奖,”他接过袋子却忍不住笑,“不过看在你刚才给陈默他们分桂圆乾的份上。先说好,今天必须学会变量赋值。”
  “首先安装python环境,”沈砚调出官网,“点击这个download按钮,”
  “等等!”周吔突然按住他的手,“为什么不是中文界面?你们程式设计师欺负文科生?”
  “全球统一界面,”他耐心解释,“就像抖音的算法逻辑,不分国界。”
  周吔打开vs code,盯著空白界面皱眉:“这和word长得不一样……”
  “这是专业编辑器,”他忍住笑,“就像你们表演系用的斯坦尼斯拉夫斯基体系,程式设计师用的是”
  “停!”她举手投降,“直接教我写代码吧,我要看烟!”
  沈砚推开小会议室的玻璃门,投影仪自动投射出python官方文档,周吔跟著他走进来坐在椅子上,盯著满屏英文抓了抓头髮:“为什么第一行代码不是『你好,世界』?”
  “因为程式设计师的浪漫,从不说人话,”沈砚拖过转椅坐在她身侧,指尖在键盘上敲出经典语句:
  print(“hello, world!“)
  “这行代码的意思是,”
  “我知道!”周吔举手抢答,“是你好世界!”
  “……”沈砚无奈笑出声,“是所有程式设计师的初恋,每个编程故事的起点。”
  “那我的初恋代码,能改成『你好,沈砚』吗?”她拽了拽他的袖子。
  “可以,但要先学会怎么正確写。”他调出中文输入法,“看好了,”
  周吔突然按住他的手:“我自己来!”
  她皱著眉输入:
  print(“你好,沈砚!)
  按下f5的瞬间,红色报错如烟般绽放:
  syntaxerror: eol while scanning string literal
  “错了?”她盯著屏幕撇嘴,“是不是因为我没写『世界』?”
  “是因为右引號没闭合,”沈砚用滑鼠圈出空缺的引號,“就像你背台词时漏了半句,观眾会出戏。”
  “哦……”她故意拖长声音,“那技术顾问能不能示范一下,怎么让『你好,沈砚』完整齣戏?”
  他无奈摇头,补全代码,屏幕中央跳出白色字符:
  你好,沈砚!
  “现在是『完整齣戏』了,”他说,“但少了点程式设计师的仪式感。”
  “仪式感?”
  他在代码末尾加上一行注释:
  #致我的hello world
  周吔凑近屏幕,睫毛在投影光中颤动:“这行小字是什么?”
  “注释,”他轻声说,“不会被计算机执行,但会被程式设计师记住——就像剧本里写的人物小传。”
  “接下来学变量,”沈砚新建文件,“比如用name变量存你的名字。”
  周吔突然抢走键盘,快速输入:
  name =“周吔“
  “这次没报错!”她转头看他,发梢扫过他下巴,“沈砚快夸我!”
  “先別急,”他故意调出控制台,“试试列印name变量。”
  她自信地输入:
  print(name)
  屏幕弹出:
  周吔
  “看吧,我就说,”
  “等等,”他憋著笑,“你怎么知道要直接写变量名?”
  “因为……”她眼神飘向窗外,“我刚才偷偷看了半章书!”
  “撒谎,”他捏了捏她的耳垂,“书里这节標题是『变量:程式设计师的储物箱』,你连储物箱长什么样都不知道。”
  “沈砚!”她捶他肩膀,“你居然考我?”
  “那我再考考你,”他在代码里加入新变量:
  love =“代码“
  print(name +“爱“+ love)
  “猜猜会输出什么?”
  周吔歪头思考:“周吔爱代码?”
  按下回车,屏幕却显示:
  周吔爱代码
  “为什么没有空格?”她惊呼。
  “因为字符串相加等於拼接,”他用滑鼠划出代码,“想加空格,得手动写——”
  他修改代码:
  print(name +“爱“+ love)
  这次输出:
  周吔爱代码
  “现在才对,”她满意地点头,“就像我对你说『沈砚爱周吔』中间要留足心跳的空隙。”
  沈砚的耳尖瞬间泛红,快速最小化窗口:“下节课再学运算符优先级。”
  “现在教你写烟代码,”沈砚调出海龟绘图库,“先导入模块。”
  周吔突然指著他的代码喊:“等等!你写错了!urtle写成了turtle!”
  他定睛一看,果然多了个t:“……你居然能发现?”
  “因为我记住了urtle是『乌龟』的意思,”她得意的笑,这时候的她还是准大学生,人生中知识储存量最多的时间点。
  “原来你才是隱藏的学霸,”他无奈笑,“那接下来,由周老师指导我画樱?”
  “荣幸之至!”她坐直身子,“先画瓣,用for循”
  “等等,”他按住她的手,“for循环要记得写冒號,还要缩进。”
  “知道啦!”她甩开他的手,输入:
  for i in range(5):
  turtle.circle(100)
  turtle.left(72)
  按下运行,一只绿色乌龟在屏幕上画出五边形:
  “怎么不是樱?”她皱眉。
  沈砚憋笑:“因为你没告诉乌龟,这是樱,不是五边形——”他修改代码,加入顏色和弧度:
  for i in range(5):
  turtle.color(“pink“)
  turtle.circle(100, 72)
  turtle.left(144)
  粉色瓣在屏幕上缓缓绽放,周吔眼睛发亮:“原来樱的秘诀是144度!”
  “也是我每次看你的角度,”他轻声说,“能看到最亮的梨涡。”
  陈默抱著文件夹进来,瞥见屏幕上的樱:“哟,老大这是提前过情人节?”
  “学编程,”沈砚淡淡道,“別乱猜。”
  “学编程需要画樱?”陈默挑眉,“我学的时候只画过二叉树。”
  周吔忽然指著代码里的注释:“陈默你看!这行写著『zy的睫毛=37%反光率』!”
  “什么?”陈默凑近屏幕,沈砚迅速最小化窗口:“ bug注释,不值一提。”
  “明明是——”周吔嘴角笑出弧度,“程式设计师的情话加密术。”
  沈砚收拾电脑时,周吔忽然指著他的笔记本:“这是什么?”
  页面上是未保存的代码:
  if __name__==“__main__“:
  while true:
  print(“周吔是光“)
  “死循环?”她挑眉。
  “是程式设计师的执念,”他合上笔记本,“就像我每天睁开眼,第一件事是確认你有没有发消息。”
  “那我要给这段代码加个终止条件,”她抢过笔,在后面写下:
  if kiss == true:
  break
  “现在,”她晃著笔笑,“只有收到吻,才能跳出循环喔。”
  “霸道,”他嘆气,却在她转头时,快速在她额头落下一吻,“这样,循环终止。”
  傍晚bj·字节跳动19层小会议室,沈砚用马克笔在白板上画完循环结构示意图,转头看见周吔正用他的键盘敲《小星星》旋律,樱发卡歪到一边。
  “认真点,”他弹了下她的额头,“等会要学的是,”
  “等等!”她忽然指著他电脑上的代码片段,“这个import base64是什么?”
  “base64加密,”他调出示例代码,“比如把『周吔是光』变成乱码,”
  他敲下两行代码:
  message =“周吔是光“
  cipher = base64.b64encode(message.encode()).decode()
  屏幕弹出:
  “周吔是光”
  周吔眼睛一亮,指尖划过屏幕:“那我现在发消息给妈妈,用这个加密,他是不是就看不懂了?”
  “理论上是,”沈砚忍住笑,“但前提是他也要知道解密方法,”
  他补全代码:
  decrypted = base64.b64decode(cipher.encode()).decode()
  print(decrypted)
  输出:
  周吔是光
  “哇!”她拍手,“这是不是黑客常用的技术?”
  “黑客?”沈砚挑眉,“黑客更擅长攻防,比如渗透测试、漏洞挖掘——”
  “那我能学吗?”她拽了拽他的卫衣袖子,“就像《黑客帝国》里的崔妮蒂,用代码控制世界!”
  “控制世界需要先控制变量,”他调出python官方文档,“比如这个os.system函数——”
  他输入:
  import os
  os.system(“shutdown -s -t 60“)
  周吔惊呼:“你要关机?!”
  “只是演示,”他快速取消命令,“真正的黑客不会用这么粗暴的方式,而是用社会工程学”
  “社会工程学?”
  “比如,”他忽然凑近她耳边,“假装成快递员骗你开门,或者,”
  “停!”她捂住耳朵,“我还是学加密吧,这样给你发消息,別人就偷不走了。”
  “小偷要是知道你用base64,”他弹了下她的发卡,“会笑到打鸣。”
  周吔忽然抢过键盘,输入:
  import random
  def hack_shenyan():
  return random.choice([“请喝奶茶“,“陪看电影“,“写代码情书“])
  “这是什么?”沈砚挑眉。
  “黑客程序,”她一本正经,“每次运行都会隨机触发你的『指令』。”
  他看著屏幕上跳出:
  请喝奶茶
  “耍赖,”他嘆气,“这个程序没有终止条件。”
  “所以是死循环呀”她晃著手机,“就像我喜欢你,没有终点。”
  沈砚的耳尖略微泛红:“下节课学网络爬虫,现在去吃饭。”
  路过茶水间时,周吔忽然指著陈默的电脑:“他在干嘛?”
  陈默正在用wireshark抓包,屏幕上满是数据流:“抓tiktok的海外请求包,找漏洞。”
  “漏洞?”周吔眼睛发亮,“是不是像衣服上的破洞,需要用代码缝补?”
  “差不多,”陈默笑道,“比如发现某个接口没有做权限校验,黑客就能——”
  “陈默!”沈砚打断他,“你是想让她半夜起来写漏洞报告?”
  “不敢不敢,”陈默举手投降,“不过嫂子要是想学,可以参加我们的『白帽黑客训练营』——”
  “真的?!”周吔转头看沈砚,眼神发光。
  “可以,但每周只能学两小时,”沈砚妥协,“而且必须先写完今天的作业,用base64加密一段台词,发给我。”
  “成交!”她伸出小手和沈砚拉勾。