科兴科学园的早晨,阳光透过玻璃幕墙洒进三楼走廊。
    林深提前四十分钟到达,在前台登记后,拿到一张临时访客卡,被引导进了一间会议室。
    里面已经坐著七八个年轻人,有人低头默念著什么,有人反覆翻看简歷,空气里瀰漫著淡淡的紧张感。
    他找了个靠窗的位置坐下,没有看简歷,也没默念知识点,只是盯著窗外一只在玻璃上反覆撞的飞蛾。
    “你说它为什么非要往那儿撞?”他突然对旁边一个低头背算法的男生说。
    男生愣了一下,抬起头:“啊?”
    “明明旁边就是开著的窗,”林深指了指走廊尽头,“但它非要撞这块擦得特別亮的玻璃。像不像有些人,明明有路,非要选最难的那条。”
    男生张了张嘴,完全不知道该怎么接话,他甚至觉得,这人是不是在嘲讽自己?
    正组织了一堆语言反击,却见林深已经起身。
    林深沿著走廊慢慢走著,2010年的腾讯科兴园区,还没有后来那些咖啡厅、健身房、睡眠舱,一切都显得朴素而务实。墙上的標语倒是始终如一:“一切以用户价值为依归”。
    茶水间总归是没变吧……
    他走到走廊尽头,果然看到一个小型茶水间。
    没有人,只有咖啡机和饮水机发出低低的嗡鸣。林深轻车熟路地找到储备的固態果汁条,给自己泡了一杯,熬夜加班时他从不喝咖啡,乏了,就冲点果汁提神。
    正依靠在水吧檯慢慢喝著,一男一女两个人走了进来。
    他们都掛著腾讯的工牌,没看林深,只是自顾自地接了杯水聊著,男人语气里带著明显的烦躁。
    “……临时抽调我来当面试官,手头的项目进度谁跟?”
    “周老师说了,这批实习生要重点培养,以后都是要充实到一线团队的。”
    “培养?就靠这几道笔试题能看出什么?去年招的那个北大的,笔试满分,进来连个简单的內存泄漏都排查不出来。”
    林深握著纸杯的手指微微收紧。
    他听出来了,这个声音……是陈默。
    他前世只在內部技术分享会上见过陈默几次,那时陈默已是微信事业群的高级技术总监。而现在,三十出头的陈默身形挺拔,头髮还有些凌乱,说话时带著明显的、属於一线工程师的直率烦躁。
    “你这就有点偏激了,我看人家到娱乐事业群那边,发展也挺好。说回这次笔试,陈老师你出的那道设计题也太难了,不如换个別的。”
    “通讯题是我坚持要加的。”陈默对身旁的女同事说,手指无意识地敲著台面,“现在团队最缺的就是懂底层通讯的人。那些只会写ui的,招进来还得从头教,这种实习生,我可没时间带。”
    女同事摇摇头,补充著说道:“40分的题,预计平均分不到15。你指望应届生能设计出可用的im架构?”
    “难才有区分度。”陈默推了推眼镜,“我要的不是背题的人,是真正会思考的。”
    林深不著痕跡地放下纸杯,准备离开。
    偷听面试官討论毕竟不妥。
    但就在他经过两人身边时,陈默突然转头:“你是……来面试的?”
    声音不高,但很清晰。
    林深脚步顿住,坦然点头:“是。抱歉,没想偷听你们谈话,正打算走。”他说完,却补了一句,“不过你们刚才说的內存泄漏,有时候不是不会查,是不敢查。万一是自己写的代码泄漏了呢?那多尷尬。”
    陈默和女同事同时愣住了。
    这话说得太直白,甚至有点……挑衅?
    但林深脸上却掛著那种“我只是在陈述事实”的无辜表情。
    “几点的场次?”陈默问,目光在林深脸上多停留了一秒。
    “十点。”
    “第一个?”陈默將目光投向身边的女同事。
    女同事的名字,林深后来才知道,叫李薇。她翻开了手中的文件夹。里面是今天面试者的资料,按时间顺序排列。
    她的目光在第一页上停留了两秒,然后抬起头,打量了林深一眼,將文件夹递给了陈默。
    陈默接过,视线落在纸面上。
    几秒钟的安静。
    然后他抬起头,看向林深的眼神里多了些別的东西:“你就是林深啊?”
    林深保持著平静:“是我。”
    陈默合上文件夹,但没有立刻让他离开,而是靠在水吧檯边,像是隨口问道:“笔试192分,系统设计38。那道im架构题,你写了个『弱推送+定时拉取+智能唤醒』的方案——为什么选这个思路?”
    “陈老师,面试还没开始!”李薇赶紧说道。
    “没事儿,让他说说,还有时间。”陈默摆摆手,眼睛却盯著林深。
    问题来得突然,但林深早有准备。
    “因为移动端的现实约束。”他语速平稳,“电池容量有限,网络不稳定,系统进程管理严格。追求绝对实时性会导致耗电过高、体验反而下降。所以我觉得,不如接受一定延迟,把资源用在保证重要消息必达上。”
    陈默听著,手指又习惯性地敲了敲台面:“但用户可能想要即时性。”
    “所以需要產品设计配合。”林深自然接话,“比如区分消息优先级,给用户选择权,解释后台运行的意义。技术上做不到完美,就靠產品和体验补足。”他突然笑了,“就像谈恋爱,你不能24小时盯著对方,但可以约好『重要的事立刻打电话,小事发简讯』,一个道理。”
    李薇的眉毛挑了一下。
    陈默则盯著林深看了两秒,然后——也笑了:“比喻有点怪,但意思懂了。”
    “技术和產品的平衡……”陈默若有所思地重复了一遍,然后忽然换了个方向,“通讯协议那道选择题,你选了『分层设计,按场景选择tcp或udp』,批卷老师给了满分。但如果让你具体设计,你会怎么分层?”
    林深略作思考:“三层。第一层,关键状態同步和重要消息,必须用tcp保证可靠投递。第二层,实时音视频流,用udp加前向纠错,容忍一定丟包。第三层,非关键的状態更新,比如『正在输入』这种,可以走udp,丟了就丟了。”
    他顿了顿,补充道:“其实还可以再细化——比如根据当前网络质量动態调整策略。wi-fi下可以更激进,弱网下就保守些。不过这就涉及客户端和服务的状態同步了。”他突然眼睛一亮,“对了,这就像人走路,平路可以跑,石子路就得慢点,要是下雨天,那简直得一步三看。”
    茶水间里安静了几秒。
    李薇看了眼陈默,陈默则盯著林深,眼神里的审视渐渐被某种兴趣取代。
    “前向纠错、动態策略……”他低声重复著这两个词,“这些概念,你在哪儿学的?”
    “研究过一些开源项目,也看过几篇论文。”林深如实说,“不过都还只是理论,没实际做过。”
    这是实话。前世他做过,但现在这个时间点的林深不应该有相关经验。
    陈默点了点头,没再追问。他看了眼手錶:“九点四十了。你先回等待室吧,十点准时开始。”
    “好的。”
    林深礼貌点头,转身离开茶水间。
    走回等待区的路上,他能感觉到背后有两道目光一直跟隨著。不是审视,更像是……確认了什么。
    回到座位,窗外的阳光又升高了一些,在走廊地面投下更明亮的光斑。
    等待区里的其他面试者还在紧张准备,有人小声背诵著算法复杂度,有人在纸上画著系统架构图。林深靠进椅背,闭上眼睛,让刚才的男生有些难受。
    而林深,却在復盘和陈默的简短交流,虽然只有几分钟,但信息量很大。
    第一,陈默记住了他的笔试答案,而且印象很深。
    第二,陈默对“技术与產品平衡”这个思路感兴趣——这很“微信”,很“张小龙”。
    第三,那些超前的概念,比如前向纠错、动態策略引起了注意,但没有引起怀疑。
    很好。
    九点五十分,前台小姐姐探头:“林深同学?302会议室,可以进去了。”
    他站起身,整理了一下衬衫领口。
    走向会议室的路上,走廊两侧的工位区已经坐满了人。屏幕代码闪烁,键盘声密集而规律,白板上画著复杂的架构图,这是2010年的腾讯,移动网际网路浪潮前夜的备战状態。
    而在302会议室里,周博涛、陈默、李薇已经坐在长桌一侧。
    林深推开门。
    “林深同学,请坐。”周博涛开口,声音和电话面试时一样沉稳。
    “我叫周博涛,是今天面试的主考官,这位是陈默,我们团队的技术骨干;这位是李薇,hrbp。我们今天的面试大概一小时,会涵盖技术、项目、產品思考几个方面。”
    “好的,各位老师好。”
    周博涛翻开面前的文件夹,目光落在林深的简歷上,率先开启了面试:“林深同学,我们看过你的笔试答卷,特別是那道系统设计题。思路很清晰,基本功也扎实。
    不过,纸上谈兵和实际开发终究有距离。不如就从你简歷上这个『基於android平台的简易天气应用』开始,聊聊你在实际开发中遇到的最大挑战,以及你怎么解决的。”
    技术面试的標准开局,考察项目经验的真实性与解决问题的能力。
    林深早有准备。他没有选择那个最复杂的技术难点,反而挑选了一个更具“故事性”和“学习过程”的问题。
    “最大的挑战,其实不在於技术实现,而在於对移动开发特性的初次深刻认识。”
    林深顿了顿,组织语言,“当时我按照桌面端开发的习惯,在ui线程里直接进行网络请求获取天气数据。在模擬器和我的测试机上运行很流畅,但当我將apk发给另一位使用低端机型的同学测试时,应用频繁出现『应用无响应』的弹窗,甚至直接崩溃。”
    陈默微微挑眉,似乎对这个切入点有些意外,也来了兴趣。
    “后来排查发现,”林深继续道,“是网络延迟和低端机型ui渲染能力不足叠加导致。我意识到,移动开发的环境是『恶劣』且多样的,不能以开发者手中的设备为標准。
    解决方案是引入异步任务处理网络请求,並在数据返回前提供明確的加载状態,甚至考虑根据设备性能动態简化部分ui动画。这件事让我真正记住了『性能』和『体验』在移动端不是加分项,而是及格线。”他忽然歪了歪头,“就像请客吃饭,你不能只按自己的口味点菜,得问问客人能不能吃辣,有没有忌口,虽然你可能会觉得,『这么好吃的东西怎么会有人不吃』?”
    周博涛的嘴角似乎微不可察地咧了一下。
    “嗯,从错误中学习,方向是对的。”周博涛点头,接著追问,“如果现在让你重构这个应用,你会首先优化哪一点?为什么?”
    “数据缓存和更新策略。”林深不假思索。
    “天气数据並非需要绝对实时,频繁请求既耗电也耗流量。我会设计本地缓存机制,根据用户定位和上次更新时间智能决定是否发起新请求,並在wi-fi环境下预缓存可能关心的城市数据。
    这涉及到对业务逻辑(天气数据的时效性)、用户体验(刷新等待时间)和技术实现(缓存有效性、存储空间)的综合权衡。”他想了想,又补了一句,“就像你妈总想给你塞吃的,但你其实不饿——得有个机制告诉她,『妈,我真饱了,等会儿再吃』。”
    这次连李薇都忍不住看了他一眼。
    回答条理清晰,並且自然地將技术点提升到了產品和技术结合思考的层面,只是那些比喻……有点过於生活化了。周博涛在笔记本上记录了几笔。
    这时,陈默接过了话头,语气比刚才在茶水间时更显正式和深入:“你刚才提到『根据网络质量动態调整策略』,在你的笔试设计里也有体现。
    假设我现在给你一个真实的场景:我们的服务监测到某区域大量用户突然出现消息投递延迟激增,但该区域运营商反馈网络正常。作为负责通讯模块的工程师,你排查问题的思路是什么?”

章节目录


重生10:我在企鹅做推手所有内容均来自互联网,御书屋只为原作者佚名的小说进行宣传。欢迎各位书友支持佚名并收藏重生10:我在企鹅做推手最新章节