当前位置: 首页 > news >正文

一个3年Android的找工作记录

作者:Petterp

这是我最近 1个月 的找工作记录,希望这些经历对你会有所帮助。

有时机会就像一阵风,如果没有握住,那下一阵风什么时候吹来,往往是个运气问题。

写在开始

先说背景: 自考本,3年经验,非大厂背景

在现如今行情并不是很好的情况下,这些case更像是叠 Buff 一样,充满着各种限制。

个人背景比较差的情况下,那靠什么才能拿到一个 面试机会 呢?或者说,抛开目前的背景而言,还有什么可以 辅助证明 [小伙子应该值得一面] :

  • 年龄 24 (能卷 / 瞎说);
  • Github 1k Star,多个开源库的维护者;
  • 清晰的职业规划与个人目标(比较虚的东西,但每个人都应该具备);

职业规划

对于技术同学而言,3年5年 这些都是至关重要的时间节点,于我而言,刚好处于 3 年的位置。

在之前的经历中,因为团队比较自由,涉及的范围相对比较广,从业务到性能优化,再从基础设施到CI/CD。

故按照原本的职业规划,本次理想目标是:小厂,性能优化||基础架构 方向

面试经历

这部分总结了一张表,感兴趣的大家可以看看:

最开始先找了一些外包进行尝试(因为很久没有面试过了,看看市场),但尝试发现,外包本身难度比较低,故不太适合。然后尝试内推了各种小厂,但几乎都在HR关被筛掉了,所以真正能有机会面试的并不多。所以于我而言,最难的不是面试本身,而是如何通过第一道简历筛选😟

从这个月总的面试感受来看,有准备的情况下,面试难度基本都比较适中,比如陌陌其实比较简单,相对困难一点的是: 汽车之家(基础架构)、融云(sdk)。当然这并不代表所有业务线,总体还是要根据个人简历与知识深度以及运气而定

问什么?

当聊面试的相关问题或者方向时,直接说面试题,总不是特别好的方式,故结合自身而写了下面几个维度:

  • 架构方面 (MVx系列、组件化)
  • 基础技能 (KotlinASMAPT)
  • 数据结构 (链表、哈希表,力扣热题100)
  • 性能优化 (秒开、包体积、ANRCrash …)
  • 基础概念 (HandlerView 绘制、线程池 …)
  • 三方组件 (ARouterJetPack 系列、Epoxy …)
  • 项目相关 (个人角色数据 真实性、方案 可行性 …)
  • 软技能与情商 (OKR制定、个人 定位 、职业规划 …)

回到面试本身,个人本次的体验中,少有去问八股的,可能因为项目本身就有足够问的,当然这个就要根据简历以及面试官而定

常见流程

聊到具体的面试流程,通常如下所示(根据个人经历)

  • 一面(技术)
    自我介绍,然后问项目中的问题(时间较长),接着会问一些常见的八股或者三方组件问题,最后算法题收尾,最后你还有什么想问的;
  • 二面(leader)
    自我介绍,开始问项目,如果某个问题或者某些通用型问题频繁回答失败(分数下降),降级回到八股去问,最后你还有什么想问的;
  • 三面(总监||CTO)
    有时会省略自我介绍,说说你之前做了什么,问一些 OKR 以及 职业规划 上的问题,你对我们公司怎么看,你在原公司的角色等;
  • HRBP
    聊聊个人情况,预期的薪资,我们这边的情况,你对我们公司怎么看,面试的感觉如何等等;
  • 加面(CEO)
    开门见山,先说公司的背景与核心业务,再说现状,比如今年的目标等;再问你之前负责的事,你的职业规划等等;
  • HR(聊薪)
    会再问你预期的薪资,上家的总包情况等,然后再说公司这边的福利等等,最后会给你一个大概多久反馈结果(可能需要你问)。

不过一般不会有这么多轮,往往都是:2(技术)+1(HR),或者 3(技术)+1(HR) ,如果遇到 加面 ,往往都是都是对于小公司或者岗位比较重要。

一些技巧

1.简历投递
如果背景不太好,记得编辑一下打招呼消息(突出你的 技术亮点社区贡献 等),优先找Boss是 技术同学 的去投递;
2.面试准备
当拿到面试邀约后,记得去体验一下所在业务线的产品,技术氛围,网上有没有相关面试资料等等,对简历中的重要部分进行整理;
3.自我介绍
不要像背诵一样,通常除了说项目本身,更重要的是需要阐述你做了什么?得到了什么关键数据?你的职业规划等;
4.面试过程
* 记得 开摄像头 ,这是基本礼节,这样也能更好的Get面试官状态变化;
* 对于没听清或者没get到的问题,不要猜,大胆再问一遍
* 对于一些八股或者无法解释的问题,可以 换角度解答 。比如:这块我以前整理过,但是目前记得不是特别清,不过我可以根据我个人的理解来进行解释,不确定是否一定正确。ps: 重要的是你 如何思考 ,而非答案100%正确,善意的面试官通常也会引导你进行解答 😃
* 手写算法时,如果发现自己5分钟之内无法写出,可以告诉面试官 大概思路 即可。ps:大家时间都很宝贵,通常思路正确也可以;
5.面试复盘
对于每次面试,及时做好 复盘 ,特别是对于简历上写,如果面试中被问住,则更需要回来反复思考整理;
比如会有同学建议尝试录音,这也是一种很好的方式。不过我更多的是通过文字记录,特别的,对于一些比较重要的部分,及时做好分段分章节记录。对于一些关键业务数据,一定要确保真实可信,可论证;
6.面试结果
常常会经历等结果的过程,通常行业中默认第二天不联系,就等同于没通过。但如果比较在意这家公司,面试中还不错(75分即可),那么可以大胆在面试完隔1天后去问结果如何。ps: HR 不会因为你问他/她结果而如何,结果是业务部门定;
7.聊薪阶段

关于社保公积金的比例、公司的福利、每年调薪机会等等其他情况都可以进行提问,到了这个阶段,也就不要再藏着掖着。需要注意的是,需要自己了解现在的市场行情,当然更多的是根据上一份base而定,幅度 15-20% 左右(根据自身情况,有没有其他offer等等调整),也不要太离谱。

最终去处

最终在 融云(IM SDK)回响科技(Flutter) 中间选了后者;

最终下决定的原因来源于:

我是一个比较感性的人,在这两家纠结了挺久。最后突然在小宇宙刷到了后者创始人(沈振宇)的一些fm,听了一些产品侧以及对市场的看法,冷不丁的感觉,这里也许更适合我,可能下决定时有点冲动,但站在现在的角度,这个决定是符合我的状态。引用比较喜欢的一句话:

社区不止是内容的承载,更是这部分人群的呼应与共鸣。(有修改)

虽然很 向往 高复杂场景的设计与基础设施的构建,但也喜欢 产品设计与技术本身 所带来的呼应,就像去买 pixel,不仅仅是为了原生系统,更重要的是满足 最初的梦想 以及 探索电子产品 所带来的感受。

站在理性的角度,对于我个人的职业规划而言,显然未来更很想成为一个独立开发者(具备产品思维),前者做sdk,虽然深度提高,但也限制了其他场景,故后者更符合我自身不过事在人为,无论是在哪里,于我而言,都会朝着这个方向前进

当然也要特别感谢我 女朋友 和在北京的同学们,也是他们一直在鼓励我别灰心 😃

Next(新篇章)

即将迎来新的 3-5年 ,除技术本身之外,也有下面几个新节点:

  • 单词 & 英语口语练习;
  • Android GDE
  • 在职研究生考试;

其中 第一项 是目前最重要需要解决的,也是后两项的基础,可能会花一年时间去准备。同时在中间节点,也会去参加几场技术分享,为 GDE 铺路。

依然记得当年毕业面试时,别人问我的那个问题:你为什么选择Android?

因为热爱

写在最后

这就是最近一个月的面试记录,唠唠叨叨也写了不少,虽然结果并不像我原本所期望的那样:找个中小厂,去为履历增添几笔。

但往往并不会事事顺心,很多时候反而是 运气成分 较大。 不可否认,好的背景能加分不少,但如果能有更多的自由空间,去做比较有意思的事情,也是非常酷。

常言道:英雄不问出处,这句话某种程度上听着还是会比较遗憾。不过,生活也远不止一种方式,未来具体能走到哪里、遇到怎样的人、站到怎么样的高度,还是在于自身。

最后,希望我的经历,会对你有所帮助,愿大家都能 无限前进:)

下面推荐一些复习文档:《Android 八大知识体系》:https://qr18.cn/CyxarU+《2023版Android 最新面试题(含Java基础、Android基础、性能优化、Framework……)》:https://qr18.cn/CgxrRy

相关文章:

一个3年Android的找工作记录

作者:Petterp 这是我最近 1个月 的找工作记录,希望这些经历对你会有所帮助。 有时机会就像一阵风,如果没有握住,那下一阵风什么时候吹来,往往是个运气问题。 写在开始 先说背景: 自考本,3年经验&#xff0…...

CAS原理解析

CAS是一种乐观锁机制,一种比较并交换的过程和理念,用来解决线程安全问题,具体来讲就是对共享变量值的安全更新机制。能够保证原子、可见、一致性。这种交换过程是在Unsafe类中实现。 从一段简单的代码开始来对源码做分析 public static void…...

SQL项目实战:银行客户分析

大家好,本文将与大家分享一个SQL项目,即根据从数据集收集到的信息分析银行客户流失的可能性。这些洞察来自个人信息,如年龄、性别、收入和人口统计信息、银行卡类型、产品、客户信用评分以及客户在银行的服务时间长短等。对于银行而言&#x…...

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群指令分析—实战篇)

探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群指令分析—下篇) Cluster XX的集群指令(扩展)写入记录主节点和备节点切换-CLUSTER FAILOVER新加入master节点新加入slave节点为slave节点重新分配master分配哈希槽删除…...

ubuntu

安装 sudo apt-get update sudo apt-get install mysql-server mysql-client 设置root密码 cat /etc/mysql/debian.cnf 查看默认密码 mysql -u debian-sys-maint -p 连接输入密码 use mysql; select user,plugin from user; update user set pluginmysql_native_passwor…...

【芯片设计- RTL 数字逻辑设计入门 3- Verdi 常用使用命令】

文章目录 Verdi 全局显示Verdi 前导 0 的显示Verdi 数据笔数统计Verdi 波形数据dump Verdi 全局显示 bsubi -n 16 -J sam visualizer -tracedir ./veloce.wave/debug_waveform.stw 打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮&a…...

python-pytorch基础之cifar10数据集使用图片分类

这里写目录标题 总体思路获取数据集下载cifar10数据解压包文件介绍加载图片数字化信息查看数据信息数据读取自定义dataset使用loader加载建模训练测试建测试数据的loader测试准确性测试一张图片读取一张图片加载模型预测图片类型创建一个预测函数随便来张马的图片结果其他打开一…...

华纳云:linux下磁盘管理与挂载硬盘方法是什么

在Linux下进行磁盘管理和挂载硬盘的方法如下: 磁盘管理: a. 查看已连接的磁盘:可以使用命令 fdisk -l 或 lsblk 查看系统中已连接的磁盘信息,包括硬盘和分区。 b. 创建分区:如果磁盘是全新的,需要使用 f…...

ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一)

ChatGPT Stable Diffusion 百度AI MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一) 前言 最近大模型频出,但是对于我们普通人来说,如何使用这些AI工具来辅助我们的工作呢,或者参与进入我们的生活…...

linux strcpy/strncpy/sprintf内存溢出问题

本文主要介绍strcpy/strncpy/sprintf都是不安全的&#xff0c;可能存在内存溢出的问题。下来进行实例分析。 strcpy代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h>void test_func(char *str) {b…...

Jmeter如何添加插件

一、前言 ​ 在我们的工作中&#xff0c;我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件&#xff1f; 2023最新Jmeter接口测试从入门到精通&#xff08;全套项目实战教程&#xff09; 二、插件管理器 ​ 首先我们需要下载插件管理器j…...

flask---CBV使用和源码分析

1 cbv写法 -1 写个类&#xff0c;继承MethodView-2 在类中写跟请求方式同名的方法-3 注册路由&#xff1a;app.add_url_rule(/home, view_funcHome.as_view(home))#home是endpoint&#xff0c;就是路由别名#例子 class add(MethodView):def get(self):return holleapp.add_url…...

Qt 实现压缩文件、文件夹和解压缩操作zip

一、实现方式 通过Qt自带的库来实现&#xff0c;使用多线程方式&#xff0c;通过信号和槽来触发压缩与解压缩&#xff0c;并将压缩和解压缩结果回传过来。 使用的类&#xff1a; #include "QtGui/private/qzipreader_p.h" #include "QtGui/private/qzipwriter…...

简单工厂模式VS策略模式

简单工厂模式VS策略模式 今天复习设计模式&#xff0c;由于简单工厂模式和策略模式太像了&#xff0c;重新整理梳理一下 简单工厂模式MUL图&#xff1a; 策略模式UML图&#xff1a; 1、简单工厂模式中只管创建实例&#xff0c;具体怎么使用工厂实例由调用方决定&#xff0c…...

【MySQL】触发器 (十二)

🚗MySQL学习第十二站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 触发器是与表有关的数据库对象,作用在insert/update/delete语句执行之前(BEFORE)或之后(AFTER),自动触发并执行触发器中定义的SQL语句集合。它可以协助应…...

听说 Spring Bean 的创建还有一条捷径?

文章目录 1. resolveBeforeInstantiation1.1 applyBeanPostProcessorsBeforeInstantiation1.2 applyBeanPostProcessorsAfterInitialization1.3 案例 2. 源码实践2.1 切面 Bean2.2 普通 Bean 在 Spring Bean 的创建方法中&#xff0c;有如下一段代码&#xff1a; AbstractAutow…...

大数据课程E6——Flume的Processor

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Processor的概念和配置参数; ⚪ 掌握Processor的使用方法; ⚪ 掌握Processor的Default Processo; ⚪ 掌握Processor的Load Balance Processo; 一、Failover Sink Processor 1. …...

实现邮箱管理之gmail邮箱、office365(Azure)邮箱之披荆斩棘问题一览

要进行Office365邮箱的授权对接&#xff0c;你需要先申请一个应用&#xff0c;并获取授权访问令牌。 以下是一个简单的步骤&#xff1a; 登录 Azure 门户&#xff1a;https://portal.azure.com/创建一个新的应用程序&#xff0c;或者使用现有的应用程序。要创建新的应用程序&…...

(AcWing)多重背包问题 I,II

有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件&#xff0c;每件体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使物品体积总和不超过背包容量&#xff0c;且价值总和最大。 输出最大价值。 输入格式 第一行两个整数 N&#xff0c;…...

如何把几个视频合并在一起?视频合并方法分享

当我们需要制作一个比较长的视频时&#xff0c;将多个视频进行合并可以使得整个过程更加高效。此外&#xff0c;合并视频还可以避免出现“剪辑断层”的情况&#xff0c;使得视频内容更加连贯&#xff0c;更加容易被观众理解和接受。再有&#xff0c;合并视频还可以减少视频文件…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...