二胎妈妈上班一月后被辞,华丽逆袭阿里、字节、腾讯,已拿2个offer

在这里插入图片描述

前言
这个社会很现实也很残酷,尤其是对女性来说,要挣钱还要养娃,职场更是可怕,是选择回归家庭还是做个职场女强人呢?二胎刚结束产假的我,年初就开始找工作,大大小小的投了10+公司,尤其受疫情影响,好不容易面试上一家公司,也许是因为休了半年多产假的原因,也许是因为工作的同时也要兼顾孩子,最终上班后一个月被辞退,简直心灰意冷。好在我的调节能力比较强也比较抗压,经过朋友的推荐,在线上报名了学习课程,每天坚持学习,通过自己的努力,两个月后成功拿到满意的offer。

主要目标还是一线大厂,这次面试给我最大的感受就是面试官基本上都是围绕着简历来问的,所以我们的简历是第一关,自己一定要把握好,不熟悉的东西千万不要往上面写,项目和基础都是非常重要的,基础知识这些都需要自己去学习和积累,而项目方面最好是有难点,能够体现出自己解决问题的一个过程和思路。总的来说,这次面试是比较顺的,进行面试的有阿里、字节、腾讯等,最终拿到了杭州阿里B端业务部门和深圳字节头条主端部门的offer,下面就大概分享一下几家大厂面试经验。

阿里巴巴面试整理

  • 线程原理
  • 垃圾回收机制的实现
  • Https原理
  • Handler实现线程通信
  • Glide对Bitmap的缓存与源码复用如何做到
  • 给你一个Demo如何快速定位ANR
  • 对Dalvik虚拟机的认识
  • Android虚拟机Dalvik与ART区别
  • 进程保活如何做到,保活率有多高
  • Binder通信原理与机制
  • Handler中有loop死循环,为什么没有阻塞主线程,原理是什么
  • AMS在Android的作用是什么,Activity启动跟AMS有什么关系
  • PMS了解过吗?怎么看?聊聊PMS详细实现流程

腾讯面试整理

  • 热修复
  • 增量升级
  • 设计一个多用户、多角色的APP架构
  • Volatile关键字与synchronized关键字在内存的区别
  • synchronized关键字在虚拟机执行原理,什么是内存可见性,锁升级
  • ButterKnife为什么执行效率别其他诸多框架高,原理是什么
  • Linux自带多种进程通信方式,为什么Android都没采用而偏偏使用*
  • Binder通信
  • Binder原理和实现一次拷贝的流程
  • 类比于微信,如何对APK进行极限压缩,谈下Android压缩几大步骤
  • 如何彻底防止反编译,.dex加密怎么做
  • AOP与OOP的区别,原理
  • 序列化与反序列化的原理,Android的Parcelable与Serializable的区别
  • 手机QQ换肤实现和原理

字节跳动面试整理

  • 如何实现直播效果
  • 抖音直播中网速比较差的情况下,如何使画面保证流畅
  • 音视频同步原理,音视频能绝对同步吗
  • 硬编码和软编码区别,录屏时如何选取硬编和软编
  • 有做过直播特效吗,说说原理和难点
  • include、merge、ViewStub的作用和原理
  • OpenCV中定位人脸的五个点怎么做到
  • 为什么RecyclerView加载首屏会慢一些
  • View绘制机制,onMeasure、onLayout、onDraw方法的调用机制
  • 为什么Android会出现卡顿
  • ThreadLocal底层原理和Handler的关系
  • Flutter为什么会做到处处运行,与RN的区别
  • Flutter的图形引擎和Android的渲染引擎原理
  • sync关键字和lock的区别,他们对线程的控制原理

架构方面整理

  • EventBus、AOP面向切面编程原理、饿了么Hermes跨进程架构原理、Message、QQ换肤、阿里ARouter、RxJava

NDK方面整理

  • 指针、MakeFile编译so库、阿里andfix热修复原理、编译FFmpeg集成到AS中

算法方面整理

  • Hash值、HashMap、最小生成树算法、KMP算法、查找算法、排序算法

UI方面整理

  • BAT屏幕适配、刘海屏开发和适配、UI绘制流程和原理、事件传递机制

总结:
大致就是下面这几个方面要进行学习:

计算机基础:
计网,OS,算法和数据结构必须熟悉;组成原理,编译原理等等看了更好
语言基础:
Java的一些语言特性,多线程,JVM
数据库:基础概念,SQL,数据库的设计等
web基础:
Servlet,JSP, HTTP协议, Cookie, Session等进行一下了解,可以自己用servlet写个demo
web框架:
SpringMVC, Spring, Mybatis, 在项目实践中学习,先会用,然后深入。 SpringCloud, SpringBoot等也可以进行学习
中间件:Redis, 消息队列这些也可以了解一下
开发工具:
Maven ,Git等等
系统设计:如何提升系统并发,保证可用性,伸缩性,扩展性,安全性

面试准备和阅读书籍:

大体的建议还是平时多coding,多看书,多思考,多总结,不要在面试前依赖面经总结,或者背面试问题这种途径,因为需要做到的是真正对某个问题理解了,知道解决方案,而不只是背过了答案。面经总结应该看成一种对自己进行查漏补缺的测验,而不是背诵的题库,功夫积累还是在平时。

自己准备的过程就是先去看对应的书籍,基本理解之后再去看面经进行查漏补缺,自我检验,然后不断迭代反复的过程。所以我准备的各个方面进行一下总结,希望对大家有所帮助。

计算机基础:
计网《计算机网络》
操作系统 《操作系统概念》《深入理解计算机系统》也推荐
算法和数据结构:看了《算法》(第四版), 《算法笔记》本来打算看的,但是后来放弃了。
计算机组成: 简单看了下MOOC上的视频,过了一遍

语言基础
基础:《Head First java》, 然后熟悉依稀Java基础的一下API,看一些基础知识的博客,我看的黑马视频,对API熟悉了点。
深入:《Android进阶之光》挑选一些章节阅读,《Android进阶解密》(建议有一定的基础再进行阅读);或者 《Android开发艺术探索》和《疯狂Android讲义(第二版)》选一本读一下就行。
JVM:《深入理解JVM虚拟街》,内存分配, 类加载, 内存模型和多线程部分。这三部分可以重点看。
源码阅读: JUC,集合类,常见类(String等),
设计模式:
菜鸟教程的设计模式。(后来发现其实是直接翻译的国外的一个网站内容)。更多的还是平时的分析和使用。
数据库:
SQL基础语法:《MySQL必知必会》
数据库基础知识:《数据库系统概念》
MySQL:《高性能MySQL》

web基础:
主要是了解了HTTP,Cookie,Session,Servlet,Filter,JSP等基础知识,用servlet写了个demo
框架 SSM, 主要是在项目中使用了一下,然后搜索了一些常见的问题,看了看文档。

web深入:
Spring框架: 了解一下IOC,AOP的原理,自己尝试简单实现,书籍可以看一下《Spring实战》
Redis: 了解一下基本的语法就可以使用,深入了解可以看一下《Redis设计与实现》
微服务,SpringCloud,之类的也可以进行了解
其他书籍:
《Android C++高级编程 使用NDK》,对开发所涉及到的知识都可以有一个比较系统的了解

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值