EE转CS:2020实习之路(华为、阿里、招行等)

目录

本人背景:

准备:

投递简历的教训:

腾讯微保

招商银行IT开发

华为软开

笔试

技术面试

主管面试

阿里C++开发

结语


本人背景:

末流211大三菜鸡,EE出身,一年前才开始准备转CS,之前一直在搞硬件,比科班出身的落后不少

好在学校里CS氛围浓厚,很多非CS专业的学长学姐毕业都进了大厂

牛客上很多两个月转行拿BAT的offer的帖子,给人一种大厂很好进的感觉,其实这条路的坎坷只有自己知道

准备:

1月有学长在群里发华为日常实习的消息,我定了一月底的票准备去实习

后来疫情,现在四月底了还在家gg

华为离我学校很近,所以是我的首选目标

计算机网络:https://xduwq.blog.csdn.net/article/details/104531278

操作系统:没有系统学习,牛客上有很多面经,速成的,导致后来面试好多OS问题我都翻车了

算法和数据结构:LeetCode必刷,面试好多题都是原题https://xduwq.blog.csdn.net/article/details/105469815

数据库:《MySQL必知必会》+牛客面经

投递简历的教训:

  1. 尽量找内推,找靠谱的校友内推。否则就算学历好也可能被刷!牛客上认识一个北大本硕的老哥,没有内推简历都挂了好多……所以尽量内推!内推会稳很多!
  2. 简历上的东西要hold得住!我简历项目最后写了一个数模项目,图论相关,大一的时候做的,早忘光了……有次面试被疯狂怼图论,怼到心态爆炸然后凉凉
  3. 简历上要写一些相关的项目,比如投后端写一些前端硬件的项目,面试官听的时候不耐烦尴尬
  4. 早投不要晚投!腾讯提前批引力计划,100个HC,我三月底投的,一打听只剩几个HC了,自然凉,还被锁简历当备胎……

腾讯微保

可能我投的岗位HC很少,笔试全AC现在还没消息……

附笔试题:

1. 最长不重复子串

class Solution {
    public int lengthOfLongestSubstring(String s) {
        int res = 0;
        Set<Character> set = new HashSet<>();
        for(int l = 0, r = 0; r < s.length(); r++) {
            char c = s.charAt(r);
            while(set.contains(c)) {
                set.remove(s.charAt(l++));
            }
            set.add(c);
            res = Math.max(res, r - l + 1);
        }

        return res;
    }
}

2. 约瑟夫环

class Solution {
    public int lastRemaining(int n, int m) {
        int ans = 0;
        // 最后一轮剩下2个人,所以从2开始反推
        for (int i = 2; i <= n; i++) {
            ans = (ans + m) % i;
        }
        return ans;
    }
}

3. 填空题一道二分查找

招商银行IT开发

笔试不简单,大概AC一半不到

面试的时候问读研还是工作,我竟然傻傻地说没想好看情况,然后挂

所以一定要坚定地说工作!

附面试题:

  • 做自我介绍,大概说了一下,然后介绍项目;十分钟打断
  • C++怎样调用JS代码(扯了几种方式,被打断可以了
  • CPU调度的几种方式(我说没学过OS,SOC里中断算不算,面试官说你说说看;然后我开始扯淡,天马行空讲,讲了五分钟还没讲到一半,被打断)
  • 数据库索引的作用,有几种索引
  • 二叉搜索树会不会(我说从树开始说吧),不用(那我从二叉树开始说吧),你从简要点说(一阵瞎比比……说到怎么查找复杂度,和其他几种查找方式比较的时候,又被打断……)
  • 说说DFS和BFS(然后我以刚才树为例,开始发散瞎比比,几分钟后又被打断……)
  • 代码怎么写(这样看具体问题吧),面试官终于笑了(又拿树为例,说了几种遍历),准备再说说图中的DFS BFS,又被打断……
  • 什么语言更熟,进来换语言行不行……如果换算法行不行?
  • 到底想保研还是工作(说没想好看情况,被打断……)

华为软开

笔试

笔试满分600,做了520

1. 大数幂

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (true){
        int n = sc.nextInt();
        int l = sc.nextInt();
        if(n == 0 && l == 0) break;
        long res = 0;
        for (int i = 1; i <= l; i++) {
            res += quickMi(n, i);
        }
        System.out.println(res % 1000000007);
    }
    sc.close();
}
 
private static long quickMi(long aa, long bb){
    long res = 1;
    long a = aa, b = bb;
    a %= 1000000007;
    for (; b != 0; b /=2) {
        if(b % 2 == 1){
            res = (res * a) % 1000000007;
        }
        a = (a * a) % 1000000007;
    }
    return res;
}

2. 二进制贪心

#include <iostream>
#include <string>
using namespace std;
 
typedef long long int ll;
 
int main(){
    int T;
    ll n;
    string s;
    cin>>T;
    for(int i=0;i<T;i++){
        cin>>n>>s;
        for(int j=0;j<n-2;j++){
            if(s[j]=='0'&&s[j+1]=='0'){
                s[j] = '1';
            }else if(s[j]=='0'&&s[j+1]=='1'&&s[j+2]=='0'){
                s[j]='1';
                s[j+1]='0';
                s[j+2]='1';
            }
        }
        if(s[n-2]=='0'&&s[n-1]=='0'){
            s[n-2]='1';
        }
        cout<<s<<endl;
    }
    return 0;
}

3. 回溯DFS数独

#include <iostream>
#include <string>
using namespace std;
 
bool sign = false;
int num[10][10];
bool Check(int n, int key);
int DFS(int n);
 
bool Check(int n, int key)
{
    for (int i = 0; i < 9; i++){
        int j = n / 9;
        if (num[j][i] == key) return false;
    }
    for (int i = 0; i < 9; i++){
        int j = n % 9;
        if (num[i][j] == key) return false;
    }
    int x = n / 9 / 3 * 3;
    int y = n % 9 / 3 * 3;
    for (int i = x; i < x + 3; i++){
        for (int j = y; j < y + 3; j++)
        {
            if (num[i][j] == key) return false;
        }
    }
    return true;
}
  
int DFS(int n){
    if (n > 80){
        sign = true;
        return 0;
    }
    if (num[n/9][n%9] != 0){
        DFS(n+1);
    }else{
        for (int i = 1; i <= 9; i++){
            if (Check(n, i) == true){
                num[n/9][n%9] = i;
                DFS(n+1);
                if (sign == true) return 0;
                num[n/9][n%9] = 0;
            }
        }
    }
}
 
int main(){
     
    string s;
    for(int i=0;i<9;i++){
        cin>>s;
        int j = 0;
        for(int k=0;k<s.size();k++){
            if(s[k]<='9'&&s[k]>='0'){
                num[i][j++] = s[k]-'0';
            }
        }
    }
    DFS(0);
    for(int i=0;i<9;i++){
        cout<<'{';
        for(int j=0;j<8;j++){
            cout<<num[i][j]<<',';
        }
        cout<<num[i][8];
        cout<<'}'<<endl;
    }
    cout<<'{';
    for(int j=0;j<8;j++){
        cout<<num[8][j]<<',';
    }
    cout<<num[8][8];
    cout<<'}';
     
    return 0;
}

技术面试

面试官是学姐……挺温柔的

1. 没做自我介绍,学姐开始看我简历,然后一个个项目开始问

2. 代码复用问题(C函数化,C++面向对象说了一通)面向对象的性质

3. 代码量?

4. 你觉得项目负责人需要做些什么

5. TCP和UDP,可靠性

6. 调试中遇到的问题,复盘一个项目调试的全过程

7. 然后开心的聊天,聊人生

8. 代码题

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int,int> m;//key是值,value是下标
        vector<int> ans;
        for(int i=0;i<nums.size();i++){
            if(m.count(target-nums[i])>0){
                ans.push_back(m[target-nums[i]]);
                ans.push_back(i);
                break;
            }
            m[nums[i]] = i;
        }
        return ans;
    }
};

可能因为我是本科菜鸟,问的都很简单哈哈

主管面试

1. 复盘笔试
2. 大学的经历?(面试官是亲学长,时不时来一句我当时读书的时候还没有这个……)
3. 最受挫折的事情?
4. 对华为公司了解多少?
5. 最喜欢什么语言?你觉得你在班上能力能排多少?对什么技术最感兴趣?保研还是工作?(夺命连环问)
6. 压力大的时候会干啥?
7. 聊人生……
8. 反问环节

阿里C++开发

等后面的面试,笔试做的也很差15%,虽然爆零也可以进面试,但是还是尽量考高一些!

附面试题

  • 昨晚考的咋样?(只有30%AC,菜的一批,佛),你先自我介绍一下
  • 成绩不错,问我有没有上研打算?
  •  开始说项目,一个个复盘
  •  你这项目里用到OpenCV,具体哪些?
  •  TCP和UDP区别
  •  数据库隔离级别
  •  数据库使用过程中遇到了什么困难(老实说当时数据就几百个没遇到特别的困难)
  •  SQLite和MySQL的区别
  •  C++智能指针
  •  new与malloc的区别(说了四五点,小哥笑着说够辣够辣下一个)
  • 虚函数(说的结结巴巴的也没怪我gg)
  •  Linux用过吗?用了些啥
  •  怎样杀死一个进程?(先ps再kill)
  •  C++编译的过程
  •  动态编译和静态编译
  •  多线程会出现什么问题(我说了进程通信巴拉巴拉)
  •  我说的是线程,你用的时候有什么问题?(我说了Qt的signal……),其他也没用过吗
  •  还有呢?(说了进程通信和线程通信,老实交代Qt的信号机制没用OS那一套)
  •  原子操作(回答的不满意)
  •  如果有一百个进程去访问一块资源变量,同时进行++操作,会出现什么结果(说了锁机制)
  •  如果三个进程同时访问一个资源变量,会出现什么情况?(说了一通,没回答到点上,小哥说原子操作用的这呀!我赶紧说对对对……gg)
  • 你搞了这么多机器学习,为啥不接着上研做ML(老实说在当时做嵌入式视觉这块,DL落地很难很难)
  •  反问:你们部门做的是啥呀(数据库)
  •  反问:你们这个数据库是基于MySQL的还是从头开始写的?
  •  反问:为啥淘宝比支付宝慢很多,和数据库有关吗?(不作死就不会死……)
  •  为啥第二次打开页面会比第一次快?
  • 浏览器输入一个URL会经历一些什么步骤?
  • 反问:你觉得我有哪些需要改进呢(C++基础扎实,数据库相关项目经验不足)
  • 你的博客网址是啥我看看……

结语

其实还有一些面试笔试(快手奇安信美团等),不怎么想去也没做笔记,基本忘光了

由于暑假还有小学期,打算选就近的华为去实习,后面的一些面试和笔试就都拒掉了

保研的事情也基本搞定了,拿了bupt AI的offer,算是从EE硬件的坑里跳出来了

感觉自己和其他科班CS的差距还是特别大的,一个学校里人与人之间的差距比人与狗还大,学海无涯,继续加油鸭!!!

发布了377 篇原创文章 · 获赞 344 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_41895747/article/details/105629456