最后送福利了,现在关注我可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
前序
从我高考成绩出来那一刻开始,从我在高考志愿上填上“计算机科学与技术”这几个当时在心中堪称“神圣”的几个字开始,我就已经把进入中国互联网最高殿堂“BAT”作为我整个大学奋斗的目标,哪怕我就读的是一所位于内陆的双非一本大学我也认为我能达成目标。
但是当我踏入大学校门开始,发现一切都与自己想象的不一样。进入学生会希望能够锻炼自己的脸皮与组织能力,却发现我的任务只不过是去查查别人班级的出勤,迎新晚会时站站岗;踌躇满志地参加学校八大团队中的ACM团队的面试,寝室里5个人去笔试却只有我一人没有通过,去找团队负责人见面,却被戏弄嘲笑(这件事对我打击特别大,现在都还有点耿耿于怀);希望大学教授能够绘声绘色地传授知识,却发现毕业自清华大学的博士教授居然连话都说不清。
还好我才大一,充满着干劲和对计算机的兴趣,我开始了自学之路。在老师还在讲计算机概论时,我就自学完了C语言,然后凭借着自己的兴趣给自己选定了Android开发这条路,从此便一发不可收拾,喜欢上了自己当自己老师的感觉。
在大二这一年,做了几个APP,其中几个还上架了酷安,有个千把的下载量,与用户交流的感觉让我成就感大增。时间不停的走着,我也从未停下过我的脚步,距离2020春招只有一个学期的时间了,所以我给自己列了一份计划和书单,让自己能够做好2020春招的准备。由于准备充分,最后拿到了包括阿里京东网易在内的5个offer,谨以此文分享给大家我的面试经验。
====================================================================
笔试
很早就了解了互联网公司面试必考,也是一个程序员必备的内功,我的算法水平也就是刚及格的水平,肯定是不能达到面试所需的水平的,于是我在去年暑假7、8月份(大二下期暑假)便开始有计划的在LeetCode上刷题,一开始是计划每天刷8道Easy难度的题,后来越刷越熟练后便每天刷4道Medium和4道Easy,然后转变为每天刷4~6道Medium。一个暑假下来刷了200多道题,成果还是很不错的。
此环节我的总结为在Leetcode上先易后难,然后将题目分类突破(leetcode上自带题型分类)。
手写代码
因为在面试过程中,面试官可能会要求你手写代码(根据我自己的经历来看,这个概率差不多是50%,要看不同的公司和面试官的喜好)。根据我的总结,认为手写代码有这么几个特点:
-
难度相比笔试难度较为简单。
-
由于是手写,与在键盘上敲代码有非常大的不同,有可能你在键盘上敲的飞起,但是你在纸上却一行都写不出来。
-
形式较为灵活,在没有思路时可以与面试官交流,就算最终没有写出来,你的思路得到面试官认可也是可以通过面试的。
针对这个环节,我准备了一本书,就是大名鼎鼎的《剑指offer》(必读!!!)。
这本书可以说是为我后面拿到满意的offer立了大功,可以说这本书让我在面试中不再惧怕手写代码。这本书是C++写的,但是并不妨碍阅读,你正好可以将它翻译成Java检验自己是否掌握。这本书我读了两遍,第一遍在电脑上敲了一遍,第二遍手写了一遍。建议将此神书完全掌握。
当然为了方便大家阅读,我把电子版放在了我的网盘
如果这份学习笔记对你现在工作或者以后跳槽有帮助的话需要的可以点赞+评论后 关键字私信我【剑指offer】 获得网盘下载链接!
【或者直接查看链接】
面试问题准备
Android方面,由于在之前只为了做项目学过一点,而且还只是囫囵吞枣式的学习,没有深究其原理,在这方面我几乎经验为0。为了能在我计划的12月份之前学习完所有Android方向的知识,我在网上搜寻资料后给自己列了一份书单。
-
Android源码设计模式.九月读完
-
Android开发艺术探索 十月十一月读完
-
Java并发编程的艺术 一月读完
-
Android内存优化 二月读完
-
Java编程思想 (第4版)三月读完
记忆神器–幕布
一开始我也觉得这么多繁杂的知识点,就算当时记住了,面试时也会忘,如何记住这么多的知识点呢?我后来在网上找到了解决办法——利用幕布含有层级的笔记来记录重要的知识点。我是这样利用幕布这个工具的:
- 按模块分类
- 模块细分
- 按层次记录知识点
1.还可以一键生成思维导图
- 如:Android框架架构体系
由于幕布有Android和iOS的客户端,所以随身携带很方便,随时可以掏出手机来背一下。在排队面试时也可以掏出来看看,说不定一会儿面试就问着了呢。。。
简历
制作简历肯定也是重中之中,你之前准备得怎样,在简历上就要体现出。在这里我总结了几个简历制作的要点:
-
不会的不熟悉的千万别写上去,写上去就是送人头,面试官会把你问到cry。
-
简历上绩点、项目、获奖经历、开源作品在校期间至少有一项吧,一定写在简历上称为亮点。
-
程序员的简历不要太过花哨,我是使用超级简历的模板,比较简洁。
====================================================================
因为我完全没有面试经验,从来没有经历过面试,于是想着在去BAT这类大公司面试之前先找成都的小公司练练手,积累点面试经验。于是三月份开始就有成都的小公司开始约我面试。前前后后一共大概投了30多家公司吧,通过笔试约面试的大概十家左右。面试的问题没有记录,所以记得不是很全,但是大部分考的很基础,基本都是按着你的简历来问的。
云帆数联(已挂)
这家公司是我面试的第一家公司,公司规模很小而且面试体验极差,我去的时候HR让我先坐一下,一会儿面试官就领我到会议室面试:
1. 自我介绍
2. 如何设计一个抽奖系统,比如满 200 抽 20,满 500 抽 50
3. HTTP 与 HTTPS 有什么区别?
4. 讲一讲HashMap吧
5. 你在做布局优化的过程中用到了哪些工具?
然后就没了,我穿越大半个成都来这儿面试就问了我几个问题,耗时才10分钟,我还没来得及紧张就结束了?然后他说面试就先到这儿了,如果有通知再联系我…
知道创宇(已挂)
知道创宇是我在成都面试的第二家公司,好像拿了腾讯的投资所以公司地址在成都***三街的腾讯大厦里。这家公司与上家公司形成鲜明对比,整个面试过程持续了一个半小时还多。
1.算法题 两个栈实现队列
2.算法题 输入一个数组,想一种方法让这个数组尽可能的乱序,保证功能能实现的情况下时间复杂度和空间复杂度尽可能的小,可使用随机数函数。(面试官最后说了 O(n)的时间复杂度能实现)
3.写一个单例(自己写一种就行)
4.ActivityA -> Activity B -> Activity A
Activity A 启动模式为 singleTask
Activity B 启动模式为常规模式
问 A 启动 B,B 又启动 A 的生命周期调用顺序?
5.你刚才提到 onsaveinstancestate() ,说一下调用时机,它用来干什么的。
6.onsaveinstancestate() 保存的那个参数叫什么?Bundle 里面都放一些什么东西?怎么实现序列化?Parcelable 和 Serializable 有什么区别?
7.数组和链表的区别
8.HashMap 的结构以及原理
面试官非常好,聊得很愉快,可惜得是我因为面试经验不足加上本身也没有准备充分,感觉答得不好。面试官找来HR问了下实习时间就让我回去等通知了。第二天后我就收到了人生中第一封拒信…
CVTE(已拿offer)
CVTE是我面试的第一家大公司,通过了笔试后就通知第二天到春熙路一家酒店面试。第二天我早早地就到了酒店大堂等待面试,结果没想到刚一扫二维码排队就轮到我了。服务人员领我到一间很大的会议室,里面有很多面试官,每个面试官前有编号,我一下就看到了面试我的面试我的面试官,也是我第一次看到面试官西装革履。
1.算法题 一个字符串,求最长没有重复字符的字符串长度
2.string stringbuffer 和 stringbuilder 区别
3.final finally finalize区别
4.数组和链表的区别
5.HashMap 了解过吗
6.Tcp 三次握手四次挥手
7.get 与 post 的区别
8…
面试官结束面试后让我回去晚上等通知,晚上果然收到通知让我参加终面(HR面)。
HR面还是那家酒店,我和一个前端一起面(特别扯的是后来我在牛客网上问一个CVTE的问题还和这位前端兄弟在网上偶遇了),问了我有没有女朋友啊,父母是做什么的,如果阿里和CVTE都给你发了offer你回去哪家这类问题,持续了大概20多分钟。晚上回去查看状态发现终面已经通过了,这意味着我将收到人生第一份offer。大概一周多后收到口头offer,两周过后收到正式offer。收到第一份offer后心里一块石头才真正落了地。
最后
这里我希望可以帮助到大家提升进阶。
内容包含:Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。
喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMjQzNjc0MC01OTA0Mjg2Yjk1ZjRkYmEw?x-oss-process=image/format,png)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!