双非怎么进大厂?

https://www.nowcoder.com/share/jump/2764630231719583704126

大家好,我是白露啊。

今天我们要分享一个非常励志的故事,它证明了双非背景的毕业生也可以通过努力和坚持,进入梦想中的大厂。

img

下面是这位网友的真实经历,希望能为正在找工作的你提供一些激励和参考。


背景介绍

这位网友的背景并不特殊,他是一名双非本科毕业生。实习经历包括顺丰和货拉拉。

在秋招时,他只有一个秋招期间烂大街的博客项目,而在春招期间,他换成了一个短链接项目。

秋招和春招的面试与Offer

秋招: 他参加了多个面试,但能拿到的中大厂后端面试仅有货拉拉(零星的一两个小厂就不提了)。

春招: 春招期间情况有所好转,他陆续拿到了汽车之家、树美科技、小黑盒和美团的面试机会。

相比秋招,春招确实多了很多机会,感觉一部分是因为项目更具吸引力了,而且他也积累了更多的经历。

秋招和春招的感悟

学历重要,但不是决定因素
对于校招生来说,学历、实习经历、优秀的项目或开源经历确实是非常重要的。

但是,他自己的经历证明了,学历低并不完全意味着无法进入中大厂

在秋招时,他看着周围的人不断拿到面试机会,而自己却机会渺茫,这让他极度焦虑。

然而,他没有放弃。

不断完善自己,抓住每个机会
他在实习的同时,一边投递秋招的简历,一边学习八股算法,还忙着寻找耗时短但亮眼的项目。这一切都是因为他深知自身简历的劣势,无论是学历还是项目经历,均不占优势。

因此,他不断寻找机会去完善自己。

货拉拉给了他一个机会,他抓住了。

尽管那时候他的简历还很一般,使用的项目也是烂大街的博客项目,但他凭借毅力和勤奋成功获得了这次难得的机会。

提升自我,增加面试机会
转到春招时,由于他完善了个人项目并且提前去货拉拉实习,丰富了履历,他的面试机会显著增加。

他拿到了美团和快手的面试机会,并最终选择了美团的offer。不得不说,马哥的短链项目在短时间内快速掌握并且有很多亮点,非常适合用来充实简历

给24届校招生的建议

把握机会,提升自我
虽然学历无法改变,但我们可以把握住各种机会。

没有面试机会不可怕,最可怕的是,当机会来临时没有好好把握。如果他在秋招时没有把握住货拉拉的机会,没有提前去实习增加履历,春招的机会可能也会少很多。

不断增加履历,提升自我
我们要做的就是不断丰富自己的履历,不断提升自己。

当机会来临时,一定要抓住。这个网友的经历告诉我们,双非背景确实有可能进入大厂。关键在于如何利用每一个机会,如何通过不懈的努力去追求自己的目标。


总结一下,这个网友的分享证明,学历背景并不是决定你能否进入大厂的唯一因素。

通过努力、坚持和不断自我提升,每个人都有机会实现自己的职业梦想。

希望他的经验和建议能激励更多的24届校招生,让大家在求职路上更加坚定和自信。

如果你有任何问题或想法,欢迎在评论区和我讨论分享。

美团一面面经

面试官: 你好,先简单介绍一下你在实习经历中觉得最有价值的一个case吧。

求职者: 当然。我在实习期间参与了一个对CompletableFuture多线程接口进行优化的项目。这个项目的背景是我们在处理大量并发任务时,发现现有的多线程实现存在性能瓶颈和资源浪费的问题。我们希望通过使用CompletableFuture来优化多线程处理。

面试官: 那么,你们为什么选择使用CompletableFuture进行优化?它解决了哪些关键问题?

求职者:

  • 背景:我们原先的多线程实现采用的是传统的ThreadExecutorService,在处理大量并发任务时,出现了线程资源浪费和性能瓶颈的问题。

  • 关键问题

  • 线程管理复杂:传统的线程管理需要手动控制线程的创建和销毁,容易导致资源浪费。

  • 任务依赖:处理任务依赖关系复杂,手动管理任务之间的依赖关系容易出错。

  • 阻塞:传统的多线程方法容易出现阻塞,降低了整体性能。

面试官: 使用CompletableFuture进行优化后,带来了哪些问题?使用它时需要注意哪些点?

求职者:

  • 带来的问题

  • 调试难度增加:由于异步执行,调试和排查问题变得更加复杂。

  • 异常处理复杂:异步任务中的异常处理需要特别注意,容易遗漏。

  • 注意点

  • 线程池选择:需要合理选择和配置线程池,以避免线程资源的浪费和性能瓶颈。

  • 任务依赖管理:需要特别注意任务之间的依赖关系,确保任务能够正确执行。

  • 异常处理:需要在每个异步任务中进行适当的异常处理,避免异常传播影响整体流程。

面试官: 你们在使用CompletableFuture时,线程池是怎么考虑的?

求职者: 我们选择了ForkJoinPool作为默认的线程池,因为它能够更好地利用多核CPU资源。同时,我们也根据任务的具体需求,创建了自定义的ThreadPoolExecutor,用于处理一些特定的任务。

进程间通信

面试官: 看你是科班出身,我们聊聊进程间通信(IPC)吧。你能介绍一下进程间通信的方式吗?

求职者: 当然。进程间通信的方式主要有以下几种:

  • 管道(Pipe):用于父子进程之间的通信,单向传输。
  • 命名管道(Named Pipe):用于任意进程之间的通信,双向传输。
  • 消息队列(Message Queue):用于不同进程之间通过消息传递数据。
  • 共享内存(Shared Memory):多个进程共享同一块内存区域,速度快,但需要同步机制。
  • 信号量(Semaphore):用于进程间的同步,控制对共享资源的访问。
  • 套接字(Socket):用于不同主机之间的通信,也可以用于本地主机的进程间通信。

面试官: 那么从操作系统设计者的角度考虑,为什么需要设计这么多种进程间通信的方式?

求职者:

  • 不同的应用场景:不同的通信方式适用于不同的应用场景。例如,管道适用于简单的父子进程通信,而共享内存适用于需要高效数据传输的场景。
  • 性能需求:不同的通信方式在性能上有差异,共享内存速度快但复杂,而消息队列和信号量则相对简单但速度慢。
  • 同步需求:有些通信方式如信号量和消息队列提供了同步机制,适用于需要严格同步的场景,而共享内存则需要额外的同步机制。
  • 网络通信:套接字不仅适用于本地通信,还可以用于网络通信,具有广泛的应用范围。

TCP和UDP

面试官: 好的,我们再聊聊网络协议。TCP和UDP主要有什么差别?

求职者:

  • TCP(Transmission Control Protocol)

  • 连接型协议:在传输数据之前需要建立连接。

  • 可靠性:提供可靠的数据传输,确保数据包按顺序到达,并且没有丢失。

  • 流控制和拥塞控制:TCP具有流控制和拥塞控制机制。

  • 应用场景:适用于需要可靠传输的应用,如HTTP、FTP、邮件等。

  • UDP(User Datagram Protocol)

  • 无连接协议:无需建立连接,直接传输数据包。

  • 不可靠:不保证数据包的顺序和完整性,可能会丢失或重复。

  • 低开销:由于没有连接建立和维护,传输效率高。

  • 应用场景:适用于对实时性要求高但不要求可靠传输的应用,如视频流、在线游戏、DNS等。

面试官: 那么,怎么基于UDP实现一个可靠的通信协议?

求职者: 可以基于UDP实现一个可靠的通信协议,以下是一些关键点:

  • 序列号:为每个数据包分配一个序列号,接收方可以根据序列号重组数据包,并检测丢失的数据包。
  • 确认机制:接收方在接收到数据包后发送确认(ACK)给发送方,发送方在超时未收到确认时重新发送数据包。
  • 重传机制:发送方在超时未收到确认时,重新发送数据包。
  • 流控制:根据接收方的处理能力,调整发送数据包的速率,避免接收方过载。
  • 拥塞控制:通过检测网络拥塞情况,动态调整发送速率,避免网络拥塞。

线程安全的单例模式

面试官: 请写一个线程安全的单例模式,需要使用finalprivate构造函数、volatile和双重检查。

求职者: 这是一个使用Java实现的线程安全单例模式示例:

public class Singleton {private static volatile Singleton instance;private Singleton() {// 私有构造函数,防止外部实例化}public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;}
}

解释

  • volatile:确保多线程环境下的可见性,防止指令重排序。
  • private构造函数:防止外部实例化。
  • 双重检查:在同步代码块内外都进行检查,以提高性能。

数据库隔离级别

面试官: 你了解数据库隔离级别吗?

求职者: 了解。数据库的隔离级别决定了事务之间的隔离程度,共有四种常见的隔离级别:

  1. 读未提交(Read Uncommitted):最低的隔离级别,允许读取未提交的数据,可能会导致脏读。
  2. 读已提交(Read Committed):只允许读取已提交的数据,避免脏读,但可能会出现不可重复读。
  3. 可重复读(Repeatable Read):在一个事务内多次读取相同数据时,结果是一样的,避免不可重复读,但可能会出现幻读。
  4. 可序列化(Serializable):最高的隔离级别,完全隔离事务,避免幻读,但性能开销最大。

联合索引

面试官: 联合索引在不满足最左匹配原则时为什么会失效?

求职者: 联合索引在不满足最左匹配原则时会失效,这是因为数据库在创建联合索引时,是按照索引列的顺序进行排序的。只有按照最左前缀顺序查询时,才能有效利用索引。如果查询条件不包含最左边的列,数据库无法利用索引的排序信息,导致索引失效,退化为全表扫描。

算法题

面试官: 最后我们来做一道算法题。一个变形的二分查找,做法是根据mid所处的下标奇数偶数决定是去mid-1还是mid+1。你可以试着写一下代码吗?

求职者:当然,我们继续。

求职者: 好的,我来写一下这个变形的二分查找的代码。假设我们有一个已经部分排序的数组,并且我们需要根据mid的位置是奇数还是偶数来决定下一步的搜索方向。

public class Solution {public int modifiedBinarySearch(int[] nums, int target) {int left = 0;int right = nums.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {return mid;}if (mid % 2 == 0) {  // 如果mid是偶数if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}} else {  // 如果mid是奇数if (nums[mid] < target) {right = mid - 1;} else {left = mid + 1;}}}return -1;  // 如果没找到,返回-1}
}

解释

  • 初始化左右指针left指向数组的左端,right指向数组的右端。

  • 计算中间位置mid = left + (right - left) / 2,避免直接相加可能导致的整数溢出。

  • 比较中间值和目标值

  • 如果nums[mid] == target,返回mid

  • 如果mid是偶数且nums[mid] < target,则目标值在右半部分,移动left指针。

  • 如果mid是偶数且nums[mid] >= target,则目标值在左半部分,移动right指针。

  • 如果mid是奇数且nums[mid] < target,则目标值在左半部分,移动right指针。

  • 如果mid是奇数且nums[mid] >= target,则目标值在右半部分,移动left指针。

  • 循环终止条件:当left > right时,停止循环,如果没有找到目标值,返回-1

面试官: 很好,今天的面试就到这里了,感谢你的回答。我们会尽快通知你结果。祝你好运!


参考原文:https://offernow.cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

泰安再见,泰山OFFICE还会再见

路过泰安&#xff0c;遇见彩虹。怀念和感恩在泰山信息科技的万丈豪情。 泰山OFFICE&#xff0c;还是要复活。

提升Android Studio开发体验:使用Kelp插件实现颜色和图标预览

提升Android Studio开发体验&#xff1a;使用Kelp插件实现颜色和图标预览 在Android开发中&#xff0c;自动补全功能对于提高开发效率至关重要。然而&#xff0c;默认的Android Studio并不能预览颜色和图标&#xff0c;这使得开发者在选择资源时常常感到困惑。本文将介绍如何使…

LNMP架构搭建Discuz论坛

LNMP架构是一种用于搭建Web服务器环境的常用架构&#xff0c;由Linux、Nginx、MySQL和PHP组成 组成功能Linux作为操作系统的基础&#xff0c;提供稳定的环境Nginx作为反向代理服务器&#xff0c;处理客户端的请求并将他们转发给后端的应用服务器MySQL作为关系型数据库管理系统…

7.2 数据结构

作业 #include <stdio.h> #include <string.h> #include <stdlib.h> struct student {char name[32];int age;double score; }s[3];void stu_input(struct student *s,int n) {printf("请输入%d个学生的信息&#xff08;姓名&#xff0c;年龄&#xff0…

【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow

一、介绍 服装识别系统&#xff0c;本系统作为图像识别方面的一个典型应用&#xff0c;使用Python作为主要编程语言&#xff0c;并通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对18种不同的服装&#xff08;‘黑色连衣裙’, ‘黑色衬衫’, ‘黑色鞋子’, …

Meta 发布 Meta 3D Gen 文本生成3D模型

Meta推出了 Meta 3D Gen &#xff08;3DGen&#xff09;&#xff0c;这是一种用于文本到 3D 资产生成的最先进的快速管道。3DGen 可在一分钟内提供具有高提示保真度和高质量 3D 形状和纹理的 3D 资产创建。 它支持基于物理的渲染 &#xff08;PBR&#xff09;&#xff0c;这是…

网口串口(Serialport)服务器

文章所用工具http://t.csdnimg.cn/2gIR8http://t.csdnimg.cn/2gIR8 搭建服务器界面 操作配置文件保存方式类 public string FileName { get; set; }public IniHelper(string name) {this.FileName name; //在构造函数中给路径赋值} 1 先导入c语言进行读取操作ini文件的方法 …

Python基于you-get下载网页上的视频

​ 1.python 下载地址 下载 : https://www.python.org/downloads/ 2. 配置环境变量 配置 python_home 地址 配置 python_scripts 地址 在path 中加入对应配置 3. 验证 ​ C:\Users>python --version Python 3.12.4C:\Users>wheel version wheel 0.43.04. 下载 c…

Python从入门到放弃——浮点型变量

浮点型变量 前言 上一篇文章我们研究了整数类型变量&#xff0c;本次我们来开始研究一下浮点类型变量。 浮点类型 浮点数在计算机编程中扮演着重要的角色。它们是一种特殊的数据类型&#xff0c;用于存储和处理小数或实数。在Python中&#xff0c;浮点数是由小数点分隔的…

迎接创新浪潮!RFID国军标助力数字化装备场转型

随着大数据、物联网的飞速发展&#xff0c;数字化转型已成为军事发展的核心战略之一。在这一重大历史进程中&#xff0c;广州一芯未来的RFID国军标呈现出独特而重要的作用。它不仅提升了装备管理的效率和准确性&#xff0c;还增强了装备的安全保障和资源配置的合理性。它以高效…

SpringMVC基础详解

文章目录 一、SpringMVC简介1、什么是MVC2、MVC架构模式与三层模型的区别3、什么是SpringMVC 二、HelloWorld程序1、pom文件2、springmvc.xml3、配置web.xml文件4、html文件5、执行Controller 三、RequestMapping注解1、value属性1.1、基础使用1.2、Ant风格&#xff08;模糊匹配…

在CenteOs7上安装mysql8.0(Super详细版)

在CenteOs7上安装mysql8.0 为什么用Mysql8.0&#xff1f;如何下载下载地址需要提前准备下载步骤 服务器上安装如何上传到服务器&#xff1f;通过wget下载到服务器并解压 开始安装非必须安装如果全部安装执行顺序 安装完后&#xff0c;启动mysql使用“systemctl”检测mysqld服务…

充分利用智慧校园人事系统,提升党政职务管理

智慧校园人事系统中的党政职务管理功能&#xff0c;是专为高校及教育机构设计的&#xff0c;旨在高效、精确地处理与党政职务相关的各类事务&#xff0c;包括职务任命、任期管理、职责分配、考核评估等&#xff0c;以信息化手段促进党务及行政工作的透明化、规范化。 该模块首先…

Jest是什么软件?

Jest是一个由Facebook开发的开源JavaScript测试框架&#xff0c;它专为JavaScript项目的测试而设计&#xff0c;特别适用于React和Node.js环境。Jest以其简单的配置、高效的性能和易用性而闻名&#xff0c;成为现代JavaScript项目中不可或缺的测试工具。以下是关于Jest的详细解…

《Windows API每日一练》8.1 button控件二

8.1.4 按钮 在BTNLOOK中显示的前两个按钮是“按键”按钮&#xff08;push button&#xff09;。此类按钮是一种带有 文本的矩形&#xff0c;这些文本是在CreateWindow调用的窗口文本参数中提供的。而CreateWindow 或MoveWindow调用中指定的宽度和高度则确定了矩形的大小。文本…

面对全球新能源汽车合作发展创维汽车如何实现共赢

由全球新能源汽车合作组织(筹)主办、中国电动汽车百人会承办的首届全球新能源汽车合作发展论坛(GNEV2024)于6月27日&#xff0c;6月28日在新加坡金沙会议展览中心召开。创维汽车国际营销公司总经理齐奎源受邀参会并作出分享。 本届大会以推动全球新能源汽车产业协同发展与合作…

C语言课设--读取文件并统计数据

读取文件并统计数据 // 统计记事本英文字符数 //功能 &#xff1a; 读 文件 a.txt 统计出各种 数字 大写字母 小写字母 0~9 A~Z a ~z各有多少个 程序主体框架如下&#xff1a; #include<stdio.h> int a[128]{0};//其中数组元素a[i]保存 ASCII 码为i的字符的数量 v…

【CSS in Depth 2 精译】2.4 视口的相对单位

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位 ✔️2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.4 视口的相对单位 前面介绍过的 em 和 rem 是相对于 font-size 定义的&#xff0…

rust + mingw安装教程

0. 说明 windows上安装rust时&#xff0c;需要在电脑上安装C/C构建工具。推荐的的两种工具链可以选择&#xff1a; visual studio build toolsmingw 官方推荐使用visual studio&#xff0c;若你的电脑上已经安装了visual studio&#xff0c;则无需再安装&#xff0c;直接安装…