零声学习体验

 一、初识零声

​本人对linux/C/C++的技术栈比较感兴趣,在视频平台,社交软件上刷到相关话题时,都会顺带点击观看一段。直到某一天晚上在bilibili上刷到了有两个人坐在一个虚拟背景前面,视频界面上醒目的内容简约介绍,还是关于C/C++方向的内容,我自然会顺手点开观看。观看几个视频后,我认为这种高信息浓度的视频非常符合我的口味,视频中没有什么多余的元素,背景板简约大气,视频大部分内容都是king老师在给出自身的看法,虽然是一家之言,但是对于我这个对行业没什么了解的在读大学生来说,已经是一种很方便的信息获取方式了,而且视频内容的干货和一些中肯建议也不在少数,在短短几分钟到十几分钟的时间内,可以了解到某个行业的某些方向目前的情况,了解到走出学校进入职场的转变,以及最为重要的计算机学习建议,(同时两位老师坐在摄像头前回答问题这种朴素的视频界面设计,也感觉更有亲和力,还可以从老师的一些肢体动作,微表情等方面推测出一些额外信息),这些因素都建立了我个人对零声的初步好印象。

 二、进入零声

​大二下学期开学时,由于大三要为实习做准备,加上大二上学期做过的一些小尝试,java后端,unity游戏开发等小demo都做过,所以我一开始是打算自学,并不打算报培训班。虽然万物皆可自学,但是对我来说计算机自学难度还是太大。在bilibili上看完了JUC并发编程,Maven入门,JVM等视频,并跟着视频敲了一遍代码后,准备开始学习springboot框架,做一个项目试试水。然而bilibili上的免费教学视频固然很多,但是很多都不成体系,我不知道我学了这些东西究竟能用在哪,项目示例也基本烂大街,跟着敲一遍很容易,但是做完脑子还是空空的,感觉仅限于敲了一遍,把代码混了个眼熟。发现似乎几个月的时间好像没有什么产出,想上Github上找一个开源项目做一做,发现连环境都要配好几天,大量的代码也无法在短期内梳理完毕,学完了很多课程,发现面对实战的时候依然手足无措,我相信这也是很多自学人士的痛苦。

​从那时候不得不思考这种学习方式是否正确,是否适合我。但是时间不等人,我意外从我同学处了解到他报名了一个培训班,说效果还不错,课程内容有点难,但是很有收获,技术栈也是跟C/C++相关,这很符合我当时的期望,一是时间紧迫,二是喜欢使用C/C++语言,我便向他询问了课程,发现就是零声教育,没有某硅谷,某黑马等培训班那种铺天盖地的广告和夺目的海报,零声的大纲和宣传里全是朴素的字,有一种去惯了高档餐厅最后进了一家路边小馆的感觉,加之之前在b站上的印象,我认为是一个可以信任的机构。在此机缘下我加入了零声教育。

三、零声学习感受

零声服务的模式是视频课程+项目实践+阶段模拟面试

 视频课程感受

​视频为录播方式,对于我个人来说,录播其实远比直播划算,跟着直播手敲代码,思路肯定没有老师清晰,重点在于学,这会导致一旦节奏对不上,代码就敲不完,这时候是补代码呢?还是接着听呢?无论哪种方式,都需要直播课后继续看录播花时间学习理顺思路,那还不如直接看录播,按照自己的节奏看。

​对于视频内容,时常基本在2h左右,目前主要学习了一些mysql连接,DNS协议与请求,HTTP请求,TCP服务器,并发调试等,主要集中在高性能网络部分。课程内容基本是实操,由老师手把手教学,从配置环境到调试完bug,这是一个很好的学习通路,至少不至于在学到一半突然自己卡壳,削减学习热情。课程里使用的某些技术也会被使用到后续的项目里,可以说是设计的恰到好处了。

项目实践

​目前已实现了一个自研KV存储系统(键值对存储系统,仿Redis),项目实践阶段,也会由老师带入门,先打造好基础框架,保证最基本的功能可以运行。真正的挑战在于后续的迭代,项目迭代过程中,老师会在阶段交付的时候提出需求,给出交付时间,再验收,再迭代......而每次的需求都可能包含以前课程学过的东西,也可能是比较陌生的需求,这也是一个极好的锻炼,而且在有限的时间内,面对新的技术点,必须改变学生学习的思维,即先把资料看完,然后再动手做一个小demo,然后再运用于项目中这种完美主义式的学生思维。学以致用,乃至用以致用。在做项目期间,我认为重点有两个,一是学到了什么新东西,二是有没有产出。king老师在b站上,每当被问到关于学习方法的问题,总会一再强调一个产品化的概念,把一个想法做成一个产品,逐步迭代,逐渐学习。而这个KV存储系统让我能深刻感受到这句话的含金量。从项目第一次验收,king老师评价我的成果不像一个产品,像一个demo,到现在已经逐渐可以作为一个微型系统直接使用,性能也相对平稳。

​期间面临的挑战也极多,比如网络连接,是一请求一线程的方式,还是用IO多路复用让性能腾飞?即使使用了io_uring或者epoll,也会出现性能瓶颈,怎么知道性能瓶颈在哪?是凭直觉还是用火焰图?知道了瓶颈,怎么优化,如果批量提交IO请求,那面对单个IO网络可能阻塞怎么办,对于每个连接的上下文,接收发送缓冲区如何管理?是用libc的malloc/free还是tc_malloc/je_malloc等成熟的内存池,是对每个缓冲区都重复分配再释放,还是要引入一个连接池管理内存,实现复用?而且我们知道,redis是一个高性能的中间件,那么如此高性能的操作与响应,数据传输用UDP还是TCP还是用用户态协议栈,大文件传输怎么提高效率?RDMA优势是什么?RDMA的异步操作是一大特点,如何调整逻辑保证在异步调用的场景下数据收发正常?为什么单次POST请求有极高的风险跑出错误的预期,为什么流水线RECV/POST的方式却可以正确传输?对于底层存储引擎,选用哪种数据结构比较合适?比如hash表如何解决hash冲突?hash表扩容策略如何选择,是选择直接一次性搬运所有数据,造成延迟尖峰,还是选用rehash,平稳过渡?对于数据的持久化,分布式系统如何保证数据安全性和一致性,如何高效加载内存数据?主从同步直接传文件还是传指令?主节点有源源不断的用户流量,同步操作如何不阻塞用户流量进行?主从同步过程中,异步传输如何保证数据的完备性?ebpf是什么技术?为什么ebpf转发性能比使用传统UDP/TCP性能好?resp协议的优点是什么?如何解析resp协议?如何支持多指令操作?如何支持pipeline模式?解析的数据如何传递给指令执行函数?测试案例怎么写?这些内容课程中不可能讲的明明白白面面俱到,但是老师的服务就在于给出方向(这些技术点方向以前可能都闻所未闻),剩下的可以看课程,网络冲浪搜集资料,借助ai等方式,加深自己对技术点的理解,学习新的技术点。

​可以说,大到一个模块功能的并入系统,可能运行不了,甚至会影响其他功能的正常使用,小到绞尽脑汁算计如何榨取性能,哪怕优化几处strcmp,优化几个strcpy为memcpy,删去几个strlen的使用,都是一次性能的进步。

模拟面试

以项目实践的模拟面试为例,一般是演示成果。老师站在客户的角度,有可能要求的演示方式与我们开发时的测试方式不同,便会暴露出系统的不完善,从中也可以了解到项目问题的优先级,哪些是直接影响使用,优化刻不容缓?哪些是可以等并入新功能再逐步调整?有时也会询问某个功能实现的大致思路,为什么这么实现?可以说这个模拟面试,就是在为将来的正式面试脱敏,熟悉面试的场景,调整技术表达.........

总结

​对于付费学习的问题自然是仁者见仁智者见智,在零声学习的这几个月中,收获颇丰,在项目实践中,可以很明显地感觉到,真正把一个想法产品化,期间的技术点,策略,乃至架构设计,自身都会得到很大的提升,而且也会发现实践和书本知识完全不是一回事,书本会告诉你epoll,io_uring性能好,但不会告诉你如何调整逻辑以适配自己的应用场景,解决性能瓶颈,书本会告诉你hash表的查找时间复杂度是O(1), 但不会告诉你即使是O(1),也被某些昂贵的系统调用拖慢速度,如何舍弃掉这些昂贵的系统调用。这是大学生走出课堂要上的第一节课,逐步与工业界接轨。付费课程,买的就是人工的服务,买的就是成体系的课程设计,至少在零声的学习中,我不必焦虑接下来学什么,学完究竟有没有用,如何产出,有引路人规划学习路线,这是一份极大的安心,安心专注于学习技术,增加产出,专业的事情应该交给专业的人做。

#C/C++##零声教育#
全部评论

相关推荐

05-07 02:07
已编辑
门头沟学院 后端工程师
我是 2025 年 11 月底加入零声的。在这之前,我的状态其实很典型:每天刷题、看八股、找项目、投简历,看起来很努力,但没有方向、没有体系、身边也没有人给我反馈。最真实的结果是——忙了一个月,杂七杂八看了一堆,几乎什么都没沉淀下来。秋招对我的打击比较大。我一共投了大概 200 家公司,只收到了 2 个面试,最终拿了 2 个 OC,但一个是外包,一个是制造业,且两家薪资都很低。当时我其实不服气,觉得自己有科研背景,投了这么多总该有不错的结果,就都拒绝了。但现实很直接:秋招结束后,所有投出去的简历再也没有任何音讯。那一刻才意识到,不是运气问题,而是能力和准备出了问题。后来我选择在零声重新来一遍。加入零声后,按计划一周一周推进,一个阶段一个阶段做项目,大概持续了 3 到 4 个月。期间白天帮导师做事,每天尽量抽出 4 到 5 个小时学习。最大的变化不是学了多少知识,而是学习变得有方向、有路径、有反馈,也开始真正理解技术是为了解决什么问题,而不是停留在技术点内容背诵理解的层面。学习计划按一周、两周进行,每个阶段学的差不多了都能找老师摸底(当然,老师可能带很多学生比较忙,不会盯着我们一个人,需要自己主动找老师)。在和老师交流过程中能发现自己对技术点的理解只是停留在内容理解上,具体问什么场景就哑火了(这点我发现是很关键的,因为后面求职面试过程中,面试官经常会关注某个问题场景来提问)。之后完成了两个比较完整的产品项目后,开始准备春招。从 4 月开始,我投了大概 100 家公司,收到了 7 个面试机会,最终拿到了 2 个 OC。在春招接近尾声、机会已经不多的情况下,我选择了一个薪资更高的 offer(薪资超出我预期50%以上)。对比秋招,最大的变化不是投得多或少,而是我开始能“接住面试”了。经过零声的老师跟我一起复盘梳理,到后面项目能讲清楚:项目架构怎么设计的,二开的需求怎么设计的、为什么这么设计,项目有遇到什么问题、怎么定位问题所在、遇到问题怎么处理的。问八股问题也能结合项目场景说自己的理解,整体表达也更加有逻辑。回头看这段经历,其实很简单:不是我突然变聪明了,而是学习方式变了。有体系、有节奏、有人帮你校准方向,成长效率会完全不一样。如果你现在也是学了很多但没有结果,很可能不是不努力,而是缺少方向和有效反馈。有人带着走,和自己瞎撞,差别真的很大。当然,师傅领进门修行靠个人,自己不主动花时间学习、主动求解惑,啥人来了都没用。在自己愿意往前的时候,零声是可以帮助你更进一步的。零声的课程内容还是比较丰富的,整个校招求职过程可能只能学15-20%,别的一些技能也有很多都是工作通用的,课程也在不断更新新内容,我们自己也需要不断学习。最后感谢零声,感谢各位⽼师的⼀路帮助。
点赞 评论 收藏
分享
这是我个人的经验分享,零声给我提供了不小的帮助,仅供参考。是否真的需要还是要结合自身情况考量。初识零声先介绍一下我的背景吧,我是双非本211硕,是2025年11月加入零声的。在加入零声之前,我只刷了半遍hot100,以及写过一个简单项目。语言停留在会用,底层知识和基础知识八股基本没有了解。我年前就在准备暑期实习的事情了,但在加入零声之前,我其实并不知道我要学些什么,也不知道企业要求是什么。这也是我加入零声的初衷,比起自己一个人探索,如果有人引导的话效果会更好。但实际上,加入零声对我的帮助远比想象中的多。加入零声的头一个月,其实我并没有什么紧迫感,我想可能明年四五月份把暑期找到,甚至再晚一点找日常,最后秋招有一个不错的结果就行。加上当时有开题,我并没有花很多时间来学习。而当时零声老师的计划也是按部就班,四五月份准备完毕,最后找到实习。剧变事情发生在一月份,一些意外导致家庭经济上入不敷出,我想做点什么,才发现读了这么多年书,先不说回馈家里,我连不从家里拿钱都做不到。我想我可以找实习,但我当时的能力完全不足,我也不知道企业的要求是什么。我那几周的状态,按king老师形容就是惊弓之鸟,非常的焦虑,做什么都沉不下心,又非常想赚钱。甚至想着白天打零工晚上学课程。当时给mark老师发的消息,我说我想早一些找实习,最好能现在,或者年后立马找,但不知道怎么做。我当时确实有些急了,后续是king老师给我重新做了一下安排。king老师说,你现在立刻找也能找到,但都是干杂活,一天一两百。对你后续秋招帮助也不大。你好好学,四五月份找个大厂实习,一天四五百,干一个月顶你现在去找两个月。你多花两个月学习,少赚的那点钱以后随随便便就赚回来了。后面每次开会的时候,king老师都非常肯定的和我说,你肯定是有大厂机会的,让我准备完全再去找实习。学习过程考虑到了我的情况,king老师给我制定的路线是,Linux基础知识>>高性能网络>>内存数据库>>存储>>AI项目。mark老师在内存数据库和存储之间让我学习了一个基础组件专栏。第一次学完kv存储,感觉好像也就那么回事,king老师又提了很多二开需求,比如主从同步、持久化机制、内存池、内存泄漏探测组件,以及一个要求我要达到的性能。这个性能预期是非常重要的,如果我自己去优化,我并不知道优化到什么地步才算是可以。如果参考其他内存数据库比如redis,那就会受限于它的落盘模型,最终做出来也是一个类redis的产品。而如果有一个预先的可实现的一个预期,我在实现的过程中尝试很多方案,每尝试一种方案都是一个技术的积累,意味着你在面试的时候有更多的谈资,你知道各种方案的表现,你也更容易知道自己的kv存储和redis的区别在哪里。另一个重要的是有人指导,我第一次实现的时候实际上达不到预期的性能,但king老师在了解了实现之后,给我提了几个角度让我从这些方面排查,去优化瓶颈。最后才跑出来一个比较理想的结果。最后,我在学习期间,还问了mark老师关于八股的事情,mark老师让我看他整理的八股视频,mark老师比较看重知识的深度。包括之前的课程学习也是非常看重深度的,需要深入了解而不是浮于表面。实际上,后续面试反问环节,我会问面试官有哪些可以提升的点,有不少面试官都会说"你比较了解底层"。暑期实习面试之旅说实话是很煎熬的,几个月的努力兑现,king老师说直接投大厂开面就行了。但我还是很担忧,四月份一开始投的都是小厂,结果小厂几乎都不发面试。直到四月中旬才开始投一般大厂,但只有笔试没有面试,大部分都是海笔,写完笔试就没有消息了,根本积累不到经验。这种投了一堆简历,一个面试没有的感觉巨煎熬。最后索性就投了BAT,结果字节立刻发面,然后是腾讯,百度,然后是网易,美团这些做了笔试的大厂。只有阿里简历一直挂。面试过程异常的顺利,字节一二三HR面,百度一二面,腾讯一二面,网易一二三面,美团一二面。拿到字节offer的时候,还没有任何一次面试被挂。收到offer的那一瞬间,感觉几个月的压力一扫而空,我也不打算去别的厂了,因为字节实习工资最高,方向也不错。以我的经验来说,面试官更看重你对项目某个点的设计、取舍、系统思维,你的项目可以怎么用,而不是你的项目涵盖的有多广。所以零声这种由老师提出二开需求,然后你做开发的模式是比较契合面试要求的。只有这一块切切实实是你自己设计、实现的,面对类似题目你才能有足够有深度的回答和思考,甚至面对新的问题,你也可以顺着自己的思路继续展开。如果只背项目八股的话,一旦遇到没背过的问题,你是很难在项目基础上展开答案的。前两面面试官可能会满足于问你八股,但后续的主管面,可能更倾向于看你的思维。在这里再度感谢一下零声和对我有帮助的老师们,如果没有他们的指导,单凭我自己绝无可能在这个时间点拿到字节的暑期实习。
腾讯成长空间 6411人发布
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务