点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

40 岁从零开始学习软件开发,四年后我成了首席研发

  • 2022-02-10
  • 本文字数:3345 字

    阅读完需:约 11 分钟

40岁从零开始学习软件开发,四年后我成了首席研发

有人曾对我说:“如果你 35 岁时还是个程序员,那就应该开始为你的下半生寻找其他出路了。年轻一代正在迎头赶上,很快你就会被淘汰。”


的确,我到了 35 岁时开始反思自己的职业生涯,但情况有些不一样。


不得不重新开始


知道想学什么后,就动手去做!


在那个年龄段,我不是一个基层程序员,而是管理岗。在我职业生涯的前几年,我确实有一段作为一名 C++ 开发者的短暂时期。然而在开始担任管理职务后,我的编程技能就退化了。我每天的工作就是开会、做 PPT 和 Excel 表格,当然还有看大量的电子邮件。我几乎不看代码,几个星期甚至几个月都不看一回,更不用说写代码了。


39 岁时,我移民到一个新的国家。彼时,我的管理技能已经用不上了。这里的公司更喜欢用有本地经验的人来担任管理职务。我可以选择换个职业,从事其他不需要技术知识的临时工作。但我的确很喜欢编程。我想回到自己起步的岗位上,因此尝试了几次关于 C++ 的面试。


尴尬的是,我甚至没有通过初步的编程测试。为此,我感到心灰意冷。


我不知道再回去写 C++ 能做些什么。那些 C++ 的编程工作针对的是涉及硬件的嵌入式软件开发,而不是我感兴趣的主流软件开发。既然已经不再对 C++ 感兴趣了,那么我到底想要做什么呢?


当时,移动开发是大热话题,尤其是 iOS。但要做 iOS 开发,我首先需要买一台 MacBook 和 iPhone,两种设备我都没有。问题是,如果我没法提前知道自己能不能胜任这一工作就先花钱买设备的话,前期投资就太多了。


我当时有一台 Windows 笔记本电脑和一部三星 S2 手机。我看到 Android 正在呈现发展势头,虽然那时 Android 还不是使用人数最多的移动平台,但越来越多的人开始使用 Android 手机。所以我选择了 Android 开发。


确定学习目标后,我只需要获得相关资源即可。首先,谷歌的开发工具包 Android Studio 是免费的,我还买了一些能找到的书籍。由于 Android 系统相当新潮,所以当时的书籍并不多,但互联网上有很多学习资源和代码参考等,这非常重要。我还可以订阅一些最新的学习邮件。


学习开发知识比过去方便多了,任何人都可以轻松上手。


为自己争取机会


身处正确的环境中,会学得更快。


首先,我自己做了几个小的应用,并在商店里发布。我了解了从设计、开发、测试到向公众发布所需要的东西,完整地体验了 Android 的开发过程。


虽然我可以自己学习和工作,但我知道仅靠自己永远不会达到理想的学习速度,除非我与其他 Android 开发者一起工作。这种情况下,我想加入一家做 Android 开发的公司。


我发布的应用让我获得了一家成长中移动开发公司的面试机会,这对我来说非常宝贵。


我知道自己没有资格胜任高级开发人员,所以只要能够得到工作和学习的机会就行,能够得到任何职位都可以。对此我没有什么想法,因为这为我提供了充分的学习机会,我可以做一名后辈。


不幸的是,我在最后一轮面试中失败了,这令我崩溃。


但我还是发了封电子邮件,感谢公司提供的面试机会。我并没有就此罢休,我询问他们是否愿意考虑让我作为实习生加入,我甚至愿意不计报酬地工作和学习,以获得提高自己技能的机会。


最后我得到了一个机会,但不是实习生,而是一个移动应用 QA 测试员的职位。


我非常愿意接受这个岗位。我去做测试工作可能不会去写代码,但我可以和专家们打成一片,向他们学习。更棒的是,我在做测试时还能拿到报酬。这比做一个没有报酬的实习生要好得多。


时间和年龄并不重要


要好好学习,让它成为我们工作的一部分。


当我开始在那家移动开发公司工作时,我成为 Android 开发人员的目标已经实现了 50%,但这并不能保证我可以完成剩下的 50%。我必须提高自己的开发技能,并在机会出现时已做好准备。


作为一名 QA 测试员,我每天必须工作 8 小时。我很羡慕那些做开发的人,他们可以边工作边学习。边工作边学习是最好的,但我没有这种机会。尽管如此,身处移动开发公司本身已经是一个很大的优势。我有机会接触到公司里的一些学习资源,这样更容易发现自己应该重点学习哪些领域的知识,对此我很感激。


最重要的是,我和这个领域的专家们建立了联系。他们中 95% 的人年龄都比我小。年龄并不是什么问题,重要的是他们在这个领域的经验。我非常尊重他们拥有的技能和知识,以及他们的分享意愿。从他们身上我学到了很多。


工作时间之余学习和写代码,这样的生活并不容易,但很充实。一点一滴地学习、知道自己的方向是正确的,这是很好的体验。我的任务是,成为一名 Android 开发者。


在这个阶段,我需要的是不断展示自己的学习成果,同时坚持不懈地履行自己作为一名 QA 的使命。每隔一段时间,我就向 Android 主管展示我所取得的成绩,并检查自己是否已经准备好在有任何 Android 开发岗位空缺时拿下它。


6 个月后,我被调任到了开发岗位上,正式成为了一名 Android 开发人员!虽然只是初级岗位,但也是一名开发人员。


去分享吧,错了也没关系


开始分享时,学到的东西最多。


当我进入 Android 开发人员的角色时已经 40 岁了。但这不是我目标的终结,而只是一个开始。


我非常高兴,因为我可以随心所欲地写代码。我的工作时间就是写代码的时间,可以在工作中学习。我能与专家结对,向他们学习。我可以阅读他们的代码,他们也可以审查我的代码。这时,我对 Android 开发的理解速度加快了很多。


我可以满足于这一层次,但我知道,随着年龄的增长,自己并没有像其他人那么多的时间。我需要做的不仅仅是学习。


在领导的鼓励下,我开始写博客。我花了一段时间才开始做这件事,因为我想谁愿意看我写的东西呢?我又不是专家。如果我写的东西不符合标准怎么办,甚至还可能是错的?


尽管如此,我也注意到自己很容易忘记学到的东西。所以我的目的很简单,那就是为自己写博客。这更像是我的学习笔记,就算没有人看它,至少我可以通过博客很容易地回忆起我所学的东西。


之后,我花时间写下了我的学习内容,并尽量让文字简单易懂,便于自己回忆。对于每项学习进度,我都会画图,再附上代码实践的案例。


让我惊讶的是竟然有人读了它,还有人写下了充满感激的评论。他们的留言给了我极大的鼓励,让我继续写下去。更重要的是,有人坦率地与我持不同意见。诚然,我有时会有抵触心理,但正是这些回复让我意识到外面还有各种不同的思维方式和想法。


有时我是错的,有时我虽然没有错,但可以了解对方的观点。这些都是学习的机会,让我的学习之旅更加健康。这是一段成为更好的 Android 开发人员的旅程。


走出舒适区


在能分辨好坏之前,继续学习吧。


经过 4 年多的 Android 开发经历,我在这个领域已经相对自如了,我成为了一名高级 Android 开发人员。除了本身的开发工作外,我还会指导其他初级开发人员。


我不敢说自己对 Android 开发了如指掌,但我更知道如何获取和寻找信息,对事物的对错有更好的直觉和判断。Android 开发行业也在不断发展,所以有很多东西需要学习。我喜欢自己的工作。


我可以留在这个层次上安顿下来。我喜欢这份工作,因为我的工作就是写代码,然而我仍然只是单一的贡献者,我的影响范围仅限于自己能做的事情。我问自己,这就是我生命中未来 10 年想要一直做的事情吗?


我决定在机会出现时向前迈进。我申请了首席开发人员的职位,同时负责 iOS 和 Android。最终,我得到了这个职位,尽管我并不擅长 iOS。


不了解自己所负责的领域,这种感觉让我感到很不舒服。但正是这种不舒服的感觉促使我去学习和提升知识水平。所以,我开始花时间去学习 iOS 开发。


我不认为自己能够像了解 Android 那样深度掌握 iOS 开发知识,但这种学习确实可以帮我更宏观地看待移动开发领域,它让我知道了 Android 开发擅长什么事情,也知道了它在哪些方面比较落后。


重回管理岗


从我第一次涉足 Android 开发已经过去了 7 年多,很多事情都发生了变化。


我现在是一名移动技术负责人,负责整个移动团队的协作和架构工作。除了技术角色外,我还需要参与各种管理任务。我又回到了没有太多时间在工作中写代码和学习的阶段,但我仍然很喜欢我的工作,因为它仍然是相对技术性的,只是技术水平更高了。


要做出合理的高层次技术决策必须有扎实的底层技术理解。我们不能依靠过去的学习内容来保持所需的水平。我需要继续学习,希望自己不会在几年后重蹈覆辙。


这就是我的故事。40 岁才开始从事软件开发事业,还不算太晚。


原文链接:


https://levelup.gitconnected.com/i-started-android-development-at-40-6591c1e8bc38


2022-02-10 17:327500

评论 10 条评论

发布
用户头像
在这国,这事几乎是不能实现的。
2023-04-10 22:03 · 河北
回复
用户头像
40岁能够无薪资工作,这本身就是一件很牛逼的事情
2022-02-11 10:35
回复
用户头像
最后还是要转向管理岗,因为需要随着经验增加需要做出更大的贡献,否则还是要被淘汰
2022-02-11 08:53
回复
当一个人能力和经验在不断增加时,肯定是要走上更高的岗位来带来更大的价值,作为开发价值输出仅靠一个人,作为管理者可以带领一个团队去输出价值,二者的影响力根本不可比拟,当然非常牛逼的个人开发者除外,因此大多数开发者自然会主动或者被动的走上管理岗位,这是中国IT行业目前普遍对于开发者的诉求,不像国外能够允许40、50岁的人继续从事开发工作。还是要做顺势而为的事情,逆时代背景的选择肯定会被时代淘汰的。
2022-02-11 09:32
回复
赞同,公司更多是从价值输出来决定一个人的位置。
不过更让人唏嘘的是40岁起步还能找到接受他的公司,结合国内大环境就不奇怪国内大家为什么这么焦虑。
2022-02-12 09:25
回复
一个球队有几个球员,又有几个教练? 管理通道的名额都完全不一样,大部分还得转行。
2022-02-14 22:30
回复
查看更多回复
用户头像
老当益壮,宁移白首之心
2022-02-10 21:03
回复
感谢你的方法论。
2022-02-11 00:28
回复
没有更多了
发现更多内容

Context那些你不知道的事?,张口就来

android 程序员 移动开发

Dart Flutter 1,flutter页面跳转动画

android 程序员 移动开发

FART:ART环境下基于主动调用的自动化脱壳方案,androidndk开发教程

android 程序员 移动开发

Flutter 仿掘金微信图片滑动退出页面效果,写给程序员的Flutter详细教程

android 程序员 移动开发

Flutter 入门与实战(十三),安卓framework层开发

android 程序员 移动开发

Chameleon跨端框架——壹个理想主义团队的开源作品,旧版android模拟器

android 程序员 移动开发

Coroutine 基本原理,Android开发大佬的百度美团快手等大厂Offer收割之旅

android 程序员 移动开发

DateUtils(一个日期工具类),androidauto百度地图

android 程序员 移动开发

下一代信息技术论坛云操作系统介绍

架构 操作系统

Flutter 中的 JSON 解析,事件分发机制Android

android 程序员 移动开发

Dart 层如何 兼容 Android 和iOS平台特性 (1),Android开发面试技巧

android 程序员 移动开发

Flutter 中的 JSON 解析(1),androidsdk环境配置

android 程序员 移动开发

Flutter 仿掘金推特点赞按钮,kotlin中文版

android 程序员 移动开发

如何打造实时性的弹窗?

神策技术社区

UI sdk Android;

Flutter 与 Compose怎么选?小孩子才做选择,kotlinwindows桌面开发

android 程序员 移动开发

Flutter _ 日志还能这么打印,太秀了!,android移动应用基础教程

android 程序员 移动开发

Flutter 入门与实战(九),android软件开发前景

android 程序员 移动开发

Flutter 如何发布安卓应用?,flutter文档发布组件

android 程序员 移动开发

ConstraintLayout 2,android双击事件响应

android 程序员 移动开发

Dart _ 什么是Stream,安卓开发不得不会

android 程序员 移动开发

DialogFragment探索与实现,音视频编解码技术

android 程序员 移动开发

EventBus核心原理其实保存这三张图就可以弄懂了,收藏一下

android 程序员 移动开发

Flutter Android 端 FlutterInjector 及依赖流程源码分析

android 程序员 移动开发

JMH实践记录

Clarke

JMH性能基准测试

filter、interceptor、aspect不知如何选择,移动应用开发案例教程

android 程序员 移动开发

ConstraintLayout 1,flutterrow换行

android 程序员 移动开发

Flutter RichText支持图片显示和自定义图片效果,经典Android开发教程

android 程序员 移动开发

华云大咖说 | 安超DCM运维场景解决方案

华云数据

ConstrainLayout 基础教程2,2021Android精选面试实战总结整理

android 程序员 移动开发

Flutter Android 工程结构及应用层编译源码深入分析,Android面试题及答案2020

android 程序员 移动开发

Flutter Candies 一桶天下,kotlin编程软件

android 程序员 移动开发

40岁从零开始学习软件开发,四年后我成了首席研发_语言 & 开发_Ely_InfoQ精选文章