📜  摩根士丹利面试经历 |校园(虚拟)2020 年 7 月(1)

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

摩根士丹利面试经历 | 校园(虚拟)2020 年 7 月

简介

这是一份摩根士丹利面试的经历分享,适用于想要了解摩根士丹利校园招聘流程的程序员。

职位

本次面试职位为软件工程师。

简历筛选

我先在摩根士丹利的官网上提交了我的简历,几天后收到了面试邀请。在注册虚拟招聘台后,我成功申请了摩根士丹利进行的虚拟在线校园招聘。

面试流程
  1. Self Introduction(自我介绍)
  2. Technical Questions (技术问题)
  3. Behavioral Questions(行为问题)
  4. Q&A
自我介绍

我的自我介绍主要讲述了我过去的学习经历、实习经历以及项目经验,重点突出了我的技术技能、解决问题的能力以及对于未来工作的期望。

技术问题

技术问题主要分为两部分:现场编程以及面向对象编程问题。

现场编程

我被要求在给定的时间内,现场根据C++语言的题目,写出能够运行的代码。这道题目大概是让我实现一个排序算法,不仅需要正确性,还需要考虑时间复杂度和空间复杂度。

代码示例:

#include <iostream>
using namespace std;

void quicksort(int low, int high, int arr[]) {
    int i, j, pivot, temp;
    if (low < high) {
        pivot = low;  //选择枢轴,作为基准
        i = low;
        j = high;
        while (i < j) {
            //从后往前扫描
            while (arr[j] > arr[pivot] && j > low) {
                j--;
            }
            //从前往后扫描
            while (arr[i] <= arr[pivot] && i < high) {
                i++;
            }
            if (i < j) {
                //进行交换
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        temp = arr[j];
        arr[j] = arr[pivot];
        arr[pivot] = temp;

        //递归排序左右两边
        quicksort(low, j - 1, arr);
        quicksort(j + 1, high, arr);
    }
}

int main() {
    int arr[] = { 35, 99, 18, 76, 12 };
    int len = sizeof(arr) / sizeof(int);
    quicksort(0, len - 1, arr);
    for (int i = 0; i < len; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    return 0;
}

面向对象编程问题

针对面向对象编程问题,我的面试官主要问了我三个问题:

  1. 什么是单例模式?
  2. 什么是虚函数?
  3. 什么是多态?

我给出的答案是:

  1. 单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。
  2. 虚函数是指在父类中定义的可以被子类重写的函数。
  3. 多态是指一种对象展现出多种形态。
行为问题

行为问题主要是考察你的工作经验、团队合作能力以及自我管理能力等方面,这些问题不一定和技术相关。

我的面试官主要问了我两个问题:

  1. 请讲述一个你在工作中遇到的最具挑战性的问题,以及你是如何解决的?
  2. 你在你过去的工作中遇到一个难题,你是如何解决的?

这两个问题让我有机会突出我的解决问题能力以及利用自身资源解决问题的能力。我的回答主要围绕这两点展开。

Q&A

最后面试官给了我一些机会,让我问关于职位的问题。

我的问题主要围绕工作的性质和工作的挑战展开。我觉得如果我能够将我的问题与我过去经历的相关经验相关联,会让我的回答更加深刻。

总结

本次面试流程包括自我介绍、技术问题、行为问题和问答环节。面试官主要考察了我的现场编程能力、面向对象编程的基本概念以及我解决问题的能力、团队合作能力和自我管理能力。

总的来说,本次面试经历是一次非常难忘而有意义的挑战,我从中学到了很多关于自己的东西,并且加深了对于对摩根士丹利公司的理解。