摘要
开篇之前,首先说一下,大神就别点进来了。小编只是尘世间一个迷途小开发,二流程序员。 这篇文章并不像其他面经一样金光闪闪,只是一个二流Android攻城狮在市场的大潮之下,用一个月时间面试+复习+总结,最终拿到了自己喜欢公司offer(非一线大厂,但是薪资也涨了40%多,对我来说已经很满意惹)的故事。当然,大厂谁不想去呢?可是时间紧,生活压力大,计划赶不上变化。生活的真谛就是妥协而已。
前提
出来社会摸爬滚打三年多,不得不承认人是分三六九等的。即便是专注度、努力这些颇为客观的因素,也是因人而异的。(没办法,我也知道客观上应该努力啊555,可我主观上只想躺着刷B站~555)First,先列一下小编目前的客观情况:
-
双非本科,非计算机专业。本专业是机械
-
工作三年,都是小厂,小组最多没超过4个人
-
算法基础一丢丢(翻书‘马冬梅’,合书‘什么梅’)
-
英语水平半文盲
-
懂一点应用层方面的音视频编解码知识
面试之前
首先我不建议频繁的跳槽,除非被逼无奈,频繁跳槽,不光会成为面试官害怕的一个方面,对自己的沉淀也是没有帮助的。同时我不建议裸辞,这样会存在太多的不定性因素,如果面试时间拖得太久,这段时间你没有经济收入,但是你还在支出(房租,日常生活开销)。这样会带来无形的压力,同时如果面试受挫,很容易失去信心,甚至怀疑自己的能力。但是离职也有他的好处,因为,有些公司可能项目非常急,需要迅速上岗,那么你离职的交接办理也会耽误一些时间,那么也会成为面试官考虑的一个因素。所以还是要结合自己的情况而定。
如何准备
我是从4月接近中旬开始面试的,一直到5月底结束,整个面试周期差不多一个月左右的时间。这次面试采用的策略是以战代练,就是边面边复习。面试的话,主要是朋友内推,Boss和拉勾。但Boss的话,初期不建议把简历可见,我就在这方面吃了苦头(别提了都是泪)。接下来我将这一个月内我接触的知识点铺展开来,也给大家一点参考。
接下来我将这一个月内我接触的知识点铺展开来,也给大家一点参考。
**算法:**LeetCode,把链表、排序、树标签里所有简单类型的题目练一下手。特别是排序,冒泡、快速、二分、选择、归并一定要达到手写的水平!
**数据结构:**Java的HashMap——7和8的区别、ArrayList、LinkeList。Android的ArrayMap、SparseArray系列。还有阻塞队列ArrayBlockingQueue、LinkedBlockingQueue。HashMap的结构和细节是遇到最多,建议仔细看一下源码,一定要有自己的理解(划重点)。把HashMap如何存储、如何查找。hash碰撞,以及内存利用率这些问题理解一下
**设计模式和架构:**准备一些自己拿手的模式,在网上查一下资料。准备一些套话,关键词耦合,二次修改方便,外部不用关心内部实现等等。MVC、MVP、MVVM三种,起码要了解两种,并且能清晰明确的说出,两种架构间的优缺点。
我本身经历过一次MVC -&g