你是否和我一样,也曾因为自己的学历低而烦恼?
首先申明我是一个大专生,很烂的一个学校,大学学Android,我什么都没学会,四级考到大三才过,可想我大学成绩有多差。其实我高中小学成绩可以,当年高考与二本线也就差几分,三本没去去了专科,虽然不后悔,但有深深的遗憾。
因为很多公司,尤其是知名公司招聘第一条就是本科以上学历。所以大多数情况下门都进不去的。所以本人绕了一个大大的圈子,历经四年才“真正”进入阿里,享受正式员工的福利待遇。
这些年的经历,本人深深感到身边圈子的重要,因为起点低,身边都是普通的人,自己的视野打不开,连努力方向都不知道。中途想改变,却茫然无力。最后只能一步步去更好的公司,与更优秀的人共事。终于花了四年光阴,极好的运气,赶上了别人的起点。
终于接到了阿里的外包,优酷的工作机会。犹豫了很久,虽然是外包公司,但想着能去更好的公司,与更优秀的人共事。所以还是果断辞职去了。
学校的东西在公司根本不够用,写需求时比较吃力,尽管很努力地去想去写了,但是写出来的代码质量自己都觉得差,也被别人怼过几次了。每天压力都很大,很焦虑。
为了留下来,代码写不好,懂得又不多,只能经常向公司老员工请教,人生的发展,离不开贵人的相助。同组的高爷,当时就已经是阿里P8架构师,给了我很多帮助和鼓励,除了在工作中帮助我分析解决问题,还建议我多学习和注重能力提升。
Google几年前就开始走“KotlinFirst”的路线,目前很多官方的文档和Demo都是使用Kotlin语言作为默认,Kotlin的重要性不言而喻。
AndroidStudio作为Android默认的开发者工具,目前的版本更新已经解决了诸多之前的性能问题,虽然目前对硬件资源的要求仍然比较高,但是一旦你接受了这个设定,真香预警!
AS主要需要熟悉下面几点
熟悉各种项目的目录结构,资源文件、Gradle文件
这部分不必做过多的解释,下面列出的就是大家熟悉的Android四大组件,Android开发的基础
Android默认的布局很多时候都没法满足设计的需求,这时候就需要自定义View,你需要掌握下面几个知识点的使用
相比HardCode,使用资源文件会让代码的可修改性更高
许多人提倡App使用单Activity+多个Fragment的组合,可见Fragment在开发中的重要性,但是Fragment的管理又是一门技术,Fragment的坑,只能在实际开发中慢慢填平了,不过下面的Fragment基础还是要牢固
这里列的同样是一些功能组件,需要知道这是什么东西,基本的用法
AndroidApp默认使用Gradle进行编译,关于Gradle的使用必须要熟悉,以及如何区分开发版本和Release版本,以及国内特有的多渠道打包技术、以及ASM等
理解Thread非常重要,AndroidApp只有一个主线程,其余的我们称之为工作线程,我们的很多工作需要再工作线程和主线程直接切换,如何高效创建和释放线程、线程池、线程间通信、Message-Looper-Handler模型这些知识点都要了熟于心,另外进阶的话Binder通信也是需要掌握的知识
内存泄漏是一个很大的专题,包括Java内容泄漏和Native内存泄漏,涉及的知识点非常多,可以单独拿出来做一个大的知识栈。一般来说,Java内存泄漏会比较好检测和修复,但是Native内存泄漏就会比较难。
常见的一些数据保存流格式
Jetpack是Google推出的一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。Jetpack包含与平台API解除捆绑的androidx.*软件包库。这意味着,它可以提供向后兼容性,且比Android平台的更新频率更高,以此确保您始终可以获取最新且最好的Jetpack组件版本。
安全方面接触毕竟多的应该是加密、解密、混淆等,毕竟用户数据安全大于一切,不重视这个欧盟会教你做人
音视频开发则需要从以下四个方面进行入门学习和提升。
1.多媒体系统
作为一个有进取心的Android开发者,拥有自己的技术栈和规划非常重要,技术栈确保你有足够的市场竞争力,从而形成护城河;技术规划则可以给你一个明确的学习目标。