2026届_HCHogan
技术栈测试(C++版)
1、C 语言看的哪个资料?:
c语言没有特意学,我当时直接学的c++
- 指针懂吗?知道什么是地址吗?
懂,地址是内存中的一个位置 -
懂内存分配吗?
懂,比如程序有栈区堆区等。 -
结构体是否学过?
学过,结构体是把多个变量放在一起
2、C++看的哪个资料?
刚开始看的黑马的那个视频入门,后来看了侯捷的stl,c++11,内存管理这三个课,然后看了effective c++和深度探索c++对象模型
- 继承,重写,多态懂吗?
懂,子类重写父类的函数,运行的时父类指针或者引用指向子类对象就是多态 -
STL这些容器学过了不?大致底层实现懂不?
学过,比如vector是两倍两倍变大,然后queue和stack都是容器适配器,内部实现是deque,deque是一个指针数组,每个指针指向一块固定大小的内存 - 智能指针了解吗?
了解,shared_ptr,unique_ptr等,但是好像自己没怎么用过
3、数据结构与算法看的哪个资料:
- 链表,栈,队列,二叉树能自己手写吗:
可以 - 堆,AVL树,红黑树学过吗:
学过,红黑树看过一部分,删除操作就有点看不懂 - 冒泡,快速,归并排序能手写吗:
可以,不过现在突然要写的话应该要想一会,好久没碰了 - 递归,二分,贪心,回溯,动规这几种算法学过哪几种:
都学过,不过好久没有碰了 - LeetCode 大概刷了多少题:
我之前是刷的codeforces,leetcode没有怎么做过
4、计算机网络与操作系统看过哪些书籍:
- HTTP、TCP、IP、ICMP、UDP、DNS、ARP这些协议了解过吗:
http,dns是应用层的,tcp,icmp,udp是传输层,ip是网络层,arp是一个局域网内通过ip地址找到mac地址 - HTTPS安全相关的:数字签名、数字证书、TLS了解过吗?
没有 - 进程线程通信机制了解吗?
进程间可以用mmap共享一个内存区域,或者pipe啥的
线程好像有条件变量,信号量啥的 - 内存管理了解吗?比如置换算法啥的:
了解,比如换页的least recently used算法
操作系统的虚拟内存机制
还有malloc,std::allocator的实现也看过
5、网络编程了解?看过哪些资料?
好像就看过自顶向下,没怎么写过网络的代码,只是有个概念
- IO模型懂吗,阻塞非阻塞,同步异步这些概念懂吗?:
同步就是要等,异步就是直接返回好像 - IO 复用机制:epoll、select、poll懂吗?:
不懂
6、MySQL与Redis看过哪些资料?:
- sql 熟练吗:
- 索引底层原理懂吗:
- 锁和事务了解吗?幻读了解吗?
- redis主从,集群了解过吗?
一点也不会
7、C++/Linux项目做过哪些?:
好像没有做过项目,不过上6.s081的时候对他那个xv6内核研究的比较透彻,不过是c语言的
8、其他你们自己补充:
看过那个程序员的自我修养,对程序的链接,库,加载什么的了解的比较清楚
目前又上了一点cs144。
学的很杂,还学过cs193p swift开发,cs231n计算机视觉深度学习,python的numpy tensorflow那些,不过都不了了之
学习规划(2023.8.21)
课程大纲: 所有课程大纲入口 ,PS:你要的东西,课程大纲基本都会有哈,需要学啥记得来课程大纲看看(不过这是Java的)。
我觉得你是真的喜欢玩编程各种玩意,我觉得这非常非常好,在大一大二,就应该多折腾,折腾起来全身心投入,就特别爽,所以呢,我也喜欢你继续折腾你喜欢的东西。但是呢,现在大二,大三就要找实习之类的了,所以我希望你在折腾的同时,也需要有一个目标在推动,这样学起来有方向,不会漫无目的,折腾虽然有用,不过这个和找实习 进大厂是不同东西。
其实训练营里,也有一个特别喜欢研究底层的,我觉得折腾能力特别强,不过去年秋招面大厂时并不如意,后面因为兴趣去了一家创业公司做了操作系统内核底层开发。
所以呢,你在保留你以往折腾的同时,也一边跟着我的路线,来为未来找中大厂实习做铺垫,到时候找实习/工作就会方便很多哦,具体学习建议如下:
1、自己实践+混开源:首先你理论应该学了挺多,当然,你应该也是刷一下,理解了就过了,但是接下来我们需要来实践,用代码去实现,然后开源提交到 github 上,为后面简历可以多写点东西做准备,面试官是特别喜欢这种的,后面弄的好我还能给你宣传下,增加一些star,然后对应的项目其实有很多,这里建议如下:
(1):你可以把你自己看国外课程的,实现后自己弄上去,这个看你在自己。
(2):自己实现一套C++ STL,这个挺推荐哦,因为面试经常问这种,而且你以后也不用复习这些,重点可以学到很多设计思想,这里阿秀也实现过,你可以参考:MyTinySTL,但是我更希望你也能自己试着去实现哈,因为你的目的是学习勒。
(3):做 web 项目,C++底层,最流行最基础的就是写个 web 项目了,你也写一个,当作学习网络编程,你可以看牛客网这个:Linux高并发服务器开发,入门之后,做一个大的 C++ 项目,可以说是第一个项目的升级版,会用到比较多的技术栈:百度云下载 提取码: n1ee,因为很多C++的项目,数据库啥的都没有用到,,,
上面这些东西完成之后,自己开源到 github 勒,你可以有自己的想法,如果没有,做(2)和(3),这两个算是为面试准备。
2、算法:这个你继续刷就行,你在 ACM 集训队里,我这里的大部分是偏面试,你按照你的来就行,然后呢,如果觉得在 ACM 拿不到奖的话,提不起兴趣的话,不花太多时间在这里也行,如果是面试的话,这个路线的题搞定就可以了算法刷题路线(系统+全面),另外后面没参加 ACM 的话,可以刷一下蓝桥杯吧。
3、其他:你有什么想法,可以按照你的来,可以找我商量,反正什么都能商量,各方面我都可以给你推荐,我这里给你把握一条对你以后实习/工作的道路,其他你想怎么折腾都行。
目标:可以明年暑假啥的找实习吧
然后记得来每周打卡学习进度哈,也可以星球每天打卡哦,我会看的,比如像他们这样:0. 每周打卡做的比较好的成员示例,你也可以每天打卡或者星球打卡吧,我会看的