本人 13 年北大毕业,本科读的是信息管理与信息系统专业,和图书馆学是一个系。我的数理能力肯定不是顶尖,高考是靠语文英语拉分的。后来追随男朋友(现在的老公)来美国读了 UCSD,强转计算机专业。我 13 年刚刚入学 UCSD 的时候,连 terminal 也不会用,从本科算法课,操作系统课开始一点点补。来美国上了第一个 quarter 之后,靠老公对我的冬令营,刷题补习,拿下了 Apple,Facebook,Amazon 的暑期实习。14 年暑假选择了和老公隔壁组的实习,因为深知自己计算机水平完全不够,只是会刷题,想和老公近一点,能帮助指导,减少我不必要的压力,同时增加拿到 return offer 的概率。14 年暑期实习表现的很好,实习的 project 也被选上 org 最佳。实习结束后,高高兴兴拿到了return offer。于是我在 Apple 一呆就是四年。
###出发点:
在 Apple 工作的四年里,结交了很多好朋友,深交了几位知己。第一年 exceed,RSU refresh 了工资的 60%,升职成功,超过预期,短暂高兴过头觉得自己是人生赢家。工作更加积极努力。第二年 exceed,股票比前一年多给了一万,基本符合预期,短暂高兴过后是平静。
工作依然卖力积极。也在这一年,我鼓励老公跳槽升职成功,他顿时包裹丰厚,把我狠狠甩在了后面。也听说身边很多同学,升职跳槽成功,真心为他们高兴,努力就有收获。当时我完全没有考虑跳槽,因为这年的项目特别好,我觉得是一个非常好的机会。所以,我同样卖力工作,怀着孕,但是丝毫没有懈怠,代码量还是组里前三。
18 年 7 月份开始休产假。宝宝出生后 7 周我就回去上班了。不久 review 就出来了,第三年 exceed,股票再比前一年多给了一万,感觉有点失望,不是说钱少,而是感觉我再怎么比组里其他人努力,但是基本上都差不多了,再没有惊喜,大锅饭,可预测性太强。同一年,老板也想升职加薪,因为项目带的好,“编出来” 好多 head count,招了 5 位新成员,其中有一位来自 cisco,强推 CI,新成员狂写 unit tests,搬到了 Apple Park。
我们组从原来的家庭小作坊的温馨和谐,其乐融融,变成了企业式经营,所有人都来 “新官上任三把火”,我觉得弄得效率很低。所以,对我来说:
1、组里项目已经成熟,和老板交流后发现明年的项目并没有什么意思。
2、组里人太多,马上就要 re-org,我虽然基本知道我的新老板会是我在组里最要好的朋友和导师,但是,他刚刚变成 manager,肯定要适应,我的升职肯定会受到影响。
3、我想再生个宝宝,那样,基本上最新两年升职没戏了。于是,在 18 年圣诞,我就下定决心,准备跳槽。
###准备过程:
说干就干!
好久没有上 leetcode 的我,打开了网站,一切还是那么熟悉与陌生。当时宝宝只有 4 个月,所以,我的时间比较零散,周中基本上每天 1-2 个小时,周末一天会有 3-4 个小时用来学习。以下按照我的个人经历。你要是能全职准备,或者基础扎实,其实应该很快。
1、热身期(1-2周)
我先开始按照通过率高的开始刷,只挑 easy 的刷,增加信心,找回感觉。这样刷起来很快,我刷了两个周末就刷了 60+道。但是刷到后面感觉没有意思,碰到会做的会做,不会做的还是不会做,没有任何实质进步,再这样刷下去没有意义了。
2、学习期(1周)
于是我开始系统性看书,我老公一直是推荐算法导论,但是我觉得翻译不好,看得不大明白,一看就困。
我觉得基础知识一定要打好,面试的时候,除了 FB,感觉别的公司多多少少还会,不是说考,而是交流的时候,会涉及一些平时的工作的,或者是基础知识。特别是,有的时候我做题很快,面试官没有准备,就会问一些临场的问题,那就什么问题都有可能了。
但是只要打好基础,系统性有个全面的了解,一般碰到没有听过的东西,我直接就说我不知道,好像也没有任何麻烦。但是,要是问到基础性的问题,说不会就不太好了。反正到处都是雷,打好基础能最好的帮助避开这些雷。
3、突飞猛进期(1 个月)
学习结束之后,我又回到了 LeetCode。我开始分类攻克,按照数据结构和算法,拿出几个常见的类型,一类一类的看。包括树,图,dfs,bfs,recursion,linkedlist,hashmap,priorityqueue,等等,leetcode 里都有。按照频率,一道一道刷,理解,掌握方法,融会贯通。在此我推荐一下前几年和老公一起写的书。
我们都是强推以质代替量。保证理解,能考虑为什么这道题要这么做,是先有方法再有题目,而不是一味的做一道题,想一个方法。一道题做了,做一道类似的题,举一反三一下。掌握解这种类型题目的方法。得问问自己为什么这道题能用这个数据结构或者这样做?有没有别的方法?
对此,我还是推荐一定主攻 leetcode 前面 150 道题,基本上要是全部会就无敌了已经。要是保险,再刷刷每个类的高频题强化一下。
LeetCode 都相当经典,高频题肯定也是好题,面试官平时面来面去也就这么几道题,比如我自己基本上就面一道和自己 project 相关的题。他们选考这些题是有原因的。比如可以考多个知识点,或者对一个知识点考的很全面,或者对代码质量要求比较高,或者有多个解法发散思维等等等等。所以都是好题,值得理解。
与此同时,我刷我刷我刷刷刷,一道一道一道刷。
(感觉确实有点麻烦,我在下面给大家整理好了,电子版书籍+我的一些学习笔记+学习视频需要的可以在我的【GitHub】里查看,我免费分享给大家!
4、瓶颈期(依个人了,看什么时候会有这个 “aha” moment,方能进入无所不能)
刷着刷着,就又进入了,会做的还是会做,不会做的还是不会做。瓶颈期来了。。这个时候,我不再那么奋力什么每天刷几道几道了。我开始看做过的题目,开始总结,做笔记。很累,很失望,知道自己到瓶颈期了,再刷题已经没有质的飞跃了。
总结,做笔记,看笔记。开始模拟面试。一开始,绝望,觉得刷了这么久,白板一来又脑子空白了,不知道自己在说什么。没关系,总结经验,继续模拟。我开始花更多的时间去思考,而不是做题目。开始花时间去想明白。
看了一下,我这次一共刷了 200 道,包括前面的热身的60道。
5、无所不能期
我开始一天天进步,不知道什么时候,经过几次模拟面试,我老公说我可以毕业了。我自己并没有意识到。于是我开始广投,开始了我面一个进一个,面一个进一个的旅程。
6、阿弥陀佛无欲无求期
开始了我漫长的 onsite,更多的是我想看看,逛逛不同公司的文化。而且能省去午饭钱。基本上在所有的公司,我都会说,在我现在这个阶段,我真得是无欲无求,我只想找一个适合我的公司,你们也找适合你们的 engineer,我们是 mutually equal and this is a mutual experience.
###笔记整理
- 一、Flutter
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后
这里我希望可以帮助到大家提升进阶。
内容包含:Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。
喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**