看了知乎上面萧丼陌大大给出的编程入门指南后,开始对编程基础的恶补。还有网上各个大大给的一些推荐,最后买了《算法》第四版和《Head First设计模式》(还有好多书,因为自己都没完整刷过这里就不列出来了),开始了苦逼的算法学习。后面变成上夜班还是一个人值班,没什么事做就每天上班的时候看《算法》。实际这书更多的说数据结构,还好大学的课程涉及到相关一点知识。
这里面不理解的都会重复的看,可惜后面家里有些急事。算法看到了图那一章就暂停了。事后回来转战看了《Head First设计模式》,也是一点点慢慢看完,因为缺少实践,也就只懂基本概念。期间也刷了《图解HTTP》这部科普书,算是对HTTP有些概念了。还有因为平日遇到不会的知识都会搜索一下,这过程也看了很多杂七杂八的知识。
第四阶段,学习知识巩固
其实期间自己遇到很多事情,学习阶段期间已经不太明显。各种理由后,答主决定辞职脱产学习,此时是15年最后一个月了。最后安定在广州后继续学习,学了一轮其他知识后,结合网上一些面试总结和分享的经验又回去看了一遍Java基础。接着就回到android的学习上了,跟着谷歌的官方教程慢慢看,网上有大大们翻译的中文版。
其中略过TV等相关的内容,然后觉得得实操了。偶然发现Github上有知乎日报的API分析就开始了山寨。目前阶段,实现了部分日报的功能后,发现自己的代码设计有待加强,去看了不少代码规范还有什么MVC等模式也重看了《Head Firest设计模式》和《算法》第四版。开始重写一遍山寨的知乎日报。
求职阶段
胆子不够大,简历说实话。2月末开始投,到第一份offer为止,在某勾投了27份简历,19份被查看了,最后就3家有机会面试。忽略第一家奇葩公司外,剩下两家都能拿到offer。薪酬就是普通院校应届生的水平。(都说初级岗位竞争大……)
求职过程,说起来都是泪,简历基本石沉大海。为了撑下简历,用Design支持库的控件和常用的第三方库写了一个新的Demo。上面耗时一个星期,期间没有面试。然后刷了任玉刚的《Android开发艺术探索》。 当一个星期后我看完了,还是没有面试机会。说实话自己多少有些迷茫了,也不知道往哪个方向提升,于是去复习下基础吧。
过了一遍之前看的书,重新复习了排序和查找的算法。期间又过了一个星期,也还是没有面试通知。接着看《Java编程思想》,看了一半。好不容易终于有一个面试机会了,结果是一家奇葩公司,没有自己的定位,自己的产品内存泄露就算了,还有崩溃的bug。(毕竟第一个面试,答主还是很紧张的,就下载了产品使用了一下,顺便试试之前发现一个容易出现的问题,有些软件没注意编码的问题,开发只考虑中文的系统环境,你系统换成英文有些界面就会崩溃的了)面试期间跟面试官说了一下,面试官只是一笑而过。
期间也没有一个像样的技术问题。后面跟老板谈薪水,才明白就想找个廉价劳动力而已。答主知道市场不好,但还是不傻。这里写下来是提醒一下各位转码农的朋友,不要急着找工作,就忽略了公司的情况啊。
有时感觉转行也是要看点运气的,在走出第一家奇葩公司后,就收到第二家和第三家公司的面试邀请。刚好同一天,一个上午一个下午。
面试阶段
上午的公司直接是技术面,问的东西都是基础的东西。面试官看了下两个demo后开始从网络请求要怎么处理的这样问了起来……简历写的技能点全部被问了一遍。(这里建议简历上的技能点就不要乱吹了)现在写下自己能想起的问题,记忆有些模糊,大家参考下就好了:
1、快排怎么实现的?时间复杂度是多少?哪种排序可能比快排快?
2、(追问了)希尔排序是怎样的?
3、二分查找时间复杂度是多少?最坏情况时间复杂度尼?除了二分查找还有哪些查找?
4、说一下你了解到的Java库有哪些类是线性安全的,哪些不是?
5、(答主提到了StringBuffer和StringBuilder)要是在多线程操作下会怎样?
6、说一下你Android开发期间用到的容器类,有什么区别?
7、(答主提到了ArrayList、LinkedList、HashSet、HashMap)ArrayList和LinkedList的区别是?要是我想用set但需要有序的遍历要怎么做?HashMap大概怎么实现的?(追问了)为什么在多插入的情况下选择LinkedList?二分查找不能用在哪儿?(答主当时这里蒙了……)后来面试官说,假如用在LinkedList上会怎样?
8、要是我要对一些自定义的类排序要怎么做?
9、四大组件分别有什么用?service是运行在哪个线程?(追问)service要运行到后台线程要怎么做?
10、说下Activity的生命周期是怎样的?(追问)onNewIntent()方法什么时候调用?
11、说下Android的动画有哪些,区别是什么?
12、说下view的绘制流程和事件处理机制?(追问)MeasureSpec有哪几种,分别对应是什么?
13、bitmap的优化要怎么做?内存泄露是什么?有哪些情况会发生、如何避免?
14、(答主提到了弱引用)弱引用是什么?还有那些引用?
15、你一般怎么处理Android的多线程,怎么保证线性安全?
总结
还有一些我记不得了……(我在回答的时候不仅单纯的回答问题,有些带了这样做是为什么,或者额外补充一些知识点。算是以前面试总结的一点经验,尽量给面试官你好像会很多的样子……但吹牛要把握好度哦)下午的公司,就没问得那么细了,首先笔试,都是一些网上看到的面试题。然后面试官结合笔试题目问了些常见的问题。(虽然看着他电脑打开着AndroidStudio,但感觉技术功底不是很厚……)最后答主还是愿意去办公环境没这么好的第一家,毕竟有大牛在。
知识总结
每个程序员朋友都有自己的架构师梦,可往往梦想是美好的,现实又是残酷至极的。不努力不奋斗,可能就会在基层一辈子止步不前。也许有很多朋友还会说,程序员也是干的年轻饭,年纪大了也就爬不上了,脑子跟身体都跟不上了。那既如此,又为何不趁着自己还年轻,好好把握机会,努力一把,美好的未来才有机会和你招手!当然咯,这也仅仅代表我个人的观点,毕竟一百个人有一百个不同的脑子,就会有成千上万种不同的想法。
不过,只一句,如果你还在做这一行,还是一名程序猿(媛),想走上坡路的你,也许我这到手的学习进阶笔记 可能会对你有所帮助。
-
自行下载直达领取链接:【点击我,即可获得!】
《Android高级架构师面试指导+2020大厂面试真题》
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/00d08fb701a4f3745cd9e4330f91a1ea.jpeg)
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
713687734587)]
[外链图片转存中…(img-K0gc7o4u-1713687734589)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!