零声学习体验

目前求职成果

大概从4月中旬开始投递,到五月中旬为止,已经获得腾讯暑期实习offer,以及一个做数据库内核的小巨人企业的offer

## 一、初识零声

​本人对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,也会出现性能瓶颈,怎么知道性能瓶颈在哪?是凭直觉还是用火焰图?
        中间省略n字..............
​可以说,大到一个模块功能的并入系统,可能运行不了,甚至会影响其他功能的正常使用,小到绞尽脑汁算计如何榨取性能,哪怕优化几处strcmp,优化几个strcpy为memcpy,删去几个strlen的使用,都是一次性能的进步。

## 模拟面试

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

​    以八股文的模拟面试为例,课程里有涉及到Mysql,Redis,grpc框架,C/C++八股等课程,在学完之后,也是需要找老师约定一个时间进行模拟面试。对于模拟面试里被问到的,也基本上会出在实际求职的面试中。另外,零声的老师也有整理了许多八股资料可以参考和理解,里面有快速记忆和原理理解的描述,做得还是很全面的。其实对于求职的面试中,面试得多了,就能看出对八股文的拷问都大差不差,重点在于自己能不能把重点描述清楚,和自己项目相结合的八股,回答重点要突出自己有实践经验,自己是真的写过代码的,做到回答时自己心里有底气。

​面试需要练习,我第一次模拟面试的时候,也是抓不住重点,经常胡乱讲一通,碰到不会的问题,脑子瞬间一片空白。面试的能力需要在一次次模拟面试或者真实面试中锻炼,最基本的,把自己的项目,自己做过的东西,解决的问题,踩过的坑描述清楚,遇到不熟悉的问题,可以思考一会,回想一下以往做项目的时候有没有遇到类似的情况,如果是八股,尝试着能不能从一些相关的知识中迁移回答,面试官不需要你泛泛而谈,他更希望能够结合自己的实践经验阐述,这是区分面试者是否真正动手实践的核心。这些内容,都可以积极和零声的老师进行模拟练习,当然如果有时间,也可以借助ai模拟面试,但是ai对于面试者的问题回答的反馈基本都是正向的,和实际的面试场景会有点不符,不过练练自己的表述还是绰绰有余。

## 总结

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

​对于求职阶段,零声的老师会积极鼓励学员,也会推荐一些新的方向如果后续实在需要调整,像传统C/C++后端的岗位比较少,更多的是QT和嵌入式,在投递的时候,即使投了其他方向的,简历大概率也会被筛掉,因此在投递简历的时候很容易内心不稳产生焦虑。遇到这些问题,可以向零声的老师询问如何优化简历,也可以向老师倾诉一下求职的压力,king老师经常就会稳住我的心态,他经常提到后面还有秋招,春招,也有很多很多的机会,不要自乱阵脚。

​对于求职,首先自己的技术能力肯定要过关,扎扎实实学好基础,练好逻辑表述,其次有了零声老师这些行业前辈的建议和站台,他们对于行业求职的节奏和方向肯定把握得比应届生成熟,多多找零声的老师聊天,补全信息差,毕竟我认为付费课程中的人工服务才是最值钱的,这样已经可以做到在求职路上走得比较顺利了。

#C/C++##零声教育##我的求职进度条##腾讯暑期实习#
全部评论
0级号,这么牛皮,脚本多开几个,换IP大法呗
1 回复 分享
发布于 今天 19:15 浙江
能问一下报的是哪个班吗,我看零声网站上好多种
点赞 回复 分享
发布于 今天 19:17 江苏

相关推荐

评论
2
收藏
分享

创作者周榜

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