去年三月份,我打开牛客网准备搞秋招。说实话第一感觉是“这年头还敢把网页做得这么土?” 满屏的红色Logo、广告弹窗、还有各种“AI面试官”的入口,像极了路边按摩店和编程培训的合体。但我忍了,因为身边所有人都用牛客,学校就业群里的学长留下的共享文档里全是牛客链接。当时我连牛客网和牛客是一个东西都不知道,反正注册完第一件事就是打开“在线编程”准备刷题,然后发现牛客的题目描述和LeetCode比简直像草稿纸,有的题连输入输出格式都写得不清不楚,一道“简单”题能卡我半个钟头。
我和LeetCode对比过,真的是两个世界的产品。LeetCode是干净的、国际化的,题目有精细的难度梯度,讨论区大神贴代码还配讲解。而牛客网更像是国内大厂笔试的“考古现场”,很多题是直接扒的字节、美团、腾讯的真题,但题目描述就像外包程序员写的注释,既没排版也没图,还有些题甚至用“牛客网是啥?” 这种内部梗。但神奇的是,我刷了三个多月,大概236道题(简单120中等90困难26),最后面试时反而牛客上的题派上用场了。比如字节一面考了一道“设计LRU”,牛客上的版本居然要求自己处理输入输出,而LeetCode直接给类接口。面试官就是那种风格,让你自己写main函数,可把我整不会了,但因为我习惯牛客这种需要手写I/O的环境,居然磕磕绊绊写出来了。
真正让我觉得牛客离不开的是面经库。这玩意儿LeetCode连个影子都没有。牛客的面经可是实打实的大厂回来的人写的,而且更新速度极快,2024届的秋招面经我在春招前就能搜到。我在牛客收藏了30多篇腾讯、百度的面经,按项目、八股、算法、HR面四种类型整理成了自己的SQL表。印象最深刻的是有一篇2023年字节技术终面的面经,连面试官问“你之前的实习有没有用协程”这种细节都有。我把这些面经里出现频率高的知识点标红,比如“分布式事务”、“布隆过滤器”,一个月后遇到一个中厂面试,居然原封不动问到了其中的两个,当场感觉这坑蹲得值。
但牛客的坑我也踩了不少。先说社区,越来越变味了。以前牛客求贤若渴,现在满屏都是秀offer的——“双非本科,一个银奖、一段大厂实习,拿了腾讯和字节的offer,请问去哪个?”。刚开始我也焦虑得要死,后来发现这些帖子大多是编的或营销号引流。我建议看到“offer比较”就快速划过,认真搜具体技术栈或公司面的面经才有意义。另外牛客的在线编译环境真的垃圾,用C++写一个二叉树层序遍历,在本地VS Code秒过,一粘到牛客就超时,我后来才发现牛客的judge机对STL的编译优化极差,有些版本甚至不支持C++17。所以千万别在牛客上写完代码就跑,我一般用本地Clang或Clion编译好再粘贴过来,免得到时候又超时又报错。还有牛客的“剑指offer”专题,虽然经典,但题目顺序很乱,推荐先按数组、链表、DP分类刷,每类刷个十几道再去参加模拟赛。
对于想在秋招拿到大厂Offer的朋友,我自己的实操步骤是这样的:第一步,别急着刷题,花三天时间把牛客网面经库的关键词翻一遍,记录出现频率最高的15个技术点,每个点找一篇最详细的面经读透。第二步,拿起牛客的“笔试真题”模块,做三到五套完整的笔试题,按真实考试时间来,我做得时候每次都炸,因为根本做不完,但习惯了时间压力后面试时反而不慌。第三步,集中刷“剑指offer”,但一定要两遍,第一遍按索引过一遍,第二遍按标签刷,同时把每道题的复杂度写在Excel里。第四步,参加牛客每周末的模拟赛,虽然难度波动大,但能磨合手速和心态。第五步,也是最重要的,把你在牛客上遇到的每道错题和对应的面经链接存到文档里,面试前一天只看这个文档,别的什么都别看。我按这个流程准备了40天,拿到了贝壳和京东的面试机会,虽然最后只进了贝壳,但至少证明土办法管用。
最后说点大实话吧。牛客网是个让人又爱又恨的臃肿平台,广告多、界面乱、社区水,但如果你只是一个普通学历、没背景、没大厂资源的计算机学生,牛客绝对是你最便宜、最直接的情报站。你不需要在那里寻找“编程的纯粹”,那是LeetCode的活;你需要的是像猎人一样扒信息、刷真题、练手感。我到现在还会每月打开牛客看看面经,但几乎不刷题了,因为算法能力基本靠LeetCode维持,牛客只用来更新情报。如果你问我和LeetCode哪个重要,我的答案是:LeetCode给你翅膀,牛客给你方向感。但永远记住,牛客的题库不是全部,真实的工作里没人让你去死记硬背LRU,你得学会的是“遇到问题能搜到答案,并相信自己的逻辑”,这一点牛客永远学不会。