奇安信面经 服务端应用开发(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
请问您最终去了奇安信吗
点赞 回复 分享
发布于 2021-08-26 12:30
问的的确很基础😂,恭喜
点赞 回复 分享
发布于 2020-06-04 00:38
老哥,显示当天面试已结束是表示凉了吗
点赞 回复 分享
发布于 2020-04-15 16:33
楼主投的是python嘛?感觉问的都是py
点赞 回复 分享
发布于 2020-04-04 01:20
同奇安信 笔试28之后一直没消息了
点赞 回复 分享
发布于 2020-04-02 17:47
想听楼主的湖南口音
点赞 回复 分享
发布于 2020-04-02 17:35
老哥你产品搞到开发来了
点赞 回复 分享
发布于 2020-04-02 15:08
tql
点赞 回复 分享
发布于 2020-04-02 14:25

相关推荐

06-18 21:31
已编辑
南京航空航天大学 Java
总结:一共半小时,比想象中要长,问了比较多场景题, 面试风格和技术面完全不同。提问环节1.你能否先做一个自我介绍,开始今天的面试?2.你的求职意向中,是否考虑除了网络安全方向外,还会考虑java后端、测试开发等其他岗位?3.问:你是否已经确定要去做测试开发方向的工作,还是同步考虑后端岗位?答:我认为都可以考虑,现在还没有限制得很死,还在探索阶段。4.问:你在找实习时,除了测开岗位外,是否也投递了一些后端岗位?答:其实都有在投递,不会限制得很死,前端后端都会考虑。5.问:你目前是否拿到较为满意的offer,为什么可能会优先考虑我们公司?答:确还有一些offer在流程中,我对贵公司的价值观比较认同,所以可能会优先考虑。6.问:能否分享一个你在硕士期间做的相对满意、有成就感或具有挑战性的项目,包括项目背景、目的、你在其中的工作内容以及满意之处?7.问:在项目推进过程中,有哪些比较满意的点,如果重新来过,有哪些层面可以做得更好?8.问:你是否有实习经历,在之前的实习岗位是做什么的?9.问:你在实习期间实习了多久?10.问:在企业实习(如实习神经学、大数据和网络安全等岗位)与学校跟随导师做实验室项目,两者之间有什么核心差异?答:核心差异在于研究生阶段的研究工作更多是探索性的工作,在前人基础上挖掘新的领域;而在企业实习则是针对已有的岗位和明确的工作职责,主要任务是掌握当前的工作岗位,不需要过多的探索性工作。11.问:在之前实习的过程中,遇到的最大挑战是什么?答:最大的挑战是适应体制内工作,学会半文半事,与不同人打交道,包括参加会议并做会议纪要等文书工作。12.问:在实习期间,你在做人和做事能力上有哪些具体的提升?13.问:你是否有设想过如果来到互联网公司实习后可能会遇到哪些困难,并且是否决心从事互联网行业?答:认为人生是探索,虽然了解到互联网行业的差异,但尚未深入了解,打算通过实习期间的探索,尝试进入互联网行业作为未来可能的第一份工作。14.问:如果我给你这样一个暑期实习offer,你过来之后,在上手和工作推进过程中,你觉得会遇到哪些层面的挑战或困难?答:我觉得我的岗位是测试开发,主要挑战包括编写和执行测试文档,以及进行自动化测试和基础平台的研发。这些工作都是我之前没有接触过的,需要在短期内熟悉公司的流程和技术要求,例如学习自动化测试所需的Python语言或基础平台开发能力,以及熟悉测试文档的结构、编写到执行的全流程和缺陷生命周期管理。15.问:做好这个暑期实习岗位的核心能力层面有哪些?答:核心能力层面首先是编码能力,因为进行技术平台开发时编码是必需的。其次,沟通能力也很重要,需要与产品经理、开发人员进行有效沟通。所以提升编码能力和沟通能力都是必要的。16.问:你觉得我们公司或实习岗位对你来说比较好的地方主要在哪些层面?答:我觉得主要优势在于公司的定位,作为阿里系公司,拥有足够大的平台,这对于个人能力是一种很好的背书。此外,工作地点在杭州或上海,这两个地方我都喜欢,并且对测试开发相关工作内容较为熟悉,有助于能力增长。17.问:你能否客观分析一下,觉得自己与其他申请者相比,在哪些方面具有优势和劣势?18.问:你是否可以接受上海和杭州这两个地点作为实习地点?19.问:实习时间上,你最快什么时候能开始,最晚可以实习到什么时候?反问环节1.问:公司主业是否偏向某一地?答:公司没有所谓的主业或总部概念,外卖业务上上海和杭州是双核心定位,而从阿里整体来看,杭州是总部所在地。2.问:上海这边的团队主要负责哪一块业务?答:上海团队主要负责首页APP交易到购物车、下单页的链路测试,同时负责创新型业务如拼团、秒杀、卡券类业务闭环开发,以及营销工具玩法(超级吃货卡、红包、吃货豆等)的设计与测试。3.问:是否可以了解一下工作节奏?答:实习期间,公司对实习生的工作量期望并不高,更关注实习生主动学习能力和对业务的理解深度。正常情况下,正式员工晚上一般在8点至9点半之间下班,但若项目上线节奏紧张时,可能会有所加班。
查看19道真题和解析
点赞 评论 收藏
分享
评论
23
147
分享

创作者周榜

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