评论

收藏

[Oracle] 高龄码农如何在被“劝退”的边缘下立足脚跟,附面试答案

数据库 数据库 发布于:2021-12-26 17:11 | 阅读数:421 | 评论:0

任何一个团队和组织,都会在目标明确后要求每个人能够全力以赴,不折不扣的执行既定的计划,高质量高效率的完成任务,因此良好的执行力也是程序员在一个团队中必备的基础能力。
以上是作为程序员在职场中所需要具备的几项基础能力。除此之外,我认为程序员还需要构建以下几项进阶能力。
2、进阶能力
进阶能力是我们Android程序员能够进入IT行业从事软件开发长久的关键。进阶能力的不同也意味着可以达到不同的职业高度。
进阶能力包括基本的技术能力、架构设计能力和项目管理能力。
基本的技术能力
基本的技术能力是一个程序员在工作中赖以生存的基础。对于一个Android程序员,除了需要深入的理解java的语法知识、jvm的原理和调优、java的高级特性等等;还需要了解常见的数据结构和算法;需要熟悉主流的应用框架,如okhttp、MVC、MVP、MVVM、Glide图片加载框架、RxJava响应式编程框架等;需要对常见的调优技术有实践经验,如启动调优、崩溃调优、弱网优化、UI优化等等;另外还需要对音视频、Android Framework层等领域技术有一定的研究。如果能够对基本的技术能力有了较深入的掌握,基本就可以拿到一份工作的offer。
架构设计能力
架构设计能力是一个Android程序员突破自我所需要迈过的第一个坎。
技术、框架不断更新进步带来的一个新的问题是,许多Android程序员在日常工作中通过简单的复制粘贴,已经可以完成大部分工作,也有一个名词叫“Crud Boy”,泛指那些每天最多做的事情就是简单的增删改查的程序员。重复的复制粘贴或Crud让程序员的思维逐步退化,不愿意思考,随着时间的推移面临被淘汰的困局。如果在工作中,能够多思考总结,逐步积累起架构设计能力,那结果可能是另外一种境遇。
架构设计能力首先包括最简单的设计模式。在写代码的时候,是否考虑过对代码进行有效的组织,按照GoF所倡导的23种设计模型进行重构,让代码更易读、易维护。这些都是我们Android开发者们进阶架构设计能力的体现。
以上这些架构设计能力在每一个维度都有可以深入研究挖掘的技术点,如果你有时间并且希望在技术中不断突破自我,那么应该深入到Android的每一个领域中去,通过不断研究和实践积累经验,直到有一天你能够根据不同的业务、应用场景、用户等,自己设计出一套合理的架构
项目管理能力
专业能力中的另外一项是项目管理能力。项目管理能力是一项综合能力。
项目管理是任何一个组织能够完成产品、项目成功上线,都必须要做好的一件事。对于一个Android程序员来说,能否主导或负责完成一个中大型项目的项目管理工作或者在项目的某一个细分领域完成项目相关的管理工作,更是综合能力的体现。
如果你已经具备和掌握了上述所有这些技术和专业技能,则可以从一个Android程序员菜鸟成长为技术专家,大部分工作中遇到的技术问题也能够自行研究解决。
我通过多年的时间经验证明,Android程序员的这些核心能力在工作中相互交织而又层层递进,每天我们都在使用、学习和积累这些能力。通过在工作中不断的总结和回顾,接受项目和产品的历练,相信每一个人都可以突破自我,迈上新的台阶,摆脱35岁所带来的中年危机。
金三银四跳槽板
每年的“金三银四”都是职场人跳槽求职的好时机,但是今年形势有些不一样:
去年受到疫情影响,大部分职场人都是在与“不确定性”斗智斗勇,好不容易熬到了国内疫情和形势都有了明显好转,这颗渴望不同发展的心又开始蠢蠢欲动。
网络上有人预测:今年可能会出现“报复性跳槽”
报复的不是不敢跳槽,报复的是“老子终于可以走了”!
DSC0000.jpg

尤其是近期互联网行业造富的新闻太多了,什么年薪百万天才少年,什么快手上市员工持股,这让大部分职场人都分外眼红,
尤其是带着“加班累成狗、工资提不上去、升职问题困难、工作不顺心……”的消极情绪的人们更加跃跃欲试了。
毕竟,互联网大厂的高工资、好福利都是标配
金三银四来了,而各大厂都在储备人才,绝对是程序员跳槽的黄金时间,不少同学反馈了很多在面试中遇到的问题,所以今天想跟大家分享一些我的学习感悟。
1、技术不是纯粹拼智商的,而是一种技能,是可以通过科学合理的方式训练出来的能力;
2、学技术,死记硬背是不行的,需要边学边练,循序渐进着来,过于急功近利,可能会带来反作用。
刚学技术的时候,我找了好多教程都看了一遍。虽说有所收获,但是比较碎,看的时候各种明白,随后忘得精光。
DSC0001.jpg

所以还是需要系统的去学习,你可以排一个优先级,一个一个去学习这些技术,但是,并不是说每一个都要去达到源码这种级别,你只要去掌握他们用到哪些底层技术,适用于哪些场景,有什么优缺点,有什么坑,简单的使用案例,我认为掌握到这种程度就够了,真正遇到需要用到这个技术的场景的时候,你能信手拈来即可,然后再去深入学习。
如果你现在的学习没有方向不系统,学了又总是忘记没有效果,那么你可以参考一下我下面的学习路线,还有配套的学习资料,有需要的可文末自取:
分享的系统学习资源主要以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。
总共分为6个部分:

  • Java 基础(★★)
  • Java 高级(★★)
  • Android 基础(★★★)
  • Android 高级(★★★)
  • Android 项目(★★★)
  • 项目面试常见问题(★★★)
一、Java 基础(★★)

  • 面向对象思想
  • 多态
  • 异常处理
  • 数据类型
  • Java 的 IO
  • 集合
  • Java 多线程
DSC0002.jpg

二、Java 高级(★★)

  • Java 中的反射
  • Java 中的动态代理
  • Java 中的设计模式&回收机制
  • Java 的类加载器
DSC0003.jpg

三、Android 基础(★★★)

  • Android 基本常识
  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider&数据库
DSC0004.jpg


  • Android 中的布局
  • ListView
  • JNI & NDK
  • Android 中的网络访问
  • Intent
  • Fragment
DSC0005.jpg

四、Android 高级(★★★)

  • Android 性能优化
  • Android 屏幕适配
  • AIDL
  • 自定义控件
  • Android 中的事件处理
  • Android 签名
  • Android 中的动画
  • 网络协议
  • 其他
DSC0006.jpg

不管是什么行业只要技术过硬就不愁没饭吃,那些焦虑的人都是学习不够技术不够的人,我们除了通过不断的学习去增强自身的技术没有其他的方法捷径可走。

最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
以上分享【我的阿里P7移动开发架构师学习笔记】七大模块整套学习资料均免费分享,需要的小伙伴,我已经上传到石墨文档了,大家自取就可以了。白嫖可以,别忘了给我点个关注哈。
当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。这和我们收集资料就要收集那些系统化的,是一个道理。
如果你需要,我把他放在GitHub了,无偿分享的。
【Android架构视频+BATJ面试专题PDF+学习笔记】
DSC0007.jpg

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。