[已跪]阿里内推一二面

一面

1. 自我介绍

2. 说说你觉得不错的一个项目(我讲了网络库,架构参考了 Reactor模式)

3. 因为上一个问题,引出的问题:介绍下Reactor模式和Proactor模式,说下两者的区别(我说了IO是否由用户处理,面试官不满意,事后想了想,大概他想问的是异步和同步吧),说下知名网络库分别用这两种模式的哪一种(血崩,就说了asio和ACE,其他的没了解过)。
4. 场景题“给你两个文件a和b,大小大概100M,两个文件每行一个整数,要求找到两个文件中相同的整数,存到文件c里,问我怎样尽快的完成这项工作“并问了一些子问题:1)你准备用什么语言(这种工作肯定要用脚本语言写。。但shell和python都好久没用过了,语法完全忘了,我就说用最熟悉的语言。。C++) 2)你准备用什么数据结构?(本着面试要提出多个方法的思路,我先后说用排序、堆、hash表)3)具体到stl你准备用什么容器?(我说unordered_map。。面试官不太满意,应该是unordered_set更好,一时紧张,没想起来)
5. 在线编程:实现一个工具类,提供解决问题4的函数。要求注意编码规范、工程要求等问题。(还算简单,就是因为紧张,犯了很多愚蠢的错误、比如函数名一开始我起名为do。。)

总结:
1. 表达能力欠缺,不能简明扼要得回答问题,往往需要通过举例或者具体带入一个场景来描述,有些啰嗦。
2. 一开始引导的方向不对,将面试引入了自己不熟悉的领域。我没有深入学习过Reactor模式和Proactor模式,仅仅是很久之前看过几篇博客,了解其过程,对于其背后的意义和应用都没有关注。
3. 技术视野不足。

二面(总监面
1. 面试官看了我的github,让我介绍下第一个项目
2. 我的项目是网络编程相关的,就问我,socket可以设置哪些超时的参数。(我有点懵,没设过,我说了TIME_WAIT的时间、重传的超时、KEEP_LIVE的超时)
3. 问我的项目有没有处理send的超时。(函数错误的时候,都是直接返回false的,只好说没有处理)
4. 如何保证代码bug比较少。(我说了要分模块开发,写日志等。面试官不满意,说我有没有进行过单元测试、压力测试等等,答: 没有)
5. 你算法能力如何。(答,一般)
6. 一道题:给定一个整数数组,里面有两个数相同,其他数都是不同的,如何尽快找到这两个数(答,用hash表,O(N),有更好的方法么?)
7. 你有拿到其他公司的offer么(我说秋招刚开始。没面其他公司呢。。实习时阿里和TX挂了,就没面其他公司)

总结:。。。不知道该说啥。觉得自己太平凡,没有亮点。
#阿里巴巴##C++工程师#
全部评论
找两个相同的数用异或
点赞 回复 分享
发布于 2017-08-14 21:24
第六题,可以用分治做到logn
点赞 回复 分享
发布于 2017-08-10 12:18
可以先用排序算法先排序在前后比较是否相等吗
点赞 回复 分享
发布于 2017-08-10 08:59
问这么难??
点赞 回复 分享
发布于 2017-08-09 23:14
第六题算法有什么思路吗...时间O(N) 空间O(1)的  
点赞 回复 分享
发布于 2017-08-09 23:03
第六道算法题,面试官有说数据的值的分布范围吗?
点赞 回复 分享
发布于 2017-08-09 22:22
方便问下,你是从内推到一面大概过了多久?还有就是还可以继续走校招流程吗?谢谢
点赞 回复 分享
发布于 2017-08-09 22:14
请问楼主是电话面试,还是现场面试啊
点赞 回复 分享
发布于 2017-08-09 21:18
我擦,网络库咋问这些
点赞 回复 分享
发布于 2017-08-09 21:13
可以分享一下github地址吗?想看一下网络的项目,私信也可以,谢谢了
点赞 回复 分享
发布于 2017-08-09 20:42
你项目是自己写了一个网络库? 那reactor和preactor应该很清楚吧 还有send是根据套接字阻塞非阻塞来决定自己是不是立即返回啊,如果是阻塞IO,send怎么设置超时啊,感觉send的系统调用没有这个选项啊,这个我不太明白啊
点赞 回复 分享
发布于 2017-08-09 20:01
那个算法题,难道有logn的方法?不可能吧?除非是排序了的…同或可以吗?
点赞 回复 分享
发布于 2017-08-09 19:18
回绝了?二面后多久回绝的?
点赞 回复 分享
发布于 2017-08-09 18:58

相关推荐

后端开发实习生 - 技术一面(oc已拒)面试问题速览1. 自我介绍一下。2. 大学课程和专业背景是什么?3. 为什么在学习了C++之后,选择Java和Python作为主攻方向?4. 你的学习方法是怎样的?如何保证学习的系统性?5. 具体谈谈你是如何学习Java的?6. 详细介绍一下你的AI Agent项目,它是如何实现的?7. 你使用的Spring AI框架和常见的开源基座有什么区别?8. 你的知识库是如何构建的?为什么选择自定义数据处理流程?9. 如果需要开发一个能扮演特定游戏角色的定制化Agent,你会如何设计?10. 在这个定制化Agent项目中,数据的重要性如何?如何获取和处理这些数据?11. Docker和K8s有什么区别?12. 微服务架构和单体架构的区别与优势是什么?13. 如何设计一个高并发系统的架构?14. 常见的负载均衡算法有哪些?15. Java中遇到死锁该如何分析和解决?16. 如何处理前端的跨域问题?17. MySQL查询性能如何优化?18. 你对前端技术了解多少?我的回答策略与核心亮点针对问题:开场自我介绍,展示个人技术全貌回答策略/框架:我采用了“技术栈 → 项目经验 → 学习理念 → 全栈能力”的结构化叙述方式,旨在快速建立一个技术扎实、有实践、爱钻研的立体形象。核心案例与亮点:项目经验具体化:通过“库存管理系统”引出性能优化能力(ES提升检索、RocketMQ削峰、Redis缓存热点)。突出前沿技术:通过“智慧农业项目”展示AI应用开发能力(Spring AI, RAG问答引擎),并用“大创国家级”奖项来量化成果。展现学习深度:主动提及学习MIT课程并实现Raft算法,强调自己对底层原理的追求和强大的自驱力。针对问题:考察学习能力、技术视野和决策逻辑回答策略/框架:我提出了一个“实践驱动”的学习模型:“先概览框架 → 快速上手实战 → 深入底层查漏补缺”。对于技术选型问题,我从“场景适用性”(如C++底层 vs. Java业务)和“技术趋势”(如Python for AI)两个维度进行阐述,展示了我的决策逻辑。核心案例与亮点:这个回答的亮点不在于某个具体案例,而在于其方法论本身。它向面试官清晰地传递了我的核心优势:拥有高效、系统化的自学能力,能够快速掌握并应用新技术,同时具备清晰的技术判断力。针对问题:深入考察AI应用项目的技术实现细节和原理理解回答策略/框架:我采用了“What-How-Why”的解释框架。What:这是一个基于Spring AI的RAG Agent。How:通过添加外部知识库、使用Redis持久化对话记忆等方式实现。Why:着重解释了为何自定义数据处理流程(PDF转Markdown、语义分块、向量化),而不是直接使用框架自带功能。核心案例与亮点:本环节最大的亮点在于对“PDF按页切分会破坏语义完整性,从而影响检索精度”这一细节的深入分析。这不仅展示了我对RAG原理的深刻理解,更体现了我在工程实践中追求细节、主动优化、解决问题的能力。此外,在回答定制化Agent问题时,我提出了从提示工程 → RAG → 模型微调 (LoRA) 的分层解决方案,展现了全面的技术视野和对成本效益的考量。针对问题:考察后端核心架构与概念(分布式、高并发、数据库等)回答策略/框架:对于架构设计类问题(如高并发),我采用“多维度拆解法”,从多级缓存、熔断机制、高可用架构(主从/集群)等多个角度系统性地展开。对于概念类问题(如死锁),我采用“原理+解决方案”的模式,先清晰阐述其形成的四个必要条件,再讲解如何通过破坏其中条件来解决。核心案例与亮点:回答的系统性和深度是关键。例如,在谈论负载均衡时,不仅能罗列出轮询、哈希等算法,还能进一步分析“最少连接/空闲实例算法”相比于简单轮询的优势,这体现了对技术背后原理的深入思考,而非简单背诵。针对问题:考察技术广度和知识边界(前端/容器)回答策略/框架:对于熟悉的部分(前端跨域),同样采用“原理+解决方案”模式,并提供了前端(反向代理)和后端(CORS配置)两种维度的解法,展示了全栈视野。对于不熟悉的部分(K8s),采取“诚实承认+阐述已知基础”的策略,先表明自己主要使用Docker Compose,然后从理论层面尽力对比二者。核心案例与亮点:对跨域问题的双端解决方案是加分项。同时,坦诚自己对K8s实践经验不足,并尝试进行理论分析,展现了诚实和积极思考的态度。这也提醒大家,面试中遇到知识盲区,诚实是最好的策略,如果能补充一些理论理解会更好。
查看18道真题和解析
点赞 评论 收藏
分享
08-20 10:59
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
52
分享

创作者周榜

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