📅  最后修改于: 2023-12-03 15:35:13.653000             🧑  作者: Mango
最近笔者参加了 Synopsys 的研发 2 工程师职位面试,以下是我的面试经历及分享。
首先是 HR 面,主要了解自己的个人情况、经验、职业规划,以及对公司的了解程度。然后是技术面试,主要是针对基础知识、项目经验及解决问题的能力。
操作系统
被问到进程、线程的概念,以及它们之间的区别和联系。另外还问到内核态和用户态的概念和区别,以及用户态怎么转移到内核态。
数据结构与算法
被问到数组、链表、二叉树等常见数据结构,还有二分查找、快排等常见算法。
网络通信
被问到 TCP 和 UDP 的区别,以及 HTTP 和 HTTPS 的区别。
编程语言
被问到对于 C++ 中 virtual 关键字的理解,以及多态的实现方式。
面向对象
被问到面向对象的三大特性,以及继承的目的和实现方式。
项目经验
针对项目中遇到过的问题和解决方案进行了讨论,并对其中的技术选择和实现细节进行了深入的剖析。
这次面试让我印象深刻的是 Synopsys 对技术储备的要求很高,需要对基础知识和实际项目经验有深入的理解和掌握。同时,面试官不仅关心面试者的技术水平,更注重面试者的解决问题的能力和思维逻辑。
因此,我认为提高技术水平的同时,也要注重培养自己的逻辑思维和解决问题的能力,通过不断思考和实践,找到最优解决方案。