奇安信面经 服务端应用开发(20届校招) 干货满满~

不得不说一下奇安信的面试官是我面过最有素质的面试官之一了,
不会的地方不会纠结快速过下一个,在你会的地方会很认真的倾听, 基本就可以发挥自己的全部实力
(补充ps的是我没回答出来, 后面搜到的)
时间线: 一面:3-25 ;  二面:3-27    hr面:3-28   ;  收到结果: 4-1 ;

一面: 比较偏向基础, 计算机网络, 操作系统和Python的语法 还有两个比较简单的算法题
首先自我介绍, 然后提问:
1.TCP与UDP的区别:
1)TCP面向连接, UDP无连接 所以TCP可靠UDP不可靠
2)TCP支持点对点, UDP支持一对一,多对多
3)TCP是面向字节流的,UDP是面向报文的

2.为什么TCP可靠:?
这里我以为是他要我复述三次链接的过程, 所以提问了一下, 后面想了一下是为什么可靠? 所以回答就是回答TCP的优点和怎么保证传输的数据没问题,这里再次感谢面试小哥
1)对数据包有编号, 收到后可以排序   2)接收方会丢掉收到的重复数据  3)超时重发机制  4)我还加上了流量控制(窗口滑动协议)和传输控制(慢启动, 拥塞避免, 快重传, 快恢复)的原理

3.HTTP和HTTPS的区别?
这个我信息安全专业的,然后小哥就问了一下, 然鹅我大三就跑出去实习了专业课咳咳...没咋听过, 就知道一点点
1)HTTP更加安全  2)需要证书, 需要向CA购买  3)由于加密解密, HTTPS开销更大
补充ps: 4)HTTP用80端口, HTTPS用443端口   5)HTTP是明文传输, HTTPS用的是SSL协议

4.GET和POST的区别?
1)GET一般用于获取数据, POST一般用于发送数据
2)POST更加安全, 因为GET请求会在URL之后
3)我这里和小哥说了一下我自己的项目和我见到过的地方, 比如Django中request对post和get的使用等等(这里因人而异哈)

5.Session和cookie的区别?
1 )都是保存状态的, 一般用于登录
2)Session保存在服务器端, cookie保存在客户端, 并且cookie会随请求一起发送

6.计算机网络协议有几层, 各自有什么协议:
我回答的是大学里面学的五层, 从上到下:
应用层: HTTP, HTTPS, POP3, SMTP, SSH
传输层: TCP, UDP
网络层: IP, RIP
数据链路层: PS后面百度:  点对点协议, 以太网协议, 帧中断, 异步传输, 高级数据链路协议
物理层: 这里我真不知道, 回答的USB, TYPE-C(自己联想的结构还真是哈),   ps这里是真不懂,但是个人推荐大家认真看几个,因为这就是可以体现区别的地方: IEEE 1394 interface, DSL

7.操作系统线程与进程的区别(特别重要, 特别重要, 特别重要, 重要的事情说四边!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
因为这个问题几乎所有的公司都会问, 好了, 既然他们会问, 那么体现区别的地方来了, 我相信大部分人都只是百度了一下, 就回答, 现在我在这里分享一下我的回答, 超级干货!
1.基础: 进程是系统资源的最小单位, 线程是CPU的最小分配单位, 因此进程切换的代价比线程的要大
2.这里是我自己对这个问题除了人人都知道的基础的之外的的回答:
但是Python在这个地方一直争执不休, 所以我也说一点我自己用PY在这上面的看法和研究
1)由于Cpython解释器本身就不是线程安全的,因此有全局解释器锁(GIL),一次只允许使用一个线程执行Python字节码。(Python的线程安全问题大家自己去看)
2)在使用情况, Python提供了Thread和Threading模块, 其中Threading是高级模块, 用的更多(这里我讲了挺久, 也推荐大家去看看这方面的Python文档)
3)但是Python其实是可以绕过GIL锁的,
原理: 标准库中所有执行阻塞性I/O操作的函数,在等待操作系统返回结果时都会释放GIL,这意味着在python语言这个层次上可以使用多线程
实际使用: concurrent.futures模块
concurrent.futures模块实现的是真正的并行运算,因为它使用ProcessPoolExecutor类把工作分配给多个Python进程处理。因此,如果需要做CPU密集型处理,使用这个模块能绕开GIL,利用所有可用的CPU核心
因为ProcessPoolExecutor喝ThreadPoolExecutor类都实现了通用的Executor接口,因此使用concurrent.futures模块能特别轻松的把基于线程的方案转成基于进程的方案。
(ps: 这些是我在流程的Python中看到的, 这本也强烈建议大家去看!)

8.怎么样处理死锁?
首先回答他死锁发生的条件和原因, 然后针对它来解决
原因: 1) 互斥  2)占有并等待 3)非抢占 4)循环等待
解决: 1)允许某些资源同时被多个进程访问。  2)预分配  3)允许进程强行抢占被其它进程占有的资源  4)对资源设置优先级,只有占有了低优先级资源才可以申请高优先级资源
ps:这里我回答歪了有点, 因为处理方法有很多, 我回答的只是死锁预防....很尴尬
1)死锁预防  2)死锁避免  3)死锁解除

9. 进程共享方式?
1)信号 2)管道 3)套接字 4)共享内存

10.Python可变类型不可变类型?
可变类型: 列表和字典
不可变类型: 字符, 数字, 元组, 集合

11. 深浅拷贝?
这个我都不想说了, 但是我建议大家研究深入一点, 拉高印象分
我回答的是浅拷贝复制单纯的数据, 深拷贝复制内存的地址, 类似与指针

12.小明每次可以上1-2个台阶, 问假如有n个台阶, 有几种上法?
老斐波拉契亚数列了
F(n) = F(n-1) + F(n-2)

13.问了一个脑筋急转弯, 这里我就不分享了, 因为没有固定答案, 然后就是面试结束你还有想问的吗?
这里就不做解释了, 大家根据自己的情况去问, 但是别忘记这是技术面, 工资待遇什么的....hr面再问



二面: 主要是问项目和人对自己项目的思考
1.可以自我介绍吗, 然后可以详细聊一聊你的项目吗
项目我是这样子回答的:
1.项目背景: 为什么要做, 怎么做的, 做了多久, 有啥收益
2.技术: 架构怎么设置, 我自己主要做了哪部分
3.遗憾: 自己还有哪些想法, 哪些地方没做好
这个根据自己的侧重来, 我个人以为实习的公司技术并不要求很高, 主要是对业务理解, 所以我在背景和自己的想法上回答的多, 建议技术好的同学好好回答自己的技术哈

2.了解linux吗, 怎么切换用户和怎么远程登陆
咳咳, 我这里真不记得, 就当时19年准备暑期实习的时候学过网课, 结果那边没用这个, 忘了个精光很尴尬
ps:百度:1.切换用户 sudo su(好简单的我真忘了55555),   2)SSH, 这个我回答出来了hhh

3.了解Django吗, 怎么建立Model
一般是开启app, 在各自的app下面设置model, 定义一个类, 继承model.models类, 类的属性对应表的属性, 公司情况不同, 具体操作也不同, 比如我上家公司修改数据频繁就没有使用ORM,
用的SQL原生语句, 然后如果有一些公司对表结构很严格, 可以先建表在设置model(个人见解, 不是绝对准确哈)

4.了解Python的GIL锁吗, 描述一下?
在前面线程那里回答了一次, 只不过这次更加详细更加具体, 也说了自己实际的应用但是很尬尴, 我就用过开线程在任务完成的时候发送邮件....

5.你有啥想问的吗?
一般二面的是leader, 所以我问的是他们对自己产品的规划和之后的工作, 说实话, 好热血沸腾, 我也很想体验大家全公司又有人一起努力, 做出一个中国第一的项目(具体的保密哈)
然后问了我对工作的看法: 我说我刚刚毕业, 不是很在意工资和公司, 但是我很在意我之后参与做的东西, 我觉得计算机就是第三次***, 要么颠覆传统行业解放生产力, 要么创造一些有意义的东西, 这也是我选公司的最重要的指标

6.然后结束这次面试把~
我: 好的, 谢谢面试官~


三面: hr面 ,考察说话逻辑和三观
1.简单介绍一下自己和项目经历
这里大家要注意一个点, HR相对来说肯定是没那么懂技术的, 所以用简单的语言解释自己的项目
比如说我自己, 就是用的具体一个业务简化然后和HR聊的
ps: 由于湖南口音, 说话比较有趣, 面试官笑了很久.....

2.聊一聊自己的职业规划
这里我说的是自己的学习规划, 时间是 1年 -> 3年 -> 5年
这里自己开了其他的博客, 有兴趣的小伙伴可以去看看

3.聊聊自己最想要的公司氛围和同事:
公司范围: 大家都只想着把产品做好, 把蛋糕做大, 技术驱动
同事: 工作理想, 生活感性

4.你是怎么和团队协作的, 或者你觉得最重要的是什么?
彼此的认同感和信任, 咳咳, 以为本人喜欢动漫, 所以回答的有些中二, 太羞耻了就不说了

5.你有什么想问的吗?
我问的是小姐姐对我评价怎么样hhhhh


好了,这就是面试的全过程, 自己的回答和比较完整的回答也都写出来了
最后最重要的是!!!!
大家一定要准备一个必杀技, 就是自己深入研究的地方, 以为计算机的知识太多了, 有不知道的很正常, 但是知道的要深入, 这也是体现自己与众不同的地方!!!!!!!!

如果管理员看到的话可以给个精吗~~

#奇安信##校招##应用开发工程师##面经#
全部评论
啊,看来我准备一个月还是有用的,现在起码知道这些问题的答案了。一个月前简直白给
1 回复 分享
发布于 2020-04-02 21:49
tql
点赞 回复 分享
发布于 2020-04-02 14:25
老哥你产品搞到开发来了
点赞 回复 分享
发布于 2020-04-02 15:08
想听楼主的湖南口音
点赞 回复 分享
发布于 2020-04-02 17:35
同奇安信 笔试28之后一直没消息了
点赞 回复 分享
发布于 2020-04-02 17:47
楼主投的是python嘛?感觉问的都是py
点赞 回复 分享
发布于 2020-04-04 01:20
老哥,显示当天面试已结束是表示凉了吗
点赞 回复 分享
发布于 2020-04-15 16:33
问的的确很基础😂,恭喜
点赞 回复 分享
发布于 2020-06-04 00:38
请问您最终去了奇安信吗
点赞 回复 分享
发布于 2021-08-26 12:30

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
23 145 评论
分享
牛客网
牛客企业服务