笔者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了字节跳动一直到现在。
看到这个帖子,想到还有很多不知道如何展示自己技术实力的小伙伴,就写了这篇回答。
关于“我认为自己能够又更快又稳的做好开发工作,能够深入的研究框架,源码,解决一些疑难问题,而我要怎么才能让面试官也这样认为?”
我认为楼主的困惑在于如何展示自己的亮点以弥补不足(准备面试题不充分)。这是个学问,我认为是远超你背题的意义
1、无论你是做前端 /后端 /框架 /底层硬件 /算法,你所服务的最终是一个手机 app。所以你务必要有一个成品 App 作为展示(非 demo )。这比一通把面试官唬懵比的胡诌更能打动他(对方水平越低,这个越有效)。最好同时有一个竞品作对比,凸显优势(竞品当然是你自己选择了)。如果对方开始问你是怎么实现的。这就到你的主场了。
2、你要有除了 App 开发以外的特长。这个你提到了 TF,正好可以用上
3、你需要面试预演。没有人的话自问自答,有人配合你的话更好。目的就是,把话说清楚。说起来简单,但是很多初次面试的人连话都说不好。这直接影响人第一印象。对于技术面试来说,更需要注重用词。配合 1 使用效果更佳
要不要去刷题 /背面试题。我认为是要的。(上面说的是一个准备不充分的情况)
1、面试更加踏实,还可以作为自己临时的应答储备
2、彰显态度。“花很多时间去背题”本身就是对面试的重视,至于效果如何另说。
3、对自己有的知识查漏补缺,巩固深化。
怎么看都是好事情。如果面试官看出你刷题并认为刷题是一个不好的点,那是他境界还太狭窄。
Android 技术的发展。在人才市场来看真的是头重(前端)脚轻(后端),会有这种窘况也是正常。而 LZ 你三年技术经验,我觉得视野应该不仅局限于 Android。
1. 提升通用技术能力
The more things change, the more important it is to know the underlying principles.半衰期长的技术要打好基础,也就是更加通用的技术。一来通用技术如数据结构和算法、计算机网络、操作系统、计算机系统结构等,对技术的深层理解有很大的帮助,二来这类技术在不同的语言和技术方向上切换时是共通的。
2. 提升软实力
软实力实际上也是一项通用的技能,甚至比第一条更加通用。
良好的沟通可以缩短开会的时长、节省相互之间的沟通成本,也使得团队合作更加愉快。
不错的文档表达能力可以省去不少的重复沟通。
懂得规划自己的时间,上班时能更有条不紊地完成任务,下班也能高效地规划业余时间的学习。
懂得反思:为什么这个任务预计五小时能完成,却变成了三天;为什么这个需求要这样做,这么做是最合理的吗,还有更好的方式吗
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
?
对问题、业务和自身的更多思考有助于更好地发挥和展现你的技术实力。
3. 选择一个细分领域不断深入
个人认为一个较好的学习方式是先优先广度遍历,即粗略了解自己领域的各方面知识,然后优先深度遍历,即选择一个自己感兴趣或者觉得值得深入的方向深挖下去,等到这个方向学习研究得差不多了,再去深入下一个方向的技术知识。
例如:插件化技术、响应式编程、组件化框架、系统架构等进阶技术,承托着业务之下的基础框架,能够使得开发者在面对需求和功能变化的时候有更快的反应和更优雅的行动。
Android现在细分的领域非常多,逆向安全、音视频、物联网、SDK开发等等,可以在这些领域中选择一个并不断深入。
若是从时代背景的角度考虑,当下处于信息时代,用户接收和喜爱信息传播的形式一路从文字、图片、音频、视频,到了如今的直播。音视频会是一个不错的选择。其中会涉及到音视频编解码和音视频同步处理、特效处理、合成等等技术,对于Android 底层源码的理解也十分有帮助。
如果你从事Android开发,具备1年以上工作经验;如果你希望深入浅出了解UI/NDK开发、性能优化、框架体系、Flutter开发等技术要点,并渴望实现技术和职业成长上的双重突破,我给大家提供了以下福利,完全免费:
完整版资料已经整理成为PDF文档,感兴趣的朋友可以点击此处,快速获取!希望能帮助到大家!