为什么高级Android程序员永远不必担心自己的技术过时?

  1. 你了解业务运作方式吗?你了解为什么即使失业人数达到两位数,软件工程师也可以要求如此疯狂的薪水吗?为什么编程是如此宝贵的技能?为什么客户愿意为某些超级基本的Web表单向你的公司每年支付50,000美元?你是否觉得他们被骗了?

  2. 领导可以放心地让你去负责面试候选人吗?你是否擅长通过有限的信息来对人员进行分类,并可视化他们和团队的适合程度?你能识别出在什么情况下,在工程方面优秀的候选人却不能很好地融入公司文化吗?这种候选人你会建议录取吗?同样,即使你和候选人在Zoom里聊了5分钟就知道他不可能被录取,你是否还可以确保他仍然可以从你们的聊天中学到东西?毕竟,语言在网络上的传播速度是很快的。

  3. 假如今天是12月28日,你被困在办公室。你今年有点疯狂,在9月中旬就把今年所有的带薪休假糟蹋完了。此时此刻,同事们都休假出去high了。你还能按时上班吗?领导不在身边惩罚你,你是否打算半途而废?这种情形下,是否需要领导强迫你你才能尽全力工作?

  4. 机会成本是一件必须考虑的事。你在平衡技术债务和推动业务发展方面做得如何?你是否会重构发现的每个微小的编码样式问题?毕竟大家都很难承认“这段代码很烦人,但它确实有效,需要花费四个小时的清理时间,这段时间可以花在构建其他功能上,而这是很多客户都在请求的”。

  5. 你知道如何向你的下属反馈他们的绩效吗?你和他们有良好的工作关系吗?你是否将他们视为敌人?你是否正在积极尝试减轻他们的压力,使他们的生活更轻松?你是否曾经说过“你们那边有什么烦人的任务我可以帮忙削减吗”?公司雇人都是有原因的,你的下属可能比你想象的更有经验和资格。

  6. 你有能力扑灭生产大火吗?你是否会在遇到大麻烦时惊慌、不知所措(比如AWS中断使网站瘫痪、不小心搞丢了customer_invoices表单、某些错误导致了不同用户帐户之间的数据泄漏等)?你是会在压力之下崩溃,还是会在解决问题的同时保持镇静,并与其他部门进行有效的沟通?

虽然我说的话不能代表所有的初级工程师,但我确实知道自己八年前开始在该领域工作时,在情绪方面的处理是非常糟糕的。

那时的我极度自信,与人沟通很糟糕,不能毫不犹豫地处理建设性批评,为无关的小事与我的老板激烈争论,浪费无数宝贵时间来解决根本不重要的问题,总是觉得自己应该得到大幅度的加薪(却不付出额外的努力来赚钱)并为之苦恼和抱怨,天天花 45 分钟打乒乓球、玩游戏(在慢悠悠吃了一个小时午餐后)……

我为我的老板带来价值了吗?

是有的。

你能把当时的我放心地关 30 分钟,让我在此期间独立工作、不出幺蛾子、不拿头撞墙吗?

绝对不可能。

而高级开发者,就会在工作中解决问题,而非制造问题。

他们减少压力。他们按时完成任务。他们知道如何编写经得起时间考验、可维护的代码。他们值得更高的工资。他们对项目的方向可以有准确的把控。他们可以发现当前流程中的缺陷,并使每个人都接受他们的想法以进行改进。他们可以指导应届毕业生。他们处事冷静,不会在周二与你的最大客户的电话会议上情绪崩溃、破口大骂。

很多人想踏实当个技术人员,并不想一直向上升去当领导当主管,我认为这种想法没什么问题。编程是目前最令人鼓舞的职业之一,许多企业愿意给经验丰富的“老兵”开很多很多工资,来保证业务进行顺利。

话虽这么说,总会有少数工程师最终决定有一天挂断 IDE,并开始过渡到管理层。

挺恶心的。

太长不看版:反正现在就我来说,转管理层这条路是可选的,但绝对不是适合所有人的。

如果你具有扎实的沟通技巧,并且确实愿意开会开一整天(这样你可以消除干扰、帮助队友争取更多时间来高效完成工作),那么你进入管理层就是非常有意义的。

如果你由于其他任何原因转行管理层(即使刚读了我的博客文章,也因为受到雇主的压力、较高的薪水、害怕技术技能过时的焦虑等等),那你的日子可能就难过了。

回顾我的旅程,能从初级开发者过渡到高级开发者,归功于我每周(在繁重的编码任务之间)都试着花几个小时专注于以下事件:

  1. 改进我们进行技术面试的方式,保证我们与候选人之间的沟通信噪比更高(如改善我们的面试问题、重新考虑我们的电子邮件模板、考虑是否要给面试者布置线下笔试题、反思我们对工作的描述是否准确、我们向哪里投放招聘广告、换位思考如果我正在寻找工作会如何回复该招聘信息、如何在候选人做出决定之前使其更深入地了解我们的公司文化和发展历程等等)。

  2. 与产品团队合作,以更细致的方式对即将开展的工作进行分类,从而使产品团队和最终要去接收JIRA tickets的工程师之间的沟通更加顺畅,而不需要磨叽好几个来回。

  3. 组织团建活动和团队聚餐。

  4. 当CEO/CTO为即将到来的季度制定的目标听起来有点过于乐观时,向他们提出提醒和意见,以免团队其他成员受不了过分辛苦的工作而逃离你们公司。

  5. 最好能每周与所有大的客户进行一次确认电话(亲自回答他们所有的技术问题,并确保双方之间的关系保持健康)。

  6. 用6个月的时间进行积极的安全审核,不断提醒客户我们会认真对待他们的隐私,并在公司发展的每个检查点努力完善我们的流程。

  7. 找出其他开发人员在知识上的不足之处,然后让他们查缺补漏(使用能激发他们学习兴趣的方式):如使用vim宏处理CSV文件、Linux终端中实用的短命令、高级SQL命令、如何使PR描述更具描述性、解释负载平衡器如何工作、讨论合并和重新定基之间的区别等。

  8. 帮助设计团队在花数小时将线框转换为高保真模型之前,先弄清楚哪些功能易于开发。

  9. 改进我们的流程,让其他部门知道何时会增加新功能(编写更好的发行说明、在每周的内部产品演示中回答他们的问题、帮助他们编写客户能理解的外部文档),因为没人知道的功能不会解决任何实际问题。

上面的列表还可以一直一直往下写,而其中大部分条目不需要用到 Visual Studio。

几年后,许多高级工程师走的路都是类似的。你可能在不知不觉中就变成了小领导,每天有 6 个人向你汇报工作。

但要做到这种程度,与自身的努力也是离不开的,只有不断地学习不断地进步,我们才能跟上时代的进步!

最后

==============================================================

在这里我分享一份由多位大佬亲自收录整理的Android学习PDF+架构视频为什么高级Android程序员永远不必担心自己的技术过时?_第1张图片
+面试文档+源码笔记
高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。

当然,你也可以拿去查漏补缺,提升自身的竞争力。

真心希望可以帮助到大家,Android路漫漫,共勉!

如果你有需要的话,只需 点击这里快速免费获取

识、理解原理,帮助大家在未来取得一份不错的答卷。

当然,你也可以拿去查漏补缺,提升自身的竞争力。

真心希望可以帮助到大家,Android路漫漫,共勉!

如果你有需要的话,只需 点击这里快速免费获取

你可能感兴趣的:(程序员,架构,移动开发,android)