深信服_C++开发_面经

9.24 晚上一面:
实习做了什么
你的webserver项目有什么亮点
水平触发和边缘触发的区别
c++网络编程中依次用到哪些函数
服务端发生大量Fin_Wait状态是什么原因
如果软件运行时某进程的CPU占用率很高是什么原因
Linux中查看进程的CPU占用率的命令是什么
项目上线前如何保证它的功能实现正确
看过stl的底层原理吗
map在删除一个键值对时会不会引起内存大小的变化
给了一个题判断输出(一个类指针 = nullptr,无指向对象,一个成员函数输出hello,一个成员函数输出带成员变量的hello,分别输出什么,会不会报错)
程序的内存分区
手撕:双向链表删除指为val的所有节点

10min后二面:
问了下实习项目
内存泄漏如何检测
内存监测工具是什么
线程很多怎么办
你了解os原理后对你的代码有哪些帮助
stl用过哪些
手撕:vector类的resize成员函数

二面完让我回去,大概率寄了,但是官网还在流程中
全部评论

相关推荐

10-22 17:05
已编辑
辽宁科技大学 C++
本篇只讲述我的经验,有不同看法的大伙一起评论区讨论1. 学徒阶段:C++语法,包括C++11重要特性,比如线程、智能指针之类的。此阶段前面的基础语法,就是条件语句、指针、结构体、类等那些一定要扎实,可以多练习语法题来巩固,比如牛客网上就可以练习,后面的新特性智能指针、线程之类的可以简单有个印象即可。对应资料我推荐b站码农论坛。2. 入门阶段:这一阶段需要学习数据结构、计算机网络、操作系统。学习数据结构的时候配合刷题来加深自己对数据结构的理解,通过前期扎实的语法基础,实现基本的数据结构。计算机网络和操作系统大家可以同步进行学习,有能力的可以训练对应的代码,比如计算机网络对应网络编程,操作系统对应Linux系统编程,这个阶段你将对网络有一个大概的认知,对学徒阶段的线程会有新的理解,对进程也会有新的理解。这一阶段主要是开始刷题(算法题),并且对计算机有一个初步的认识。(这些内容我看了很多教程,也跟着学校认真学了,就不推荐了,大家只要认真学就可以了,忘了回头补充一下即可)3. 实习门槛阶段:这一阶段需要学习网络编程、Linux系统编程,学会写makefile或者cmake,使用gdb等。也许还会要求看对应的书籍,比如游双的那本高性能服务器,APUE等。这一阶段就是需要写代码练习,熟悉各种api如何操作,深挖一些细节。比如网络编程那几个api的细节,进程线程的区别、进程通信、线程通信等。可以参考一些面经找到一些答案。对于编写makefile或者cmake时,需要你熟悉计算机组成原理的编译和链接,希望大伙对于这方面要弄清楚,编译四个阶段做了什么事情之类的(这个很重要)。我还是推荐b站码农论坛。4. 跨越实习门槛阶段:这一阶段在我看来就是代表你已经有了不错的基础知识了,可以开始做项目,并且之后可以拿到offer了。这一阶段主要的事情就是做项目,要把之前所有的知识串起来,可以增添数据库等内容在你的项目之中,可以让你对后台软件开发有了一个大概的认知。或者也可以做一些轮子项目,比如学习网络编程的时候深入各种模式,什么阻塞同步、阻塞异步、非阻塞异步之类的,可以学习陈硕大佬的muduo网络库。webserver就是游双大佬那本高性能服务器里的东西,只不过作为项目来说太儿戏了,学习熟悉api还可以。(项目大伙自己找吧,就不推荐了,要不说我是卖课的了)5. 扩展阶段:经历以上四个阶段,你手上有2 - 3个项目,你就已经达到找工作的要求了。如果你还有时间就可以补充相关行业知识了,比如你可以学习一下Qt、音视频、嵌入式之类的,了解一下你感兴趣行业的知识。最后再多说一句,后台开发是通用路线,公司大多不会要求你很多特定领域知识,基础一定是最重要的,八股很重要,大家要深入理解,不是去背,弄懂它,如果又想进的公司需要特定知识,你就按照扩展阶段去补充就可以了。当然这只是我的经验,如果你一开始就打定主意要干什么行业,你可以参考b站程序员老秦给出的学习路线去学习。各位加油!
记录学习路径:佬我现在27届大二在读大一玩了一年目前才刚刚学新特性好绝望一天就学2 3小时感觉自己效率低又爱玩好焦虑
点赞 评论 收藏
分享
2 11 评论
分享
牛客网
牛客企业服务