作者:opLW
先唠唠嗑,后面再附上干货。
1. 成长经历
-
初见 依稀记得自己是大二下学期开始慢慢接触的Android开发,接触了第一本Android书《疯狂Android讲义》。至于为什么选Android开发,大概是因为想把自己的想法在可见的产品上实现,想拥有自己的一个APP,想亲手制造这些有趣的东西。
-
不安 - 坚定 那时候接触到“大前端”这个名词,网络上也是充满“Android不行了”的声音,自己也感到有点不安。但仔细想想
1.这都是技术进步带来的影响,没有人可以阻止,作为一名程序员,唯一能做的就是不断学习;
2.一个新技术的产生必然来源于对旧技术的改进,新老之间难免有相似之处,所以即使是一个技术年代比较久远,相信也有值得学习的地方,也能为新技术的学习提供支持,所以学习老技术铁定不亏。有了这些想法之后,自己也就坚定了Android的学习之路。
-
鞭策 大三上学期,第一次参加Android相关的比赛,和小伙伴们准备了许久,想着大展身手,没想到却迎来当头一棒,深深感受到自己的渺小。无论是产品的设计,抑或是技术的使用,都不如其他组。自此决定要捉紧自己的学习。
-
春招 大三下学期,正值春招。此前对互联网招聘没有什么认知,也没有什么准备,只见身边的同学都在面试,自己也匆匆忙忙投了些简历,也经历了几场面试。最终由于学校安排的实训,实习也没能去成。不过几场面试下来,也让自己再次认识到自己的渺小:
1.对于自己做过的项目没有充分的认知。(面试官问起你这个项目有什么亮点时,哽咽了😥)
2.表达能力不够。(面试官问起问题时,知道怎么回答,但是没有说清楚😥)
3.知识太零碎了。(面试官问起某方面的知识只能回答一二😥) -
备战秋招 结束春招之后,三件事成为了我的日常:
- 学习学校课程
- 准备英语六级
- 复习基础知识 在三者中的时间占比最大,主要进行知识点的回顾和系统的学习。无数个白天视频配代码,无数个夜晚操场看OS:
1.《java并发原理与实战课程》
2.《数据结构与算法之美》
3. 《操作系统原理》- 北大陈向群
…
-
决战秋招 这大概是大学最难忘的日子,就和高考最后的冲刺差不多。
- 过程的恐惧
- 对投递简历的恐惧 生怕自己准备的不够充分,但看见别人都已经开始面试了,总想投出第一份简历,试试自己的份量。
- 对迟迟收不到面试通知的恐惧 终于打败内心的恐惧投出第一份简历,但左等右等等不到面试的消息,于是开始担心自己简历不过关。
- 对面试的恐惧 终于第一场面试到来了,但还是害怕,怕自己表现不好,丢失了这个宝贵的机会。
- 对面试结果的恐惧 终于使尽浑身解数,面试结束了。好了恭喜你进入下一个阶段的恐惧:我的状态怎么还没有更新啊?面试官说几天内给结果,可都过去几天了,怎么还没消息,我是不是挂了呀?😭太难了
- 面试结果 大大小小总共面了30场左右,下面列举主要几个:
因为网易在广州(离家近)、有大厂名气而且是自己向往的公司,所以最终在一盒月饼的收买下,自己慢慢的放弃其他面试(快手、虎牙、酷狗、欢聚时代等),尘埃落定进入网易。公司 结果 阿里 三面挂 腾讯 多次被捞后主动放弃 字节跳动 两面挂(被吊打的最惨的一次,面试官各种深入,问到你说不了话) 拼多多 三面后挂 蘑菇街 四面后通过 CVTE 三面后通过 汇顶科技 三面后通过 网易有道 四面后通过
- 过程的恐惧
2. 干货分享
-
Android入门 入门Android并不难, 《Android疯狂讲义》、《第一行代码》 等都是入门的首选。个人觉得入门就是会使用的意思,上述书籍都比较类似工具书,教会你如何制作一些简单的Demo。
-
Android进阶 进阶Android需要更多的努力。《Android开发艺术探索》、《Android自定义控件入门与实战》、《Android源码设计模式解析与实战》 等都挺不错的,每一本都值得多次阅读。自己前前后后读了《Android开发艺术探索》大概三遍左右,每一次都有新的体会。
- 《Android自定义控件入门与实战》带你熟悉使用Android的动画、绘图等,惊艳的UI效果全靠它。
- 《Android开发艺术探索》带你理解Android的核心概念如:Binder、事件分发、绘制流程等。
- 《Android源码设计模式解析与实战》融合设计模式和Android源码,能将对源码的一知半解串联起来,满足你对源码的好奇。
-
Android开发相关框架
- Glide 流行的图片加载框架。
图片加载框架最全解析郭霖大佬的博客,虽然版本有点老,但是永远的经典。
- Rxjava (提取码:yvv1)线程切换、异步处理框架,Android中少不了各种线程切换、回调。
- Retrofit(配合Rxjava进行网络数据的传输)、EventBus、Jetpack等等
- Glide 流行的图片加载框架。
-
其他Android学习资源
- Android官方中文网 最权威的学习网站;
- Android官方codelab 官方的模板代码,配合着学习新的知识最合适不过;
- Android源码查看 汇集各个版本的源码,解决IDE查看不了部分源码的问题;
- WanAndroid 鸿洋大佬经营的网站,汇集各种资源,学习和分享的好去处;
- 安卓巴士 Android社区,同样汇聚了各种资源;
- 袁辉辉大佬的博客 专注于各种源码的深入解读,值得佩服;
- 启舰大佬的博客 不想买《Android自定义控件入门与实战》,看这个就够了;
- 陈小缘大佬的博客 学习完自定义控件基础知识后,力荐学习这个博客,每一篇都是精品,都会让你忍不住打开IDE,动手实现。
-
Java学习
- 《Java核心卷1》、《Java核心卷2》 Java入门书籍。
- 《深入理解Java虚拟机》 学习完虚拟机,才能理解JVM语言的内存管理,才能写出更好的代码。
- 《Java并发编程实战》 、《java并发原理与实战课程》 (提取码:s66a)
-
Kotlin学习 目前Google主推的Android开发语言是Kotlin。同样都是JVM语言,但各种语法糖使得相比于Java减少了大量的代码,个人觉得学习多一门语言对自己绝对有好处(Kotlin的各种语法太香了😁)。只要你接触Kotlin你肯定会爱上它的。千万提前考虑这个问题:Kotlin相比于Java有什么优缺点?因为只要你跟面试官提到Kotlin,这个问题一定会出现。
- 《Kotlin实战》、《疯狂Kotlin讲义》 个人觉得看书籍学的比较快。
- Kotlin官网、Kotlin学习视频
- Kotlin协程是需要单独拎出来的部分,前段时间使用
Retrofit+Kotlin协程
代替Retrofit+Rxjava
进行网络传输简直爱不释手,但初见协程这个概念,确实很难一下子理解。下面介绍几个协程学习资源,建议先看完官方博客,然后再看视频加深印象
-
其他计算机基础知识
- 计算机网络:《计算机网络》-- 谢希仁
- 操作系统:《操作系统原理》–北大陈向群
- 数据库:《SQL必知必会》-- 陈旸(极客时间)
- 算法与数据结构:
- 《算法》
- 《数据结构与算法之美》 – 王争(极客时间) (提取码:kpze)
- 数据结构可视化练习(算法学习网站)
- leetCode中文网 算法训练必备
-
公众号推荐
- 《玉刚说》、《鸿洋》、《郭霖》 – Android
- 《程序员小灰》《五分钟学算法》 – 算法
- 《码农翻身》 – 计算机基础
4.面试心得
- 牛客网 互联网招聘必备
- 基础学科题库、公司笔试真题、模拟面试、前人的面试经历等,通过刷题提高自己的知识面。
- 活跃的社区互动,从此你不再是孤军奋战,可以及时了解招聘动态、投递简历。
- 笔试 现在基本上每个公司都需要笔试(即使内推),而如果笔试不通过,那么连见到面试官的机会都没有,更别谈面试了。
- 准备方法 有些公司笔试会考察少许基本的计算机知识,但大部分公司主要考察算法与数据结构,因此刷题就很重要了:
leetCode中文网 训练算法与数据结构;
牛客网历届公司真题 就像高考要做往年试题一样,互联网笔试也要;
- 准备方法 有些公司笔试会考察少许基本的计算机知识,但大部分公司主要考察算法与数据结构,因此刷题就很重要了:
- 面试 面试的表现最终决定你是否被录取。扎实的基础、通俗易懂的表达能力都很重要。
- 准备方法 主要以下三步:
-
总结自己的项目或实习经历 如果有针对应聘岗位做过的项目,那最好不过了,面试官往往会针对某个项目与你进行深入的交流,那样两个人就有话题了,面试才能顺利的进行。
- 总结点主要有两个 1.项目的亮点;2.项目的难点以及相应的处理方法。
- 思考何为项目的亮点 以前我特别怕面试官问我项目的亮点,难点。因为我实在想不到自己的项目有什么亮点,总觉得自己的项目很平常,没什么好说的。后来想想一个应届生能做出什么大亮点?只要将自己觉得自己写的不错的地方说出来便可。
- 描述亮点的方式 为了让面试官别再问我这种问题,而是让面试官一目了然知道自己做过什么,于是我的简历这样写:
将自己认为项目的亮点按上述方式陈列,至此再也没有面试官问我项目的亮点了😁 - 准备项目问答 我将每个亮点要回答的内容,事先整理做成笔记,然后多次练习,这样就能得心应手了
-
查看前人面试经历 储备基础知识
笔试面试知识整理 ;
厘米姑娘总结的Android面经 腾讯大佬详细总结了Android开发面经,足以应对面试;
牛客网面经汇总 最丰富的面经资源;
剑指offer在线编程 划重点了,这本书面试大厂之前必须看(还记得自己第一次面试阿里时就吃了没有看的亏)。由于面试的时候往往时间不是很充沛或者电话面试没办法做题,那么为了考察算法部分就会简单从《剑指offer》中出题; -
进行实际的训练 有了基本的知识储备,但通俗易懂的表达能力是需要训练的
牛客网AI模拟面试;
在面试心仪公司之前可以找几个难度较低的公司练练手,多训练几次,表达能力就上来了;
-
- 准备方法 主要以下三步:
- 总结 在面试了近30场后得出以下结论:个人觉得面试时除了表现自己的基础能力之外,更重要的是要向面试官表现你的
- 思考能力 如:在哪里见过某个框架、设计方案,但你觉得它有哪些地方还不够好,应该如何改进。即使说错了也没问题,主要表现你的思考、辨析能力 。
- 表达能力 如:画图表达自己的设计思路、用比喻说明两个事物之间的关系、适当的BodyLanguage。主要体现自己的沟通能力。
- 总结能力 如:自己经常做某件事情,然后总结出自己特殊的解决方法
4.总结
简述完自己的经历、分享完干货,分享完面试心得。可能有不足的地方,还希望大家指正,未来继续努力🧐。
万水千山总是情,麻烦手下别留情。
如若讲得有不妥,文末留言告知我,
如若觉得还可以,收藏点赞要一起。
opLW原创七言律诗,转载请注明出处