一天被艾特@48次!35岁Android程序员处境堪比生产队的驴!

进阶能力是程序员能够迈入更高层级突破职场天花板的必要条件。

进阶能力包括技术的广度、系统化的思考能力、团队管理能力、组织协调能力和业务理解能力。

  • 技术的广度

每个人的精力和时间都是有限的,当我们对自己专业领域有足够深入的了解时,我们还需要拓展自己的知识。作为程序员,除了要完成架构设计和编码之外,还会接触到更专业的技术领域,例如安全、大数据、算法和AI等。一方面,扩展这些专业技术领域可以促进对程序员所具备的基本专业技能更深刻理解,同时也可以获得其它技术领域的新知识和突破点。

  • 系统化的思考能力

在具备一定的知识深度和广度后,从单纯的某一项具体技术细节中跳出来,做系统化的思考和总结,以领域视野、全局角度,举一反三,梳理和建立自己的技术知识体系,形成自己的解决问题的方法论。当具备系统化的思考能力,技术或知识犹如滚雪球一般,快速识别、提取、学习、积累,循环往复,建立一套不断更新迭代的技术知识体系,无论市场、业务、技术如何变化已经可以及时的适应,甚至抓住新技术红利,去引领新技术的发展。

  • 团队管理能力

当程序员成长到一定阶段,必然会面临着成为管理者的可能。有些人会成为一个3到5人小组的组长,有些人会带领几十人甚至上百人的团队,不排除有一心只想写程序而拒绝走上管理岗位的同学,但这并不意味着不需要关注团队管理能力的提升。每一个人都是团队管理的参与者和受影响者,通过良好的团队管理能力发挥出团队的价值,能够让程序员的工作更有意义。

团队管理能力的建设包括管理方法论的沉淀和管理动作的落地,这两个方面相辅相成,互相促进。

管理方法论的沉淀,第一需要进行领导力的培养。领导力应该成为你管理团队的指导思想。

不同的企业组织会构建自己的领导力模型。在我曾经学习和实践过的一种领导力模型中,把领导力按照三个维度六个领域进行了解释,这里做下分享。

领导力主要目标是为了组织协同,发挥团队的力量以达成绩效结果。领导力需要关注哪些方面呢?

1,管理者需要理解公司战略和方向,根据公司战略和方向制定团队的目标。任何组织都需要明确的方向指引。当年成为团队管理者后,对于你所在的公司,既需要去理解公司远期的目标我们称之为愿景,还要理解公司的近期目标;用公司愿景指导团队长期努力的方向,按照公司近期目标分解并制定自己团队的短期目标,来指导团队接下来半年度、季度或月度的工作。我们可以借助不同的目标管理方式如OKR等来管理团队的目标。

2,需要做好良好的激励措施。激励能够让团队成员产生更强的工作动力。短期的激励可以通过日常工作中的奖励、表扬或称赞来实现,而长期的激励还需要通过对团队成员预期的管理和工作授权来实现。

3,需要做好团队成员的指导工作。通过对团队成员日常的辅导提供指导和帮助,通过树立典范来指明团队成员未来所需要学习的目标员工画像。领导力最终通过行动计划来落地,而不能只停留在口号和文字总结中,这将在后面进行解释。

领导力是一个很大的课题,每个感兴趣的人都可以去深入研究,找到和建立适合自己的领导力模型。

第二,有了领导力模型的指导,我们还需要做好团队人才盘点和梯队建设,识别团队中的明星、潜力、骨干和后进人员,在做到对团队人员了如指掌的同时,通过目标和绩效促进团队成员不断提升和进步。

第三,做好团队流程与机制沉淀。一个团队能够高效的运转下去,需要依赖合理的流程和机制。关于这一点,我曾经看到过一个很精炼的总结:将复杂的的事情简单化,将简单的事情标准化,将标准的事情流程化,将流程的事情自动化。它阐述的道理即是不断的做流程、机制的沉淀,最终能够实现效率的极大化。

第四,需要做好向上管理。了解你的上级对你和团队的预期,懂得通过上级协调资源寻求帮助,同时能够站在上级的角度考虑问题,替上级分担解忧。

最后,建立有特色的团队氛围和团队文化。一个好的团队与良好的团队氛围和团队文化密不可分,团队文化也能够吸引和过滤志同道合的人一起,促进团队氛围的不断发展。

有了管理方法论的沉淀,并不意味着一定能够做好管理,如何在日常的工作中通过管理动作的落地去影响团队更为重要。

我们需要针对工作中的每一个环境和每个动作细化管理方法和管理手段。

例如,年度、季度、月度的目标设定和定期的复盘,提升团队人员的目标感和团队凝聚力。定期的one-one沟通,了解团队人员的想法和困惑,给予他们辅导和帮助。组织项目和需求迭代的复盘总结,发现需求迭代过程中的问题,找到流程可以优化的点并形成可复制可复用的方法论。定期的团队绩效复盘和团队成员绩效反馈,让大家知道如何提升改进。组织团队技术分享,参与行业的技术交流构建团队和个人技术影响力,打造团队的极客文化等等。

在管理动作的落地的过程中,通过实践得来的知识,又可以丰富管理手段和管理工具箱,进而总结成新的管理方法论,指导下一阶段的团队管理工作。

  • 组织协调能力

组织协调能力和项目管理能力既有相似处,又有差异。相似的地方在于它们都强调团队合作的重要性,注重通过团队的力量达成既定目标。不同的地方是,项目管理能力更强调项目,一切围绕项目的目标去努力。而组织协调能力强调的是组织和人,相比项目管理能力,组织协调能力是更高的一个层级。当你在组织协调能力上具备一定的积累后,任何项目或任务将不再是问题。组织协调能力需要你了解组织及组织的部门、人员,快速识别关键人物和核心目标,建立自己在组织内的连接,提升自己在组织内的影响力。可以很好的理解和倾听他人,产生共鸣和共情。当你需要完成一项任务时,发挥自身的组织协调能力优势,把握关键点,找到关键人,成功也就随之而来。

  • 业务理解能力

技术本身不产生价值,只有将技术应用到业务和产品中,通过产品解决用户的需求才能产生价值。作为掌握技术的程序员,站在业务的角度去思考问题,解决业务的痛点永远是第一位的。程序员不能仅仅满足于被动的完成业务需求,更需要通过主动对业务的理解和思考,洞察业务的核心和本质,把业务问题转化为技术问题。在业务的开始阶段,快速的构建MVP版本产品,支撑业务发展,在业务步入高速发展或稳定阶段,通过不断的抽象、模块化,打造服务化、平台化的技术体系,支撑业务的规模化扩张,让技术真正发挥出支撑业务甚至驱动业务的转型。最后,通过一幅图对以上的解释做个总结。

通过我多年的实践经验证明,程序员的这些核心能力在工作中相互交织而又层层递进,每天我们都在使用、学习和积累这些能力。通过在工作中不断的总结和回顾,接受项目和产品的历练,相信每一个人都可以突破自我,迈上新的台阶。

当然程序员的核心能力在不同人的眼中会有不同,正如一百个读者眼中就有一百个哈姆雷特。重要的是每个人在工作中不断总结,找到适合自己的能力圈。

Android开发全栈进阶学习笔记


以下完整学习笔记PDF,可以点赞+评论支持下博主,点击这里免费自取
  • 架构师筑基必备技能

目前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

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

360°全方位性能调优

  • Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:

**1、高级UI晋升

2、Android内核组件

3、大型项目必备IPC

4、数据持久与序列化

5、Framework内核解析**

Android框架体系架构

  • 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、机器学习**

NDK模块开发

  • Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值