我想跳槽了,该怎么办?(1)-程序员宅基地

技术标签: 程序员  跳槽  

面试前,面试官拿到你的简历,根据简历上的信息会建立第一印象。因此你想要呈现给对方一个怎样的定位,有什么亮点,都需要事先思考清楚。

确定了方向后就要开始努力准备,下一节我们介绍安卓跳槽需要准备复习的知识。
###三.安卓跳槽需要复习的知识
在介绍面试考察内容前,先来看看我认为的“中级安卓”需要掌握的知识点,这些是结合一些面经、自己实际面试以及请教前辈总结而来的,主要包括两部分:

  • 基础知识
  • 进阶知识

面试中级及以下岗位时,在电话面试、一面、或者你简历没有突出亮点时,一般都会先问基础,目的是确定你基本功扎不扎实。

如果基础知识有太多不会的就危险了,必须好好准备,这是躲不过的。

电话面试、一面考察基本功过关后,就会进入下一阶段 — 问些进阶的,看看你最高水平在哪里。

这个阶段有不会的很正常,因为对方正在确定你的水平,但态度一定要积极主动,即使之前没有研究过,也要结合一些经验说出推测的结果,切忌直接说“我不会”。
####3.1.基础知识
基础知识主要包括以下几点:

  • Java 基础
  • 并发/异步
  • 安卓基础
  • 设计模式
  • 常见的数据结构算法
  • 网络基础

3.1.1.Java 基础

虽然现在 Kotlin 挺火的,但我面了几家大公司都没问 Kotlin,问了很多 Java 。所以一定要保证当前知识掌握熟练了,再学习新知识,不然真成了狗熊掰苞米。

Java 基础主要包括以下知识点:

  • 内部类、静态内部类区别、使用场景
  • 抽象类、接口 实战使用场景
  • 注解
  • 什么是注解以及运行时注解的使用
  • 使用编译时注解简单实现类似 ButterKnife 的效果
  • 反射
  • 深入理解 Java 反射:Class (反射的入口)
  • 深入理解 Java 反射:Field (成员变量)
  • 深入理解 Java 反射:Method (成员方法)
  • 泛型
  • [深入理解 Java 泛型]
  • IO NIO

3.1.2.并发/异步

主要包括两部分:

  • 安卓并发类
  • Java 并发知识

安卓的主线程模型,要求我们必须将耗时操作放到线程异步执行,否则会影响 app 的流畅甚至卡顿。

因此必须掌握安卓提供的 Handler, HandlerThread, IntentService, AsyncTask ,这是安卓为我们封装好的异步类,从使用到原理,都要理解,面试常客。

接着就需要了解 Java 的线程、内存模型和 Java 并发包下提供的类了,这也是大公司考察基础的常客。

除了面试,如果你去看过开源框架,会发现里面有很多 ConcurrentHashMap, Lock, Condition,一开始看的你一脸懵逼,在掌握了 Java 并发知识后,再去看框架就会省力许多。

Java 并发主要知识点:

  • 同步锁 synchronized与Lock区别
  • 什么是可重入锁
  • 线程通信方法
  • wait 和 sleep区别
  • wait-notify 模型
  • 生产者消费者模型
  • 线程池

建议阅读书籍:《Android 开发艺术探索》、《Java 并发编程艺术》、《Java 并发编程实战》

3.1.3.安卓基础

安卓基础爱问的来来回回就那些点:

  • 四大组件,生命周期启动方式等常见问题
  • Android 进阶1:Activity 的生命周期
  • Android 进阶2:Activity 的 Task 与启动模式
  • Android 进阶3:Intent 与 IntentFilter 匹配规则
  • Android 进阶4:Service 的一些细节
  • 自定义 View 相关
  • 绘制流程
  • 事件传递
  • 滑动冲突

这部分是常见的,应该大多数人都掌握差不多了,书的话还是看 《艺术探索》。

3.1.4.设计模式

我这次找工作,笔试里出现了两次写单例模式,记得几年前校招的时候就因为单例失去过一次好机会,单例模式的重要性,你自己掂量一下。

设计模式考察的也不算太复杂,知道常用的几种设计模式使用场景,会手写单例的关键几种(静态内部类 double-check 知道区别)就可以了。

可以去看看《大话设计模式》、《Android 源码设计模式》。

3.1.5.数据结构算法

我这次面试算法问的比较少,只手写过插入排序,建议把冒泡、插入、归并时间复杂度和实现熟悉熟悉,最好手写下,不然现场手写的时候容易出错。

作为一个有追求的程序员,这些数据结构、算法是需要掌握的:

  • 数组链表区别
  • 链表插入删除
  • 栈及使用场景
  • 队列及使用场景(有可能拓展到阻塞队列)

这些是基础,学好才能掌握其他的。

红黑树、KMP、最短路径、动态规划、背包问题这些都属于进阶了,问的比较少,了解下即可。

可以再买本《剑指 offer》看看,锻炼下算法题的常见解题思路。《算法》就太科班化了,一般人也看不进去,有兴趣的可以看看。

3.1.6.网络基础

网络其实问的也不算多,因为毕竟不用我们自己去实现一个 HTTP Client,常见的网络问题大概以下内容:

  • 七层模型
  • HTTP 内容
  • 常见响应码
  • 缓存相关
  • TCP 三次握手、四次挥手
  • Socket 的使用
  • 进程通信之 Socket (顺便回顾 TCP UDP)

###四.进阶知识

在确定你的基础够用后,二三面就会考察你的进阶能力。就应用开发来说,进阶知识主要有以下内容:

  • 框架原理:缓存、网络、图片
  • 性能优化
  • 架构模式
  • JVM
  • 插件化

4.1.框架原理

作为有追求的安卓开发,怎么可能只满足使用框架而不知其原理呢?

在面试时也经常会被问到:你熟悉什么框架的源码?

这个时候如果没有准备就尴尬了,失去了给自己加分的机会。

现在主流框架是 RxJava Retrofit OkHttp Picasso/Glide EventBus3,你可以选择其中两个左右熟悉一下源码和大概流程,重要的是理解为什么要有这个框架,解决的问题,如何解决的。

建议阅读书籍:《Android 进阶之光》

4.2.性能优化

性能优化又是另外一个高频问题,一般主要问内存方面、UI 方面的优化。

常见问题:

  • 内存优化
  • 内存泄漏如何避免、检测
  • 内存抖动怎么办
  • 有使用过什么工具吗?
  • 如何避免 OOM
  • UI 优化
  • 布局卡顿怎么办
  • 如何判断布局是否需要优化
  • 有哪些工具

另外也可以阅读《高性能 Android 应用开发》。

4.3.架构模式

高级的安卓开发不仅需要完成一个模块,还需要负责整个项目的设计与开发。

常见的架构模式是按项目分层分,MVC MVP MVVM 这些,可以选其中两个进行学习、实践,对比了解优势和劣势就可以了,网上文章很多的。

另外就是设计思想,OOP 面向对象开发的思想一般都知道,继承封装多态,什么时候用接口什么时候用抽象类,其实和设计模式相辅相成的。

还有 AOP,面向切面编程,大型项目一般都会用到,在不入侵代码的同时添加功能,建议了解。

还有路由,现在都流行组件化,组件化的一个问题就是组件间如何依赖,如何通信,这些都需要有良好的架构设计思想。我自己也在摸索中。

这部分的知识属于个人经验,不同的人不同的体会,没有适合所有人的相关书籍,需要自己多写、多总结出来。

4.4.JVM

在去一家公司面试时,隔壁屋也在面试一个后台,在等待面试官时我偷偷听了下他们的对话。其中有一段对话记忆深刻:

  • 请介绍下 CMS 垃圾收集器。
  • 额,对不起,我只毕业一年,这方面了解的比较少。

JVM 的知识究竟需要工作几年再了解呢?

不同的人有不同的看法,我的看法是:尽可能早。

JVM 主要内容大概有这些(来自《深入理解 Java 虚拟机》):

  • JMM(Java 内存模型)
  • GC(垃圾回收策略)
  • 虚拟机性能监控、调优
  • 类文件结构
  • 类加载机制
  • 程序编译优化

这些内容可能听起来比较遥远,很多人觉得我就开发业务,需要了解这么多吗?看起来都没什么用。

理解这些内容,对我们日常的业务开发有极大地促进作用:

  • 了解 JMM 后,你对内存分配、OOM 的理解就不会只停留在表层
  • 了解 GC 后,对性能优化的理解也会更上一层
  • 熟悉类加载机制后,对你学习插件化也会有很大帮助
  • 了解虚拟机对程序的优化,就会明白一些并发原语的作用及意义

而这些也是面试时经常问的问题,知道的越多,对你的加分就越多。

建议阅读:《深入理解 Java 虚拟机》

4.5. 插件化

插件化这么火,各大公司都在研发自己的插件化,这不仅仅是对业务的支撑,同时也显示出他们安卓研发的技术深厚。

有的朋友可能会说了:我现在的项目用户这么少,用这个有什么用。

不说学了有没有用,在学习的过程中,可以对你现有知识体系有极大的提升,要开发插件化,需要掌握的内容大概有这些:

  • 类加载机制
  • 四大组件启动流程
  • 资源加载
  • 动态代理

看到了吧,它是对一些疑难知识点的应用,通过有目的的学习,可以让我们对基础知识掌握的更加醇厚。

面试时如果你说自己有主动学习这方面的知识,还能说出一部分知识点,不仅显示出你的技术能力,还体现了你的主动学习性和学习能力,大大的加分!

进阶知识是我自己经验所得,如果有遗漏,欢迎补充。不喜勿喷

五.不同公司侧重内容不同

有朋友可能会问了: 基础的内容太多了吧,我可不可以直接准备高级的。

首先你直接学高级很费劲,容易误解不说,硬记下来没多久也就忘记了;其次面试时的提问顺序我上面也说了,都是从基础开始的,基础不扎实,活不过两集。

这里再唠叨一句,如果一家公司靠投机取巧就可以进去,那进去的投机取巧者岂止你一个人,那样的公司氛围是你想要的吗?如果想进入一个理想的大公司,还是踏踏实实地一步步走吧。

掌握了知识点后,接下来就要针对各公司侧重内容重点复习了。

各大公司面试考察的知识点,网上相关的资料不少,我平时也在关注一些面经,看看里面有什么是自己欠缺的,然后找时间补上。

首先不同岗位的知识点不同,大家都知道,安卓开发有应用开发、音视频开发、底层开发、SDK 开发等等,如果去应聘音视频开发,那就要掌握 NDK 编解码之类的。由于我从事的是应用开发,所以这里的知识点主要针对应用开发的同学。

除了岗位方向,不同规模的公司、不同阶段的项目关注的知识点也不同,对安卓开发,我总结了这么 2 种分类:

1.成熟的大项目

  • 项目比较稳定,需要进行拓展、维护、监控
  • 需要面试者掌握:原理、设计模式、性能

2.初期的项目

  • 项目刚开始不久,需要完成业务快速迭代
  • 需要面试者具备:语言基础、常见框架的使用、UI 方面

因此我们在面试不同公司时,先根据 JD 了解重点招聘要求,然而最好再了解到招聘岗位对应的项目情况,针对性地多多复习。

###六.简历如何写
俗话说,酒香也怕巷子深。

饶你十八般武艺,基础进阶全都掌握,过不了简历筛选这关,也是枉然。

这节我们来了解如何写简历,让它可以顺利通过 HR 筛选、让用人部门看着喜欢。

6.1.简历的一些常见问题

有关注我公众号的朋友可能知道,我前段时间在公众号发出了帮网友修改简历的活动,在这个过程中,发现了很多问题,大概有这么几点:

6.1.1.样式不过关
简历过于简单或者过于花哨

6.1.2.关键信息不足
基本信息、联系方式、学历、工作经历、项目经历、具备技能,检查下这些都有没有

6.1.3.方向不明确
面试安卓,简历里安卓相关占比太少,会前端后台当然好,但是不能描述比例比安卓还多吧,你到底是想找哪个方向的工作
office ps 什么的可以考虑别写了

6.1.4.亮点不突出
项目经历、专业技能都太平凡,没有核心亮点
回到 “跳槽前要思考的问题” 那节好好思考一下

6.1.5.夸大其词
专业技能写的很牛逼,各种前沿技术,插件化、热修复、Kotlin… 实际上只是听说过或者写过小 demo,说不出原理
接触少的可以去掉,有学习过原理的,可以写清楚,是正在学习

我见过有的朋友项目描述写了估计有 500 字,其实不必那么详细,一句话概况项目功能就好了,关键是描述你用到的技术、框架,还有你在其中负责的任务,做了哪些高质量的操作。这些是面试官在意的东西,会就这些内容提问。

其实在写简历时我们就发现了,如果平时只是写写业务代码,简历上不知道该怎么写,这就要求你倒逼自己了,平时要做些业务之外的东西,比如优化,比如重构,做久了,这些就成了你的亮点。

另外项目里某些模块(比如基础框架)即使不是你实现的,只要花点心思了解实现原理,也可以厚着脸皮写成你实现的,嘿嘿。前提是掌握的差不多了哦,不然被问住就尴尬了。

项目经验修改建议:

  • 最好加上遇到什么问题、怎么解决的、有没有学习到新技能
  • 突出招聘公司要求上的关键字,也就是说你的简历要针对性修改
  • 例如对方要求熟悉第三方支付接入,那你就要突出这个
  • 如果对方说了解前端开发优先,那就要突出 H5 JS

在写技能时,还要把握好 “了解”、“熟悉”、“掌握”、“精通”的度,自恋如我,也不敢写一个精通,因为我之前试过,只是大概看了下源码,就得意地写了个精通,结果被问的脸都发红,以后再也不敢了 -。-。

如果你的技能内容太多,试着这样修改:

  • 去掉一天就能学会的技能,尤其是非 Android 的
  • 对技术的掌握程度适度修改,能说出 WHAT WHY 的才算“熟悉”,知道 HOW 的才算“掌握”
  • 最好有研究过一两个第三方框架源码

“自我评价” 就算了,太过主观,没什么说服力,我这里用 “其他” 代替,写一些客观信息,有理有据,让人信服。

###七.简历怎么投
知识点准备的差不多了,简历也修改过了,万事俱备,只差投简历了。

有的朋友会说:我这就投他百十来家,还不信没有面试?!

####7.1. 渠道和时机

前两天跟一个业内知名大佬聊天,这个大佬有多大佬呢,这么说吧,如果我的能力影响力是青铜,那他就是砖石!

这么牛逼的大佬,去年投简历,居然被一个公司拒了!

这是怎么回事?HR 视力有问题?

哈哈,其实也不是,真实的原因是那个岗位只招一个人,这边 HR 刚发出去,那边就有人找内推,抢占了先机。大佬虽然是大佬,但也没得办法。

这其实反映了一个问题,简历投递的渠道和时机。

如果你想去的是知名大公司,走外部渠道,就要做好和很多人竞争的准备,除了简历竞争,还有面试竞争、薪资竞争要求等等,这是供与求关系决定的。

但是如果走内推,简历第一时间到用人部门,就省事多了。

所以说在想去大公司时,最好事先找好内推渠道,一般这些公司内推都有奖金,员工也都比较乐意。

除了渠道,时机也很重要,“金 3 银 4”、“金 9 银 10” 为什么有这种说法呢,有一部分原因就是这事加薪季,有的员工对加薪结果满意,就跳槽了,A 跳 B,B 跳 A,涨工资的同时促进了招聘、猎头的生意,大家都发财,所以就这么叫喽。

正是这个时候大公司的空缺比较多,我们进入的机会就大了几成。

要是选择年底,机会就少了些,毕竟辛苦一年,怎么也得拿了年终奖再走啊。

####7.2.投递的策略
在选择投递简历时,有的朋友喜欢随便投,一投几十家,姜子牙钓鱼,愿者上钩。

这种广撒网策略,对于水平差点的还可以,面试机会少、选择也少,就去了;但要是水平还可以的,邀请面试机会一多,被坑的其实还是自己。

首先人的激情是有限的,你不可能面了几十家还保持一样的心态,到后面难免疲惫。前几家面试的,如果有公司先对你抛出橄榄枝,有可能你就选择了他们;如果好点的公司被排到后面面试,很可能你就懒得去了。

拿我来说,找人内推了两个很知名的公司,没有等多久就又从拉勾上投了简历,结果拉勾上投的发了 offer 好久了,那两个公司才给我打电话邀请面试,我就懒得去了。

大公司简历处理比较慢,因此投递时最好按公司规模、待遇从大到小按顺序投,一波投完等几天,没有反馈再投下一梯队的,不要太心急。

而且面试时间不太密集,也便于你面完一家总结复习。

####7.3.公司选择
有的朋友会问了:我想去的公司太多了,也不在乎公司大小,只要给的钱多,不管哪个公司都行。

嗯,这其实也是一部分人的选择,各有所好,不可能人人都喜欢去大公司。

在选择公司时,除了规模、待遇外,建议也看看这些因素:

  • 行业
  • 前景
  • 公司地址

行业

挑一个喜爱的行业还是比较重要的,前面也提到了,一个人的能力除了说技术能力,还有业务能力。

选择一个你喜欢的行业,长期的从事下去,到一定程度上,你可以承担产品经理的责任,想升官发财还不容易 ?

行业比较多,o2o,医疗,电商,外卖,音视频,下载一些对应的 app,看看你平时都喜欢玩哪个,然后在投递时重点投递。

前景

在创业公司工作过的朋友可能知道,一个公司从兴盛到降落,会导致公司福利、员工心态、团队氛围的各种变化,如果你不想经历传说中的“发不出工资”,就要慎重选择。

什么样的公司有前景呢?

其实最操心这个问题的应该是投资人。

我们作为程序员,在选择公司时,先了解对方公司信息(规模、盈利模式、主营产品),了解到靠不靠谱,去了能不能好好干几年。

尽量选择成熟、稳定的,B C D 轮甚至上市的,一定短期内倒不了。那些刚起步的,尽量选择有实体行业背景、硬件产出的公司,毕竟纯互联网很容易跨,有实体、硬件支撑还能多玩会儿。

公司地址

如果选择了 IT 公司密布的地段,就要做好早起的准备。传说中的“人潮 9 号线”,可以去体验体验。

另外也可以从这些方面确定要不要投递这个公司:

  • 太小的不去(10-50人)
  • 工资太少的不去
  • 有恶劣小道消息的不去
  • 加班多、拖欠工资

###八.面试前需要准备什么

曾经有份真挚的面试摆在我的面前,我没有珍惜,等到失去的时候才后悔莫急,人世间最痛苦的事莫过于此,如果上天在给我一次机会,我会对那个面试说“我一定做好准备”,如果要给这个准备加个期限,我希望是三四天。

在焦虑又心急的等待中,你迎来了一个陌生的电话,当电话那边的说出“我是某某公司的 HR…”,你浑身一颤眼眶发红:面试,我终于等到你了!

挂了电话后你内心激动、摩拳擦掌,仿佛已经来到了战场。有了大量准备的你意气风发,心想凭我的水平,还不是所向披靡佛挡杀佛鬼挡杀鬼风风火火恍恍惚惚?

然后就接着发呆、打游戏,状态好点的会把知识点再复习一下。

看起来一切都很完美,万事具备只待东风。

面试是双方相互了解的过程,对方不仅需要了解你的硬实力、软实力,还需要了解你对这份工作的态度(敲黑板,这是重点)。

试问有两个候选人,技术或者其他各方面水平差不多 ,一个对公司了解更多,表现出来的兴趣更浓厚些,另一个则“我不知道你们公司是干什么的,但选我没错的”,你会选择哪个呢?

答案非常明显,那怎样可以让对方觉得你对公司、岗位很有兴趣呢?

有朋友会说了:那还不简单,网上搜搜这个公司的介绍,了解了解主营业务,再记住他们的什么企业文化,哇,我已经是很努力的面试者了。

NO NO NO!

公司介绍、企业文化这些应该是在投简历阶段就了解的,稍微有心的人就会做到。我们想在众人中脱颖而出,就要更进一步!

这里列出我经常做的准备:

  • 做功课,了解产品
  • 反编译,ClassShark 查看主要使用的类库
  • 重点要求技能
  • 准备一个展示自己水平的内容,亮点

首先就是了解公司的业务,招我们去做什么项目,网上如果查不到,好,记录一下,面试时提问他们。

然后了解公司的研发团队规模,安卓多少人,网上如果查不到,好,记录一下,面试时提问他们。

接着反编译下对方的项目,看看主要使用了什么类库,然后把用到的库挑一两个好好研究研究,面试时可以提问“你们有用到 XX 库吗?”对方确认后,可以好好的装一逼,哈哈哈,想想就很爽!

另外就是项目重点要求的技能,除了 JD 上说的,还有根据项目类型判断、做准备,如果是投资、股票类的,那可能要求画图表、K 线,你最好准备准备自定义 View,然后面试时主动介绍,哈哈,又是加分项!

总之,面试前要尽可能多地了解对方,表现出你的兴趣,把一些无法了解到的作为问题,也可以避免人家让提问时没问题的尴尬。

###九.面试中的注意事项
前面提到了,程序员面试主要考察:

  • 技能水平
  • 学习能力
  • 团队合作
  • 工作心态等

要在短短几个小时内确定这些内容,面试者一定要尽可能地表现自己。

我们主要注意这些方面:

  • 着装礼仪
  • 气势
  • 笔试的态度
  • 面试互动

####9.1.着装礼仪

有的朋友平时喜欢大裤衩、拖鞋上班,我有时候也这样,舒服,尤其是下雨的时候,水中随便跑,哈哈哈开心。

但面试时要还这样那就是二傻子,在第一次见陌生人时,我们一定会“以貌取人”,快速建立第一印象。

一旦第一印象建立了,后面就是对它的确认和微调,没有人会愿意主动承认自己错了。

如果第一印象是“沃日,这人真邋遢”,后面你稍微表现差一点,对方就会想“又邋遢又表达能力差”,明白了吗?开头的失误会导致方向性地错误;如果第一印象是“嗯,这小伙还可以,干干净净,长得还有点帅”,有了好感后他就会主动来确认自己的想法,即使出点小问题也不会影响太多。

所以尽可能地穿戴整齐,头洗的干净点,眼镜擦干净,见面微笑,表现得自然大方,印象分就会不错。

面试前后来个握手,肉体接触,喔,好感又加一分,胜利更近一步哈哈。

####9.2.气势
面试其实是个双向了解的过程,我们不必把自己姿态放到太低。就跟恋爱一样,一旦你低微到尘埃里,对方就会不珍惜你。

所以要调整自己的心态:我就是我,不一样的烟火,不卑不亢,此处不留爷自有留爷处!

有了这样的想法后,气势就会好一些,腰杆也挺直点。

####9.3.笔试的态度
很多公司喜欢让人写笔试题,其实我也是不想做的,但如果这公司的确不错,还是老老实实做吧。

大学毕业后很久没做卷子,拿到卷子可能会有些手生,没关系,就这样想:跟着感觉走。

事实上你写的卷子没有人去一道道批改,有的公司甚至都不看,差点把我气死。

一般负责任的面试官会在面试时大概看下你写的笔试题。尤其是手写算法,或者画图的,需要好好写,这些是重点关注对象。

像那种考察 API 使用、判断代码输出结果的,我见过几次,基本都随便写写,这种题不知道有什么好考的。从笔试题其实也可以看出一个公司的水平,如果笔试题都是基础概念、API 的作用,网上一搜一大把那种,还是小心点吧。

####9.4.面试的互动
遇到了解的问题自信一点,嘴角微翘,淡定地说一句“哦,这个啊,我研究过”,会多少说多少,尽量拓展到自己熟悉的知识点。

遇到不会的问题,不要“我不会”一口回绝,这让你这道题一分都拿不到,还容易尴尬。谁也难免有不会的,正确的操作是:歉意一笑,“对不起,这个我没研究过,我思考一下”,然后眉头微皱,集中精力想想自己脑子里有什么能挂上边的,思考个两三分钟后,跟对方把你想到的和根据经验猜测的说出来,这样起码不是交白卷,也可以体现你解决问题的思路。

如果碰到算法题这些,先确认问题,然后确认输入输出参数,不确定就问,不要不好意思。

如果想不出思路,脸皮厚点,问问可不可以提醒一下,上社会脸皮薄会吃很多苦,趁早变厚。

在对方输出一些问题的解决方案时,最好主动反问,让对方多说一点,我有次面试,四十分钟下来感觉是对方一直在我,我根据他说的问些问题,然后就这么通过了,搞的我一脸懵逼。

对方说得越多,其实他对这次面试就越认可。不过这取决你提问的技巧,要问到他 G 点上,不要问些不相关的、基础的问题,反而让人厌恶。

面试中的经典问题

面试中,面试官和 HR 会有一些经典问题,比如:

  • 你觉得和同龄人相比自己优势在哪里呢?
  • 你的职业规划是什么?
  • 你了解我们公司吗?
  • 你有什么问题需要问我的吗?

这些问题基本就是在前面准备阶段我提到的,要准备的内容。如果没有提前准备好,不容易答出优势。

####9.5.面试结束后做什么

有朋友问我了:面试了几轮让我回去等消息,这都几天了还没联系我,怎么回事,过没过啊?

借用一句网络语:面试的怎么样,你心里没数吗?

一般面试是三四轮,如果没进行到最后、没谈薪资,就让你回去,就说明基本挂了。

不要泄气,就当是一次免费学习,找到自己的不足和问题,赶紧查漏补缺。

面到最后结果不确定的,也别心急,对方可能有好多面试者要对比,你心急也没用,不如安安心心开始下一个面试的准备。

一般我面试完会思考这些问题:

  • 都问了哪些问题
  • 哪些问题明明有印象,但就是没回答上来
  • 哪些问题之前没了解过
  • 面试官水平怎么样
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后说一下我的学习路线

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:

  1. 架构师筑基必备技能
  2. Android框架体系架构(高级UI+FrameWork源码)
  3. 360°Androidapp全方位性能调优
  4. 设计思想解读开源框架
  5. NDK模块开发
  6. 移动架构师专题项目实战环节
  7. 移动架构师不可不学习微信小程序
  8. 混合开发的flutter

Android学习的资料

我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。

330页PDF Android学习核心笔记(内含上面8大板块)

Android学习的系统对应视频

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

了影响大家的阅读。

330页PDF Android学习核心笔记(内含上面8大板块)

[外链图片转存中…(img-lW7AVsyS-1713616960413)]

Android学习的系统对应视频

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2401_84118608/article/details/138010880

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签