个人面试笔试日记与复盘笔记(北京)

yhzyl / 2024-01-18 / 原文

据说把鼠标放在标题后面可以查看目录哦~

用时间洪流泡的茶,根本就品不出茶味,所以,不要迷惘,坚定步伐,慢慢细品,就好!

 

红色绿色是个人感觉公司氛围挺不错,黑色为没从hr/面试官对话中体会到公司氛围。

 

1. 瑞鑫天算

社招,上来笔试180题,6套题(C++,python,强化学习,机器学习,numpy,pandas),30题/套,

2023.12.28  联系+笔试

新4套测试题,前4套,强化学习没咋学过,当成预习,题型类比期末考试,考编程细节。

刚考完研连带复习做这个挺浪费时间的(用了gpt也花了些时间),吃完饭做到下午4点过,晚上又来了2套卷!

2023.12.28  晚发了新2套卷之后:中场休息,毁灭吧我累了

对话中可以看出他们确确实实知道我要实习。

   

2023.12.29  第二场笔试

numpy+pandas测试题。白天有事,下午5点回学校开始做,到晚上9点半,中间吃饭打电动用了1.5h左右。

考法与之前类似,但numpy个人认为有一堆错题,做得难受。numpy我还算熟,那些题我感觉答案不太对劲的丢尽程序里跑了,结果能不一样的,反正代码运行的结果不可能出错。

2024.01.02  电话面试

这次电话面是技术p都不懂的hrbp来,就是上面跟我交流的那个,主要问基本信息和薪酬待遇,然后我g了。

雷区我清楚,因为他们说不要实习生要正式员工,实习生太不稳定了。我很清楚的记得我的回答:”我目前刚需实习,之后更了解熟悉公司后如果合适多半也是会留下来工作的,因为我考不上研了。“

2024.01.02  一切都结束之后

说实话我的心情是愤怒的,因为我事先早就说明了。

2024.01.16  还有后续,,当天的聊天记录

到现在还没招到合适的人,挺离谱的。庆幸自己没进去,进去再知道他们这副德行损失就大了,因为他们急着签三方,总之是个大雷,赶紧排掉!

 

 

2024.01.03至01.05,高烧,最低38.1°C最高39.6(毕设开会那天晚上01.04),一分钟都没褪过;老师催毕设,换了5个题都不满意每个题都让我落实实现细节看看能不能做完,这几天撕了爬虫,复习了机器学习和推荐算法(被否的毕设内容),投了简历,刷了算法。

我心态太差,结果,4号晚上毕设开题再度被否,没崩住,我直接问想活着毕业我该怎么办?老师叫我好好休息,这个题改一下也还能凑合,我觉得凑合可能毕不了业,说了想要延期,这几天看看老师能不能再帮忙想想办法。会结束后定个个5号ddl,要求明确开题内容,写个报告。

那天晚上突然想起,因为语文差,考研英语听的刘琦,记得老师说过,很多人为了考研,甚至会牺牲自己的一部分健康,之后再慢慢调回来。高烧那天晚上想起这句话,后面决定好专心养病,只有自己,才能爱护自己的身体。

2024.01.05 弹尽药绝高烧勇闯校医院,布洛芬也只能压到38.1°C,校医院没辙

2024.01.06 人民医院,今天第一次退高烧,37.9°C,非常极限,但起码消化系统开始运作了,检查出来普通感冒,挺可笑的,身体亚健康了。

2024.01.07 室友的导师说毕设延期也得先交个题目上去,之后开题报告前随便改,然后我把那个凑合的课题当作延期的备胎发给老师。老师说要么在他ddl内交付,要么换导师,下不为例,收到请回复明白。我的回答是:”明白,所以我听您的,确实有好好休息了。“

2024.01.08 体力恢复了,难题还没解决,没办法,找了辅导员。前任辅导员也在,跟我聊了许久,打消了我心中的一些雾吧!正如开头的句子所说,我要做的事,其实很简单,因为我一直以来都着手在做。

 

2. 蚁触科技

实习,C++算法岗

2024.01.04  技术线上面试

  1. 问问题,主要是C++,没有特别考察C++特殊的特性(运算符重载,const,引用,模板,虚函数什么的)。
    • 算法问了快排,讲思路,我讲得差不多有王道课的程度,包括high指针先动,什么时候交换,pivot怎么选,最后pivot会放在哪,问题不大。
    • 讲一下交叉编译。这个凉了,忘了,只记得跨平台。答案:

      交叉编译是在一个平台上生成另一个平台上运行的目标代码。例如,在Windows上编译生成Linux上的可执行文件。这个过程需要目标平台的编译器、库和工具链。

      要交叉编译一个项目,首先需要配置交叉编译环境。这通常包括安装目标平台的编译器、库和工具链。然后,在项目的配置文件中指定交叉编译的参数,例如目标平台、编译器路径等。

      一旦配置好交叉编译环境,就可以按照正常的编译流程进行交叉编译了。需要注意的是,目标平台的编译器可能会对代码进行一些特殊的处理,例如处理平台相关的数据类型、调用约定等。因此,在编写代码时需要注意这些差异,以确保生成的代码能够在目标平台上正常运行。

      总之,交叉编译是一种将源代码转换为另一个平台上运行的目标代码的过程,需要配置交叉编译环境并注意目标平台的编译器差异。

    • C++如何调python,你拍脑门想一下。”使用python暴露的一些api,之前java遇到过掉python的问题,类比的话就是这样“,问题不大。
  2. ”看你主要还是用python的,C++主要是用来刷力扣,我们后续会进一步给出结果“,之后杳无音讯,正常g掉,中规中矩

 

 

3. 用友网络

实习,可选择转正/离开,软件测试岗位。

2024.01.10  技术线上面试

  1. 他们主要是要黑盒测试实习生,但我主要是整的白盒;肯定够用,但我可能有点吃亏,面试官叫我考虑一下
  2. 讲了一些互联网岗位的常识,测试运维是不能转开发的,太困难了,一般人是要休息的,不会拿休息时间学习;主要是因为丢了应届生这个身份,利用这个身份可以去尝试一下其他公司/大厂的开发。
  3. 感触良多,公司很好,室友有在里面干过3个月测试,用友是大厂,待遇不错,氛围就如同这次面试官所体现。

 

4. 多乐游戏

 

2024.01.11  技术线上面试

 

5. 京东TMT

 

6. 语玩

实习转正,Web前端开发,人力直接把我简历给技术看,共2面

2024.01.17  1st面-技术线下面试

  1. 简单介绍自己
  2. 聊聊在校期间在开发上玩过什么?大致聊了python(爬虫,flask,机器学习),C++(算法),前端(h5c3+js+vue),微信小程序开发,面试官最感兴趣的是C++
  3. 在聊的过程中问你问题
    • 你说到C++的引用,那请问引用和指针的区别在哪?”引用是对象的别名,指针是指向具体对象内存空间的地址。“面试官可能更期望得到下面的回答:
      1. 初始化和绑定:

        • 引用:一旦被初始化,引用就始终绑定到其初始化的对象。之后不能再被重新绑定到其他对象。
        • 指针:指针可以在任何时候指向任何对象。通过使用=操作符,可以改变指针的指向。
      2. 间接性:

        • 引用:引用不是间接的。它只是一个别名,是对象的另一个名称。
        • 指针:指针是间接的。它存储的是对象的内存地址,可以通过间接的方式来访问该地址上的值。
      3. 空值:

        • 引用:引用不能是空值。它必须绑定到一个存在的对象。
        • 指针:指针可以是空值,表示它不指向任何对象。
      4. 指向的对象的生命周期:

        • 引用:引用的生命周期与它所绑定的对象的生命周期一样。当对象生命周期结束时,引用也会变得无效。
        • 指针:指针的生命周期可以独立于它所指向的对象。即使所指向的对象被销毁,指针仍然存在。
      5. 操作符:

        • 引用:可以使用.运算符来访问引用所绑定的对象的成员。
        • 指针:需要使用->*运算符来访问指针所指向的对象的成员。
      6. nullptr:

        • 引用:C++11引入了nullptr关键字,但引用不能是nullptr
        • 指针:指针可以是nullptr
      7. 数组与指针:

        • 引用:不能有数组的引用。
        • 指针:可以使用数组名来初始化指针,使其指向数组的第一个元素。
      8. 初始化与赋值:

        • 引用:引用可以在声明时初始化,也可以在后续代码中赋值(前提是它绑定到一个存在的对象)。
        • 指针:指针可以在声明时初始化,也可以在后续代码中赋值(可以改变它指向的对象)。
      9. delete操作符:

        • 引用:不能使用delete操作符来删除一个对象。这是由引用的性质决定的,因为引用只是对象的别名,不是对象的独立实体。
        • 指针:可以使用delete操作符来删除一个对象,前提是该对象是通过new操作符动态分配的。
      10. const修饰符:

        • 引用:一旦一个引用被声明为const,它就不能再被改变来绑定到其他非const对象上。这有助于确保引用的安全性,防止意外修改。
        • 指针:尽管指针本身可以被声明为const,但是const修饰的是指针本身还是它所指向的对象取决于上下文。例如,int const * p;表示p是一个指向const int的指针,而int * const p;表示p是一个const的指针,指向一个非const int。
    • 怎么实现a,b两个数的交换?”呵,声明一个临时的变量tmp,然后tmp=a;a=b;b=tmp“这是最基本的,你能想到不用其他临时变量的方法吗?我脑子空白了很久面试官给提示了,4则运算,(然后我觉得会覆盖一个值很不科学),提示2,你先覆盖掉a怎么样,”哦哦哦刚进误区了,可以先a=a+b;这样a存的其实是sum值;再b=a-b;这样b就变成了a了;最后再a=a-b(其实就是sum-b改变后的值),a就变成b了“,仔细想想是这回事吧,那你能用位运算实现交换吗?同样不用声明新的临时变量。思考了一会,面试官要我好好回忆位运算,无非就那么几种,”也就是与或非,异或,左移右移;那么,我能用的是,呃,呃,如果我用异或,任何数与0异或还是自己,如果我大胆尝试ab异或,那么再异或a就得b了。哦哦哦!面试官我懂了!只需要a=a^b;a就相当于ab都异或一次, b=a^b;就能让b异或自己得0,然后再与a异或b就变成a了,同理再a=a^b,a就成b了“,这是我答得最好的一问。
    • 再说一下野指针吧。很久之前看过忘光了
    • 给你一个数组,你怎么实现一个队列?根据先进先出随便说说就行,提了循环队列。普通队列,你觉得首尾指针叠在一起和我遍历一遍队列判空有区别吗?”有,效率上的区别“,面试官说行。
    • 说说线程和进程的区别。略。你觉得多线程可以不要吗?”不行,用户需求,例子,边看电影边下载东西。“我还说了协程,翻车,协程说成管程了yyy。
    • 给你一个多线程的场景,无非只有读写两种,会产生冲突吗?怎样的冲突?”脏读幻读不可重复读...啊吧啊吧“,面试官叫我用大白话说就行了,没必要记这些名词,意思到了才行。
    • 你觉得读写冲突上锁怎么锁?锁读?锁写?答案是都要锁,因为不锁读意味这写的时候可以读,这不是原子操作的问题,而是处理多线程时读写可能并行,不只是并发。我的回答有点问题,现在懂了。
    • 总计1h15min,更细节的东西记不清了,把印象最深的写出来,当作今天的复盘吧,——2024.1.17
  4. 面试官说看重的你们应届生的学习能力,因此只要能力过关岗位都不成问题,再说。问了能否接受 Android 和 IOS 开发。