- 假如你今天学了Google提供给我们进行应用开发的Jetpack框架组件,那么你就可以尝试用这个Jetpack组件去写个属于自己的app。
如何提高自己的动手能力
正如Linux之父的那句"Talk is cheap. Show me the code.",嘴上说千遍,也不如直接上代码撸一遍更加令人印象深刻。
说到这儿,可能又有朋友想问了:对于一个从来就没有具体项目经验的人来说,该从何做起呢?
这里我还是推荐大家多到github或者gitee这种开源代码托管平台去找一些优秀的开源项目,这些项目很多都是历经了各种复杂业务考验的高价值项目,临摹他们的代码,可以极大地提升我们的技术水平和编码水平。
那么当初我是怎么锻炼我的编码能力的呢?下面我就简单介绍一下供大家参考:
**1.**首先到开源代码托管平台寻找到适合自己的目标项目。
**2.**阅读项目的代码,初步了解项目的实现原理以及架构。
**3.**自己新建一个项目,然后按照自己的理解去自己实现一个类似的项目,不懂的时候可以借鉴或者copy目标项目的代码(目标项目就类似于参考答案)。
**4.**最低的要求是能够正常运行并且实现目标项目的主要功能,要求高一点的就是能够有一些属于自己的优化点或者特性等。
**5.**最后对自己做的这个项目进行归纳总结,优秀一点的可以写一篇README介绍或者原理分析。
如果你能够按照我上面所说的,来回写个4~5个项目之后,相信你的动手能力一定会有质的飞跃。
关于学习和面试的感悟
技术积累要从日常做起,要做到随时出去面试都能有地方去,未必厉害到那种去大厂的地步,但是起码保证自己不会长时间失业。
学习
**无论工作多忙该读的源码,该刷的题都不能落下。**要明白,私企都是说翻脸就翻脸的,整不好哪天你就会被裁(疫情开始后一起进公司的应届生都被裁员了好一些)
必须把自己的命运握在自己的手里,技术积累要从日常做起,要做到随时出去面试都能有地方去,未必厉害到那种去大厂的地步,但是起码保证自己不会长时间失业。
因此在公司的时候没事少玩手机,多看看书和博客,或者clone开源项目源码下来读,这些都是未来跳槽的资本。
我个人其实也比较懒,但是积少成多在没需求做的时候还是学了些东西,主要方式如下:
1、idea装LeetCode插件,有空刷算法(谨慎)
2、博客园看文章。可以利用搜索功能看一些系列文章
3、看书
4、把开源项目fork到自己帐号上然后clone下来看,直接把注释写上去方便以后回看
5、b站也有些很有价值的视频,不过需要自行筛选来看
面试
**有内推一定找内推,而且一定要找练手公司面试。**面试不仅关系到知识储备,还有语言组织表达能力,这个也是要练习的,另外还可以对知识体系查缺补漏。
大厂每次面试,面评都会记录到招聘系统,如果留下不好的评价会影响以后投递(我就是没有从小公司开始,因此吃了亏)
社招面试一般都会有项目面试,包括对技术选型和业务的提问,这些都要提前准备好说辞,另外就是面试官问的问题可以不断深入挖掘,来展现你的技术深度。
一般如果这一面的面试官对你满意,让你过到下一面,他会在面试结束时主动的向你介绍部门的情况,如果面试官对你说了很多他们的业务,那么这一面基本就是过了。
最后就是,第一家公司真的要慎重选择,能去大厂一定去大厂,呆够2年再跳,能选择的岗位会多很多,两年以下年限找工作是真的有些尴尬。
最后
在这里,我想给新手朋友们一点建议:很多时候,很多事情,并不像你想象中的那么简单,千万不要自认为简单而不愿意去做,很多东西只有你亲手去做了之后,才会发现事情并不像你最初想的那么简单。
Android系统学习路线参考
面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责!
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
**帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。**无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。
1、看视频进行系统学习
前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。
2、进行系统梳理知识,提升储备
客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
-
**架构师筑基必备技能:**深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO -
**Android高级UI与FrameWork源码:**高级UI晋升+Framework内核解析+Android组件内核+数据持久化 -
**360°全方面性能调优:**设计思想与代码质量优化+程序性能优化+开发效率优化 -
**解读开源框架设计思想:**热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack -
**NDK模块开发:**NDK基础知识体系+底层图片处理+音视频开发 -
**微信小程序:**小程序介绍+UI开发+API操作+微信对接 -
**Hybrid 开发与Flutter:**Html5项目实战+Flutter进阶
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。
主要内容:
Java 基础(★★)
-
面向对象思想 -
多态 -
异常处理 -
数据类型 -
Java 的 IO -
集合 -
Java 多线程
Java 高级(★★)
-
Java 中的反射 -
Java 中的动态代理 -
Java 中的设计模式&回收机制 -
Java 的类加载器
Android 基础(★★★)
-
Android 基本常识 -
Activity -
Service -
BroadCastReceiver -
ContentProvider&数据库 -
Android 中的布局 -
ListView -
JNI & NDK -
Android 中的网络访问 -
Intent -
Fragment
Android 高级(★★★)
-
Android 性能优化 -
Android 屏幕适配 -
AIDL -
自定义控件 -
Android 中的事件处理 -
Android 签名 -
Android 中的动画 -
网络协议 -
其他
|