37岁老码农现身说法:那些年,我走过的弯路

摘要:
我走的路线是“技术、卓越、管理”。这条路线也是大多数技术经理的路线。当然,从结果来看,能力突出的建筑师的薪酬也会上涨。一个Android架构师年薪40万是很正常的。关于Android架构师职责的介绍,互联网已经势不可挡,所以我不再赘述。今天,我想和大家分享成为一名Android架构师应该掌握的技术技能。
背景

疫情之下,刚刚结束了在家办公的日子,准备开展新年的工作的时候,突然接到同行好友的电话,要和我聊聊天。

他说他们部门调整,虽然最后他留了下来,但还是非常焦虑。人无远虑必有近忧,他这次被刺激到了,想提高一下自己,以免下次再有类似的心惊肉跳。但怎么提高呢?

程序员第一考虑的当然是技术,但现在真不知道学什么了:干了三四年的开发,手头的工作马马虎虎都没什么问题了。就算有问题,也是业务逻辑上的问题,系统太复杂,吃不透;或者系统里一些过时的/生僻的技术,真心觉得没必要花时间花精力去研究,能对付就行了,是不是?反正下家单位99.99%的几率是不会用到这些东西的的。

那么就是一些新技术了。新技术杂得很,不知道学什么,框架类库啥的其实没什么技术含量,一两个星期就可以上手,上手了之后呢?往深里学?其实和老旧技术一样的问题,谁知道下一份工作用不用得上呢!而且没趣,大概是因为没有挑战性吧,反正就那个样,还能咋的?

37岁老码农现身说法:那些年,我走过的弯路第1张

学习瓶颈

一直聊到这里,我都非常理解。我这个十年以上的老码农,体会比他还深。其实稍微干上一些年头,就是这个样子,看起来像是“学习热情下降”“懒得学习”,但本质上呢,两个原因:

1、本身的技能增强,能够应付日常工作,没有刚入行时那么大的压力了。

2、学习的边际效益递减,所以开始考虑投资/收益比了。

刚入行的时候,技术一丁点的进步,都能带来非常大的成就感,至少能少挨点骂,是不是?积累到一定时候,就可以跳个槽涨点工资啥的。但三五年过后,

我已经会了:

  • 熟悉Android OS系统体系结构、framework层;
  • 良好的Java技术功底,精通多线程、socket通信、文件操作等java底层技术;
  • 精通Android的基本组件使用,熟练使用Android各种布局与控件,熟练运用各种动画特效;
  • 熟悉View的绘制原理,精通自定义动画以及自定View的开发
  • 有丰富的Android性能优化经验,善于解决系统崩溃,内存溢出和兼容性问题;
  • 熟悉JNI技术和代码混淆
  • 有单元测试、自动化测验及相关框架经验;
  • 有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低,代码注释清晰;
学会优雅转身

接下来和大家分享一下我这么多年的转型之路。姑妄听之:

1、转型技术管理

2007 年下半年到 2009 年初,我慢慢转向技术管理角色,开始管理一个研发部门。我走的路线是“技而优则管”。

简单讲,就是你技术牛 X ,轻松搞定各种问题,开始带人,接下来带团队管项目,再接下来,顺理成章就会被公司推着向技术管理者转型。

这种路线,也是一大半技术管理者走过的路线。如果你想转型技术管理,可以考虑这种。

“技而优则管”的要点,就是:行有余力。

什么意思呢,就是聚焦当下,高效搞定你的任务。当你体现出绰绰有余的样子,领导就会给你更多更难的任务。当你还能高效搞定,还看起来有余力,领导就会再给你更重要的任务……

如此循环,你就越来越重要,就会带人、带项目的机会。

假如你总是手上的活儿都做不完、做不好,就基本走不了这条路线。不过也还有其他路线。

2、加入创业者行列

2014 年 9 月份,我因某种契机,离开工作 7 年的公司,重新考虑自己的方向。到阳历年底时,接受朋友邀请,和他一起创业。

我之所以愿意去尝试,是因为:

  1. 创业和上班的未来可能性大不一样,万一创业成功,你的影响力、经济回报,都会上一个台阶。
  2. 一起做事的人靠谱。
  3. 做的产品,盈利模式明确。

当然,不幸的事总会发生——我们失败了。

我个人并没因为这样的失败经历而后悔,因为当你站在主人翁的角度和高度去为公司负责时,你对工作的认知,会发生巨大变化!这种变化,会对后续的工作和人生产生重要的正向影响。

如果你技术过硬为人靠谱,一定会有不少创业者邀请你加入他们的队伍。不要头脑发热,要仔细考察一下:

  1. 评估要做的产品是否靠谱
  2. 看看即将一起共事的人是否靠谱
  3. 设想近 2 年没有收入,自己和家人的生活水平能否维持
  4. 设想全力投入创业对自己和家人的生活有什么影响,自己和家人能否接受

3、 重回开发岗位

我从 2009 年开始做技术管理,到 2015 年底创业失败,历时 7 年。可是我在多个更好的管理机会面前,毅然选择回到技术岗位继续做开发。

为什么?

这是因为我们工作的目的,除了赚钱,还有自我实现。

自我实现包括几方面:

  • 成长
  • 成就
  • 意愿

成长是指你做一件事之前和之后,有你想要的、积极的变化。

假如你做了十年开发,技术水平、解决问题的能力,还是和刚入行时差不多,那就叫没成长!

成就是指你做出了成绩并获得了相关干系人的认可。

你负责一个模块,用了最新的技术最牛逼的设计,也能 run ,实现了用户需求。你个人觉得很有成就,可是你用的技术框架过于复杂,维护成本很高,运维团队、二次开发团队都不认可,那就不是真正的成就。

意愿很好理解,就是你愿意在什么事情上投入你的时间和精力、你做什么事情时会感到开心。

比如我,在创业失败重新找工作时,就是因为觉得亲力亲为用技术去开发一个个软件、解决一个个问题比较令我兴奋和投入,所以才选择回到开发岗位上。

很多开发者都会遇到要不要转管理、要不要一直做技术这种问题,怎么选择答案,关键就在于你的个人意愿和你做某件事的感受。

可能有人会问,如果你一直做开发,年龄大了,怎么和年轻人拼?

我之前画过一张图,再贴出来给大家看看:

37岁老码农现身说法:那些年,我走过的弯路第2张

由这张图可以看到,开发者做软件分两次创造,第一次创造在头脑中完成,属于思考层面;第二次创造,是编码实现,是脑力劳动体力化。

如果你想要超越年龄,就要多在第一次创造所需要的能力上下功夫:

  • 构建起来自己围绕着特定业务领域的知识体系
  • 淬炼想象力、抽象、归纳、分析、整合、设计等

这样你就能思考得多、做得少、做得关键、做得好,就可以超越年龄的限制。否则如果你整天和年轻人一样只关注噼里啪啦敲代码,肯定没价值,很快被清退。

所谓高级工程师就是在技术上逐步沉淀,逐步体系掌握核心技术得来的。

我们程序员提升的方向无非管理者与架构师两种。要成为管理者,就应具备一定的管理知识、较高的情商以及良好的组织协调能力。

而想要成为移动架构师,就要肩负技术和组织两个层面的重任,构建自己完整的技术体系就尤为重要了。

当然从结果来论,能力突出架构师的薪资也同样会水涨船高,一个Android架构师能够拿到40万的年薪都再正常不过了。

程序员职业路线图

对于Android架构师职责的介绍,网上已经铺天盖地,就不再赘述。今天我主要给大家分享一下成为一名Android架构师应该掌握的技术能力。

阿里公司注重的7大主流技术专题与移动架构师项目实战

深度对接阿里P8高级工程师级别的主流技术体系,并且综合了目前的各大互联网公司如华为、抖音、OPPO、阿里等主流技术(即使你不想选择阿里,其它的大厂照样适合)

主流技术专题

主流技术专题

移动架构师项目实战

音视频开发、网上商城、新兴自媒体等都是时下热点技术与专题,深入了解项目源码、参与项目开发过程中问题解决、组织协调与人际关系沟通均是大厂对人才素质的基本要求。

移动架构师项目实战

最后

题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等录播视频免费分享出来。

Android进阶视频

Android进阶视频

下载地址:https://shimo.im/docs/YHJtVkC3y6qgp9xC

希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~

免责声明:文章转载自《37岁老码农现身说法:那些年,我走过的弯路》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaScript常用方法(转载)laravel 安装 Laravel 扩展包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

大型网站技术架构,架构师领导艺术

架构师的工作:架构设计,软件开发, 其他一些管理职能:规划产品路线、估算人力资源和时间资源、安排人员职责分工,确定计划里程碑点、指导工程师工作、过程风险评估与控制。 这些管理事务需要对产品技术架构、功能模块划分、技术风险都熟悉的架构师参与或直接负责。 在软件开发过程中,架构师除了实现技术架构,完成产品技术实现外,还需要和项目组内外各种角色沟通协调,可以说架...

走在架构师之山的路上

  作为一名软件工程师,伴随若干年的工作经验积累后,技术的深度和广度也得到一定的提升。对于日后的职业规划,大多数人应该都会考虑到架构师这一极富挑战的角色。而作为一名合格的架构师,从技术、业务及综合方面,应该具备怎样的架构能力?下面我们把行业内通用的几点对架构师岗位的要求简述下,期望能够引起走向架构师的同僚们的共鸣。   1,架构师的定义 具备一定的结构性...

前端如何进阶架构师

前端如何进阶架构师  前端架构师, 听起来就是个很高大上的职位,在大多数程序员的眼中,架构师一般从事后端开发,Java或者C++出身,它们往往拥有这十八般武艺,可以解决业务中出现的各种问题。好像架构师就从来没有和前端有过关系,那么真的是这样么,通读此文,便可豁然开朗。 前端的意义: 首先,我们先来谈谈本职工作,前端的意义。前端源自用户界面,是最先和...

架构师技能体系

一、构成架构师的技能体系二、阅读源码,分析源码知识点总汇这张图详细介绍了源码中所用到的经典设计思想及常用设计模式,先打好内功基础,了解大牛是如何写代码的,从而吸收大牛的代码功力。 结合Spring5和MyBatis源码,带你理解作者框架思维,帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。 这个任务感觉是“成为一个高级Java开发工程师”,即对常用...

Tier和Layer

在实际开发工作中。我们经常听到“架构设计”和“架构师”这种名词,它并不新奇和神奇,可是却非常少有人对“架构”有全面的了解和认识。更谈不上掌握了。事实上,也仅仅有极少数人能成为或者被冠以“架构师”这种title。为此。笔者总结了实践中对架构的一些理解,希望能够补充非常多人对此认识上的不足,纠正一些误解。 架构的分类 对于“架构”来讲。理论上划分了5种架...

关于研发规范化的一些实践和思考

除了老板之外,我想大多数人是讨厌规则的,因为它束缚了我们的自由。然而,无论是个人,还是组织,规则却是发展中必不可少的环节,虽然我们很难看出规则的直接价值。 研发类任务,更是一类严谨的工作,它不仅需要严谨的逻辑思维能力,更需要一个完善的研发规范流程。对于程序员的我们,其实我们心里是比较讨厌规则的,在我们心里,只要把需求完成,上线就ok了,其他都是浮云,其实,...