个人简介
学渣一枚,2017年6月某空港学校毕业。从事Android开发已经4年,开发过机顶盒应用,做过手机app,21年年后入职新单位从事车载应用开发。
工作经历
因为新公司入职不就主要说说前面的工作情况。
煎熬&没有太多的成长(第一家公司)
处于这个状态并不是因为公司不好,相反是自己表现的不好。在公司时,公司有完善的培训机制(还可以选择其它方向的一些培训,由其它部门的资深开发人员进行授课),入职时有对应的导师进行培训。更加幸福的是每个月老板都会买书给我们看。
既然在这么好的一个环境为什么我还是这样难受呢?总结有下面的原因。
- 心思杂乱。python、js 、web 都想要学习,最终的结果确是什么都没有。
- 贪玩 下班之后很多空余时间都在玩游戏。
- 自身技术基础不够,却又选择了错误的东西进行学习,导致主要工作上没有做出太好的成绩。最终的结果就是被公司拖着走。
茁壮成长&发展
为甚么要在成长前加上茁壮二字,因为相对与第一家公司,个人的技术成长要好太多。
2018年的时候有幸接触到了时间管理,开始学着对自身状态进行调整。有计划有目的的进行学习。每天会提前一个小时到达公司进行技术类书籍阅读。两年时间看完的技术书籍有
Android开发艺术探索
大话设计模式
Android 源码设计模式
Android 进阶解密
随着时间的进行,自己也在项目小组由一个辅助的角色变成项目主力开发,同时自己成长到了中级开发水平,也会和初级的小伙伴进行一些技术交流。
相比于第一家公司,这边并没有一些技术培训和导师指导。但是我的技术成长却相对较大。个人的理解是:内在驱动大于外在。
前景展望
从3月份开始进行面试。前后面试大约有6家,通过几家公司的面试也大致了解到了自身的价值(能拿多少钱)。其中最遗憾的是面试某笔记,前三轮技术面已经过了,结果vp挂掉了。可能是自己表现太积极,因为确实很想去,甚至做好了如果能去愿意接收降薪的准备。
相较于公司的其他小伙伴,我的面试过程还算比较顺利。我认为最好的我们不应该为了面试而准备,而在于平时就应该注重积累自己的技术。
未来要做的事
- 学习数据结构 678月刷完leetcode 最热100题
- 源码阅读总结
- 蓝牙应用层的运行原理(6月已完成)
- 系统binder机制
- 系统Anr原理
- 其它的一些框架源码阅读
工作上的小建议
- 如果你初入职场,在专业知识不是太牢固的情况下建议不要花过多得时间研究其它的一些东西,而是专注于提升自己的专业技能
- 关于职场技能的学习,我们要记住,我们的学习都是有目的,学过之后一定要总结归纳。不要反复的重头在来。
- 关于工作的选择,我的理解是合适最好。就好比将一个成绩极差的学生放在及其优秀的班级,他往往是跟不上老师的节奏的。需要下来花大量的时间来补,而成年人往往缺少这样的时间。
- 关于数据结构和设计模式,许多多年开发的小伙伴居然也有说不重要。举个简单的例子,gradle项目之间怎么判断循环依赖的呢?学习了图的知识,了解拓扑排序。你会知道至少这个是判断循环依赖的的一种方式。不了解他们很多时候只能停留在api调用。而了解数据结构你才有编写一些深层次东西的可能。
- 最后一点,静下心来,做自己想做的事,每一个目标都需要一点一滴的努力。
感谢你看到这里,如果你觉得文章还不错,或者对你小有启发。欢迎点赞转发。
以上就是一枚普通的Android开发者的4年。
希望能够有机会入大厂上岸。
学习上的小建议
架构师筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
Flutter学习进阶
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
Android相关源码解读
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
由于篇幅原因,以上完整学习笔记pdf如有需要,可以点击这里免费获取!
问题
最后问一个问题,满5年经验的Android能够在成都拿到月薪2W吗?