📅  最后修改于: 2023-12-03 15:42:32.856000             🧑  作者: Mango
高盛实习面试经历
我是一名程序员,最近参加了高盛的实习面试,以下是我的面试经历。
一面
在一面中,主要聚焦于基础的编程知识和计算机科学理论,包括以下内容:
- 算法和数据结构
- 操作系统和进程通信
- 网络编程
- 设计模式
- 前端技术
我被问到了如下问题:
算法和数据结构
- 什么是哈希表?如何实现?
- 什么是冒泡排序?时间复杂度是多少?
- 如何在常数时间 O(1) 内找到一个数组中的最大值和最小值?
操作系统和进程通信
- 谈谈你对操作系统的理解。
- 进程和线程有什么区别?
- 进程通信的方式有哪些?各自的优缺点是什么?
网络编程
- TCP 和 UDP 有什么区别?
- 谈谈 HTTPS 的工作原理。
- HTTP2 相比 HTTP1.1 有什么改进?
设计模式
- 谈谈你对设计模式的理解。
- 什么是单例模式?如何实现单例?
- 什么是工厂模式?如何实现工厂模式?
前端技术
- 什么是 React?如何使用?
- 什么是 MVVM 模式?
- 什么是跨域?如何解决跨域问题?
二面
在二面中,主要是技术实践和项目经验。我被要求介绍我的项目和我在其中扮演的角色,以及代码优化和解决问题的能力。
项目介绍
- 我介绍了一个我曾经参与开发的在线商城网站,其中我主要负责了前端部分的开发工作。我详细介绍了该网站的系统架构和技术栈,并分享了我在其中遇到的一些挑战和解决方法。
代码优化和问题解决能力
- 我被要求解释一个我曾经写过的复杂算法的实现。在得知其时间复杂度存在问题后,我对代码进行了分析和优化,使其时间复杂度从 O(N^2) 优化至 O(N)。
- 我被要求解释一个遇到的技术问题和它的解决方案。我分享了一个在前端开发中遇到的跨域问题,以及我如何通过设置 CORS 避免了这个问题。
总结
总的来说,高盛的实习面试非常注重基础知识和项目经验。在面试过程中,我不仅回顾了自己曾经学过的知识,更重要的是梳理了自己的思考方式和解决问题的能力。