阿里 2021 秋招面试总结
岗位:阿里云网络产品研发实习生
岗位要求:
- 深耕C、Python、Go等编程语言 months/year 学习与实践,具备Linux系统运维基础
- 学术表现优异,期间发表高水平论文,参与重量级研究项目,获得各类奖励
- 专业级的高速数据链路开发经验,扎实的网络设备管理与交换技术基础
- 数据结构与算法深厚功底,熟练掌握多种算法设计与实现技巧
- 丰富的移动通信网络技术开发经验,具备深入理解移动端架构体系的能力
- 熟悉嵌入式系统设计与实现,拥有丰富的实际项目经验
大公司面试注重基础,小公司面试注重项目和实战。
面试过程
面试通常从一个简短的自我介绍开始(几秒钟),接着询问候选人在某个项目中负责的步骤。技术面专家可能会询问候选人在简历中未曾深入理解的专业知识领域,并指导如何解答那些难以解答的问题。随后会进一步探讨候选人的基础知识。
1、Linux 系统方面
1)进程和线程的区别(不能太书面化)(需要从内存角度,或者其他角度描述)
需要用一种自己完全理解的方式来解答这个问题。假如你的回答将"xxx"视为基础单位,则这样的做法是不可取的。在技术面试中,考官可能会要求你阐述对'进程'与'线程'的理解。那么,以下两个问题值得探讨:第一,线粒体与线粒体之间是否存在独立性?第二,它们之间的内存空间是否存在共享?最后一个问题则是关于各进程中内存空间的关系:各进程之间的内存空间是否存在共享?
2)线程之间是如何调度的
例如有两个线程:在执行过程中通常是先启动的是哪一个?也有可能是在执行一定次数后触发另一个如何实现调度?
3)非实时操作系统和实时操作系统的区别和选择,以及应用场景。
2、C语言方面
1)static 的作用,函数中变量使用 static 的作用,它的生命周期会如何。
2)extern 的作用
3)c 语言中有哪些宏定义?
4)#define 和 #typedef 这两个的区别
5)代码的四个编译阶段主要包含以下内容:预处理阶段完成的主要工作内容是什么?这四个编译阶段各自会产生哪些类型的文件?
3、数据结构
1)何为数据结构?
考察了队列、栈、链表的基本概念及其特点,并探讨了这些数据结构在项目实施中的实际应用情况。应该采用栈结构的情况包括... 而采用队列结构则适用于... 同时还需要考虑使用链表的特定场景
4、网络的概念
总结:
在简历中列出的项目, 必须能够胜任; 无法胜任的部分无需提及; 对于这些项目的细节必须完全掌握; 即这些内容都是真实可靠的.
大厂面试更重视基础。由于大公司通常注重员工的职业技能培养,并且认为只要具备扎实的基础就足以应对后续工作内容。因此掌握基础知识显得尤为重要。整个面试通常持续一个半小时至两小时左右,在这些时间内主要考察_linux操作系统熟悉程度、编程能力以及数据结构和计算机网络基础知识等核心内容。
大厂面试通常会考察你对常见概念的独特见解。因为课本上的术语大家都有所了解,但真正深入理解的人往往各有不同.例如,富士康的一位面试官曾问及:你认为OSI七层网络模型与生活中的什么机制最为相似?你的回答可能是物流配送过程.
