Sap软件开发职位面试全过程

来源:互联网 发布:游戏编程书籍推荐 编辑:程序博客网 时间:2024/06/05 07:06

总共经历了电话面试、笔试、一面和二面。由于是测试开发转开发,虽败犹荣,整个过程让我了解了测试开发转开发是多么地不容易,也了解了自己在开发方向的很多不足之处。平时钻研的深度太浅,很多东西都只知道表层,当被细化问到时,只有傻眼的份。下面记录一下整个面试过程,供像我一样想踏入开发领域的学子们学习。


电话面试:

1、自我介绍
2、指针与引用的区别
3、类的内存存储结构,内存对齐 http://www.cnblogs.com/jerry19880126/p/3616999.html
4、堆与栈的区别,线程中的栈有大小限制吗?超过了会怎样?
5、设计模式的好处?
6、有了哪些语言,有脚本经历吗?
7、你的职业规划
8、类的三大特征,什么是封装,封装有什么好处
9、爬楼问题
10、随便用英语聊聊

11、有什么想问我的吗?


笔试:

笔试总共有11道题,1~8题中至少需要做两道,时间总共为1个小时,试卷为全英文。试卷前1~8题中有c++、c#、java、javascript等,最好选择自己熟悉的语言题解答,否则会被问得很惨。

由于我对c++比较熟悉,只要做了几道c++的题目。

1、智能指针的作用?请用c++实现一个简单的智能指针。

2、给出一段代码,问你有哪些改进的地方,需要如何重构。

3、一道C#题,主要是考察虚函数表,

public class Base
    {
        virtual public void func1()
        {
            Console.WriteLine("A");
        }


        virtual public void func2()
        {
            Console.WriteLine("A");
        }


        virtual public void func3()
        {
            Console.WriteLine("A");
        }
    }


    public class Derived : Base
    {
        public void func1()
        {
            Console.WriteLine("B");
        }


        public override void func2()
        {
            Console.WriteLine("B");
        }


        public new void func3()
        {
            Console.WriteLine("B");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Base p = new Derived();
            p.func1();
            p.func2();
            p.func3();
            Console.Read();
        }
    }

问输出是什么?

answer:

A

B

A


9、一道sql题

10、一道算法题,说实话,看了很久都没有看懂题目,表示英文太差了。

11、逻辑题:今年参加高考的人数有7400万,请问这个数字合理吗?为什么?

说实话,我当时就不明白为啥考这道题,后来问了同学,才知道这是一道探索性的问题,面试官主要考察你分析和解决问题的能力。我同学是这样给出答案的:首先需要查一下近五年的高考人数,这个适龄高考青年的人口数,然后是学校招生的人数,求出一个录取比列,跟近5年的比较来考察这个数是否合理。


一面:

一面主要是技术面试,主要针对笔试题和简历。

1、自我介绍

2、智能指针的实现,由于没有写全,面试官就问了类中除了构造函数,析构函数,拷贝构造函数,还需要实现哪些函数。意在提醒我智能指针类还没有写全,还需要有操作符函数的实现。

3、针对笔试题3,问得很深,要我写出类的内存分布图,虚函数表的结构图以及override与overload的区别。

4、tcp的三次握手过程

5、由于我大部分都是写的工具,面试官就问写过最多的代码量有多少?当时就支支吾吾的。然后还接着问如果让你现在转开发,你觉得自己的弱势在哪里?我还傻傻地回答由于没有写过大项目,可能代码上会不太规划,汗,这不是自找死路嘛。说完真想抽自己一巴掌啊。

6、问了组内一共有多少个人,有多少个项目,项目间的人是如何合作的?这个主要考察团队合作。

7、为什么想转开发?为什么一开始不找开发的职位?

8、用英语随便说说,说说你的项目。


二面:

由于一面面试下来,自我感觉很差,二面来的面试官明显只是敷衍,相对于一面面试官一个小时的面试过程,二面的时间算是非常迅速啊,全过程仅仅十分钟左右。

1、指针和引用的区别

2、团队合作

剩下的就记不得了。。。


最后总结一下失败的几个致命点:

1、首先简历没有写好,找开发岗位,简历上还是写了很多测试相关的内容,没有突出是工具开发。

2、技术上不够深入,问及一下类的内存分布都不能完整说出来。

3、准备上不够充分,完全没有面试的技巧,整个面试过程很被动,简历上没有出彩的东西,技术上也不够合格,注定是一次失败的面试。


0 0
原创粉丝点击