📜  高盛实习面试经历(1)

📅  最后修改于: 2023-12-03 15:42:32.856000             🧑  作者: Mango

高盛实习面试经历

我是一名程序员,最近参加了高盛的实习面试,以下是我的面试经历。

一面

在一面中,主要聚焦于基础的编程知识和计算机科学理论,包括以下内容:

  • 算法和数据结构
  • 操作系统和进程通信
  • 网络编程
  • 设计模式
  • 前端技术

我被问到了如下问题:

算法和数据结构
  • 什么是哈希表?如何实现?
  • 什么是冒泡排序?时间复杂度是多少?
  • 如何在常数时间 O(1) 内找到一个数组中的最大值和最小值?
操作系统和进程通信
  • 谈谈你对操作系统的理解。
  • 进程和线程有什么区别?
  • 进程通信的方式有哪些?各自的优缺点是什么?
网络编程
  • TCP 和 UDP 有什么区别?
  • 谈谈 HTTPS 的工作原理。
  • HTTP2 相比 HTTP1.1 有什么改进?
设计模式
  • 谈谈你对设计模式的理解。
  • 什么是单例模式?如何实现单例?
  • 什么是工厂模式?如何实现工厂模式?
前端技术
  • 什么是 React?如何使用?
  • 什么是 MVVM 模式?
  • 什么是跨域?如何解决跨域问题?
二面

在二面中,主要是技术实践和项目经验。我被要求介绍我的项目和我在其中扮演的角色,以及代码优化和解决问题的能力。

项目介绍
  • 我介绍了一个我曾经参与开发的在线商城网站,其中我主要负责了前端部分的开发工作。我详细介绍了该网站的系统架构和技术栈,并分享了我在其中遇到的一些挑战和解决方法。
代码优化和问题解决能力
  • 我被要求解释一个我曾经写过的复杂算法的实现。在得知其时间复杂度存在问题后,我对代码进行了分析和优化,使其时间复杂度从 O(N^2) 优化至 O(N)。
  • 我被要求解释一个遇到的技术问题和它的解决方案。我分享了一个在前端开发中遇到的跨域问题,以及我如何通过设置 CORS 避免了这个问题。
总结

总的来说,高盛的实习面试非常注重基础知识和项目经验。在面试过程中,我不仅回顾了自己曾经学过的知识,更重要的是梳理了自己的思考方式和解决问题的能力。