技术面完之后感觉凉的差不多了,写一下这个月以来的面试经历总结一下
2020.5.27 竟然给了意向书了,闻所未闻(≖ᴗ≖)✧,实习的日子更要加油啊!

背景回顾

之前一直想着跨专业考研,于是慢悠悠的学了差不多一个月的用C语言实现数据结构里边的算法。

四月初的时候,国家宣布今年考研扩招,才认真想了下还要不要跨考,还是本科毕业就出来工作。

决定了之后,便开始学,不过实习也在这时候开始招人,时间比较急迫。

最近几天的学习时间线

  • 4/2-4/3 定好学习方向,网上搜索相关资料

  • 4/4-4/5 赶一下电信专业课的进度和作业

  • 4/6-4/8 初识HTML,CSS,感觉有点像Word文档,就是要代码实现了

  • 4/8-4/10 python入门(两天吧,也是看了两次资料,菜鸟教程和慕课网的教程)‘

  • 4/11-4/13 进牛客网熟悉语言,python3的字符串和列表等函数,开始写写题目,

  • 4/14-4/15 微众微保和华为的两场机试,比想象中的简单很多,不过也碰到了之前没碰到的问题

  • 4/16-4/17 赶一下电信专业课的进度和作业(状态不好,应该一天写完的)

  • 4/18-4/20 看了点资料后,开始看《计算机网络:自定向下方法》,一天一章,边记笔记边看,进度有点慢

  • 4/21 把TCP那一章再看了一遍,对着面试常见问题总结了一下。 用python3写了几个排序算法(写的很慢) 看了链表常见面试题(都很简单)

  • 4/22 技术面前把用C写链表的写法看了下,万一考这个呢? 约11:30开始技术面

技术面准备 更细节的在https://blog.nowcoder.net/n/f4d108b721084a0dbc1bd4a63a567c28

  1. 看了十大排序,写了四五个(暂时还没解决除快排,希尔排序和三个基础排序之外的其它排序)
  2. 计算机网络前三章,运输层TCP这一章看了两遍,并且又看了遍常见面试题和解析
  3. 看了数列,链表,栈的面试常见问题和答案思路(都挺简单的),临时看了一遍用C怎么写链表
  4. 图的几个算法的方法,搜索方法回顾(他问的二叉搜索树的搜索方法不会就有问二分搜索的意思吧= =!,我那时候都没反应过来啊啊啊!)
  5. 掉了100根头发

机试回顾

腾讯微保的机试 4/14 20:00-21:00

选择题 80分 25题

之前给的链接里可没有选择题,还是比较意外的。

看了两天的CSS和HTML在这里面起了作用,大概一半的题会写,1/4的题不确定,1/4的题靠感觉蒙。结果应该还是不错的。

编程题(3选1,取最高值)60分

编程题的牛客网考试也没没有调试选项,只有提交选项。也不允许本地IDE调试。
题目比我想的简单,就真的是入门水平,但是不能调试是真的挺难受的..就调试一下的事情得肉眼debug好久才看的出来。感觉其实发挥的是正常水平?

但是也遇到了之前没写过的问题

  1. 错误输入格式的检查,叠加上不能调试的Debuff,调了半天啥也没调出来

  2. 超时,怎么改进算法

第一题写完思路拿了50之后就没再长了。

第二题5行python3搞定,之后发现超时了,60分。

要是这难度放现在来说妥妥的100分到手,只能怪时不等人吧~

华为的机试 4/15 19:00-21:00

62.5+75=137.5/300

题目比腾讯微保的稍难,不过可以使用本地IDE调试,牛客网的页面也带有调试。

第一道是计算出现次数+排序+输出的时候短的,字符小的排在前面(sort排序完美符合)
然后一下子写完,提交并运行,好家伙,只过了32.5%的数据。是输入有异常时的情况,没管,写第二题去了。大概写了不到半小时的样子。

第二题就是纯粹的字符串分割了,从字符串里读取数据,然后排除输入格式错误的情况下把正确的给找出来。一开始照着思路写了下(python的函数真的好用...各种函数切割),一下子75%的通过率。
这就过100分了,挺不错的~~

最后的一小时出头就用来判定输入是否合法了,加了30分,最后一题没写。

不过考完之后在牛客网论坛里发现:
——原来可以直接输出一些答案骗分!学到了学到了

技术面回顾

4/22 周三上午,也就是今天上午,在zoom上边进行了技术面。

在一个没有项目||也没有实习||成绩还不好||这几年除了正事之外啥都干||还是个转行生||的自我介绍之后,技术面正式开始了

手撕代码

随着面试官大人说,“那出个题让看下你的计算机学的怎样,用C语言写个斐波那契数列吧”,手撕代码的环节开始了

说实话还以为为考点难的,没想到这么简单,就哼哧哼哧的开始码代码了(就是好久没写C语言有点手生)

写的过程:

写的过程比较追求速度,变量命名和格式啥的就没管了 =.=,下次一定改好看

非递归的之前好像没写过,还想了下怎么用除了函数之外的方式实现递归的功能。

写到一半发现可以直接从前往后推呀,直接怼了三个变量用来记。

(实际应该用动态规划的方法用数组来记的,不用每次挪这三个变量浪费时间...当时咋就这么冲动呢?)

修改:

写完之后面试官让我改冗余的代码,不过有个地方他提的建议我当时还是不大赞同,

就是if(n==1 || n==2),他的意见是改成 n <= 2 再用unsigned int即可确保

现在想来可能是少一次判断也能节省时间吧,我那时候想的方向是表达不够直接具体。

被怼:

代码啥啥都不行,得多练练,推荐了一本书(可能是代码规范书)让我去看,读起来有点像《LeetCode》?

递归实现

int FoNa(int n)
{
    if (n==1){
        return 1;
    }
    if(n==2){
        return 1;
    }
    return FoNa(n-1) + FoNa(n-2);
}

非递归实现

unsigned int Fei(unsigned int n)
{
    int result = 0, result1 = 1, result2 =1;
    int temp = 0, now_n = 0;
    if(n <= 2) //出来后应该都是加1
    {
        if(n==0)
        {
            return 0;
        }
        result = 1;
    }
    else
    {
        now_n = 3;
        result = 2;
        while(now_n < n) //斐波那契三个数的移动
        {
            temp = result;
            result += result1;
            result2 = result1;
            result1 = temp;
            now_n ++;
        }
    }
    return result;
}

问问题:

“基础课有balabala...你学了哪几门?”

“我就只学了一部分的计算机网络和数据结构”

1.问了二叉搜索树的搜索方法

那时候脑子里突然不知道二叉搜索树是什么了(查了一下发现自己看过)

然后就说搜索方法就是前,中,后序遍历(层次遍历也没说),还有什么其它的遍历方法?不是都说通过改树来实现的吗?

然后就说要使搜索效果最好的话,要对树进行平衡,左右一致最好,为了达到这个目标,所以才有了平衡树,B树,B+树,插入数据时通过旋转达到目标

但是要兼顾查找时间和插入删除时的改树时间的话,就有了红黑树,即不咋改,但是比较平衡。

(事后看来还算说对了点,但是关键在于我没说二叉搜索树的性质啥的_(:з」∠)_)

好像还问了哈希表的原理?有点不记得了。

回答的是根据某种算法直接将值对应到相应的地址上吧。

2.问了TCP的慢启动,滑动窗口

  • 慢启动是TCP刚开始连接的时候,从一个很慢的速度开始传报,但是传报会以指数性的增长,直到一个比较高的速度

(感觉面试的时候没说明白这个..,没提到是刚开始/断开连接之后,也没说最后会怎样)

  • 滑动窗口说的算是比较好的了,从GBK协议和SR协议开始讲,是在一个定时器的前提下为了接近SR协议而加上的补丁,这样才能有文件流。

发送端和接收端的窗口不一样,得看有没有接收到ACK和接收到文件才滑动(好像说的也不是很清楚?)

还说了滑动窗口的作用:为了防止丢包不知道丢的那个序号的包,这样就能一起传文件流

滑动窗口的大小:由丢包率,ACK的返回速度,序号数...等等决定,有个算法

昨天刚把这一章总结完,也算是在漫长自闭的面试中给了我一点喜悦吧o(╥﹏╥)o

3. 你对未来的规划?

我就按实回答了,如果按照我自己的想法的话,就是前端+后端->全栈的路线走,前端好入门,好好努力,过几个月做项目。

然后我问他“您对我有什么建议吗?”,他说建议我多学学C语言和数据结构,这是基础,我表示十分感谢。

————————————————————————————————————————————————————————

最后相视无言了几秒钟,面试官说那“这次面试就这样吧,待会会有人通知你结果的”。

“好的谢谢,麻烦你了”

“您已被弹出会议室”

华为主管面(综合面试)4/24 11:24-11:40

时间比较短,问的问题比我意料中的少很多,还以为会有压力测试或者是问问家庭情况啥的。

被问的问题

自我介绍

  • 问了我们学校的情况,计算机相关专业,自动化,电信,计算机,学校位置

我在哪方面的软件应用能力强 ?

  • 暂时还没有,因为刚开始学,想数据结构和计算机网络,都在学,到时候实习的话之前应该能学一些前端

电信的开课没开计算机相关的?(大概意思)

  • C语言,写了一个学生管理系统,很简单,没啥东西

你觉得你会碰到什么挑战和(困难)?

  • 因为是转专业过来的,基础比较薄弱,项目经验比较少,在大学的这几年确实比别人少学了很多,这也算是一个很大的挑战了。但工作的时间是很长的,接下来的日子好好干,好好学习不拉下,应该也能慢慢赶上。挑战的话就是有很多新知识要学习,有技术难题要攻关,好好干就完事了。

华为吸引你的地方是什么?

  • 华为吸引我的地方有balabala...(以后有空补)

这个部门在东莞,所以实习地点是东莞,能接受吗?能实习多久呢?(会影响转正,还有实习内容可能时间短就会比较水)

  • 能,我就想去东莞。
  • 实习时间看学校安排,(9,10,11,12掰着手指算了一下,好像可以四个月?)根据去年学长的经验,至少能去两个月。

我问的问题

在8分钟后,面试官说“大概的我都了解完了,你有什么问题想问我的吗?”

实习的时候住房有补贴,或者公司有啥安排吗?

  • 公司到时候会安排,现在不好说

您们在东莞买的房子是给员工住的吗,怎样才能买呢?

  • 现在第一批是给老员工准备的,以后的政策不清楚

最后问了一个我一直想问的问题,不是工作,也不是公司的情况:

  • ¢****ߚᔈ㐉࠵p†i尧F槽个_T }璅?

想着听听面试官的回答是怎样的,毕竟这种问题没有固定答案,很难回答。

出乎意料的是,他说了很多,说实话从他的角度看,问题变得不一样了,我觉得受益匪浅。

閵変紮濞囨蹇ュ缓閾氬稄娴嗙拋鎺炵妤傚骏鑸伴摎鍨??鈽呮〃

閿濐剟鐝嬬粙娈嬫崘鐭囬敐纾嬩孩閵変紮閮婇妷璇差攨妤??

娴溿儱顢濈挩澶涘妤傚骏鑸扮换鏍垫簠鐠?顐犲厯閸戯讣膩閵堝閰遍敐顏囩摢閸╃喆
————付费后即可观看隐藏内容————

*
*(如果你信的话(滑稽))

他回答这个问题回答了六分钟,整个面试也就十六分钟,说实话,就算在这里凉了,能得到这个问题的回答,我也算是此行无愧了。

在面试官意犹未尽,我也意犹未尽。
————————————————————————————————————————————
最后,他和我说“我们可以以后继续交流”,感觉心中踏实了许多,可能我在这次面试的过程中的某个时刻就变成了华为人吧。

面试完后不久,打开华为的招聘网站,流程上的主管面试写着,“已通过”。

听说面试过了之后,会泡上半个月的池子再开奖,希望别泡着泡着就凉了吧🤐

华为性格测试重测

4/30晚上收到的通知说是问卷无效...然后看到牛客网上的小伙伴们说30号华为实习开奖了
突然呜呜呜o(╥﹏╥)o,不会因为这个就凉了吧。
5/1重新测了一遍,可能是因为第一次有些矛盾了?毕竟没有再来一次的机会了,照着网上说的重新做了一遍。
然后状态码“Tnext”确实从1变成0了,希望不要影响实习offer啊呜呜呜o(╥﹏╥)o。
剩下的时间继续学习吧~,HTML/CSS/JS,VUE框架,好像之后还要学Node.js?东西有点多,冲冲冲!_(:з」∠)_