写给迷茫的 1-3 年Android人的思考
前言
今年由于大环境差,加之大家都会遇到的职场困惑期,让很多人觉得很无助,不知道要向何处去努力。
我有两三位朋友正面临类似的困境,向我寻求意见。虽然我不是什么大厂的架构师,也没有多牛,但也有一些自己的思考和实践,希望能帮助到他们,也希望与大家一起探讨这个话题。
思考
学好英语
原因
- 获得更广泛的就业机会
- 拥有更高的技术天花板
获得更广泛的就业机会
如果你了解过外国的就业机会,就会发现除了母语为英语的国家,像德国、西班牙、瑞典、荷兰这样的英语为第二语言的国家,只要英语过关,找工作方面也是完全没问题的。
当你学好英语时,就不仅局限于国内这个环境,而是在全世界范围内找工作。此外,国外远程工作机会也不少,在英语不错的情况下,完全可以拿着美元在国内享福。
更高的技术天花板
我们不得不承认英语在技术领域处于绝对统治地位。如果你的英语水平不够,那么想学习更加新和深入的技术都将面临巨大的困难。我相信每个人都能明白这点。
如何学好英语?
学习英语的资料汗牛充栋,方法也不胜枚举,但知易行难,我个人也在努力中,所以就交给大家自行探索。
找到并深入特定领域
除了日常的应用开发,与Android相关的技术还有许多特定领域,例如:AI、物联网、机器人、智能座舱、游戏、开源库、系统、即时通讯、嵌入式、虚拟现实等等。我个人建议至少找到一个领域深入研究。
原因
- 形成职业亮点
- 增加职业壁垒
形成职业亮点
在面试和简历筛选中,面试官最看重的是是否具有亮点。没有亮点的人基本上很难达到高级别,顶多只能达到中级别。而亮点可以从许多方面切入,其中之一就是在某个特定领域有自己的见解和产出,能够为人所不能。
增加职业壁垒
如果你拥有某个领域的知识,那么你不仅是一个CV仔,即使老板想要裁员,他也会掂量是否能够找到更合适的人才。
如何找到自己的领域?
工作
大多数人的专业领域都是从工作中找到的。每个人在职业生涯中都会遇到一些技术难点,此时你可以分析业界各种解决方案的优缺点和实现原理,并思考是否有更好的解决方案或者在社区方案的基础上能否进行更优化、更便捷化,或者更加适合国内市场的特殊需求。
许多人不愿意在工作之外的时间思考与工作相关的问题,但对于自己有利的事情,我认为可以适当花时间深入研究或有意识地增加这部分时间的分配。
主动寻找
如果日常工作就是纯纯的CV仔,那我们就需要主动出击,找到一个自己感兴趣的点并进行深入研究。
例如,如果你想找一份 系统开发 相关的工作,那么你现在就应该开始学习 Framework 知识,并将你的学习过程记录下来并发布到各个文章平台,扩大你的影响力。
面向工作和薪资学习
如果你现在的工作只是做页面,下班后也没有什么事做,不知道该学习什么,那么这个问题就很简单了。
你可以看一下 BOSS 直聘上Android工程师的工作描述中都需要什么技能以及哪些行业薪资高,什么技能、行业薪资高,你就学什么就对了。当然最好的方法是主动面试尝试毒打。
例如 1:如果你想找远程工作,发现国外许多人使用 Kotlin,工作描述中也常常要求掌握这个技能,那么你应该毫不犹豫地开始学习 Kotlin。
例如 2:如果你发现 系统 相关工作的薪资比普通Android工作高很多,而你又想要高薪,那么你应该立即开始学习 系统相关 知识。
关注Android趋势
了解当前Android技术的现状,关注Android技术未来的发展趋势。如果其他几项知易行难,我建议先从这项内容开始,每天花费时间不需要超过 20 分钟即可完成。
如何做到了解目前Android发展的趋势呢?
最直观的就是谷歌的I/O大会,每年都会召开,今年Android已经来到了14版本。
当你看到某个东西变得流行起来,你需要思考它为什么会火,之前的技术方案有哪些问题,新的方案怎么解决之前的问题的等等,这样的思考会带领你走向更深的Android知识区。
做开源项目
原因
- 满足自我实现需求
- 提高技术水平上限
- 更好地找工作
- 更多可能性
满足自我实现需求
当你的开源项目受到关注和讨论时,相当于你被需要、被认可,这是一种很好的正向反馈,会使你身心愉悦。
提高技术水平上限
当你开发出一个新的东西时,代表着你对这个事物有着自己的思考和见解,人与人之间的差异在于思想上。如果社区内有新的反馈,会促使你不断完善和学习相关知识,无形中提升了你的个人能力。
更好地找工作
一个好的开源项目是一个亮点,面试一般都会询问相关问题,此时的主动权是掌握在你手里的。
更多可能性
如果你做过一个成功的开源项目,你就会发现有人开始找你写小册、出课程甚至出版社会找你写书。此外你还可以在文档中有自己的赞助、广告等收入,虽然不多,但是这都代表了一种不同于上班的可能性。
如何开始自己的开源项目?
做开源有两大难点,首先是如何开始一个开源项目,其次是如何让它变得受欢迎。
至于如何让项目受欢迎,所涉及的东西就比较多了,这里就先挖个坑,看是否有人感兴趣,如果有的话,可以再写一篇文章。
基础知识
Android是使用人数最多的手机系统,它所依附的知识变化也很快,昨天还是 Okhttp,今天变成了 Restful,明天就是Glide,coil、热修复、插件化、组件化。后天呢?。
虽然上层的知识变化很快,但是仔细观察就会发现底层的知识却保持不变,比如编程思想、编译原理、算法等。
在这里,我推荐以下几本书本书作为入门:
- 《Android 第一行代码》
- 《Android进阶之光》
- 《Kotlin实战》
- 《代码整洁之道》
- 《Head First设计模式》
- 《Android 开发艺术探索》
- 《React Native入门到精通》
软技能
除了编程技能外,软技能也很重要。
- 人际交往能力
- 结构化思维能力
- 沟通能力
- 写作能力
- 自我营销能力
- 演讲能力
- 协同/领导能力
- 抗压能力
如果你可以逐步提高所有这些方面,那当然最好。如果不能全面发展,其中我认为 写作能力 可以先发育,推荐以下内容:
- 中文技术文档的写作规范:github.com/ruanyf/docu…
- 技术写作指南:juejin.cn/book/718466…
当然关键还是多写多练,毕竟纸上得来终觉浅。
人生方向
编程行业仍然是普通人最好的出路。毕竟没有哪个专业刚毕业的大学生(没背景)就能拿到 7、8 千,甚至脉脉上刚毕业就能拿到 2、30k。
但如果你真的对技术不感兴趣或者做的很痛苦,可以思考是否要继续从事这个行业,是否有其他出路。这是留给你自己的思考题。
后记
实际上,本文已经写完并放置了几周了。随着人工智能井喷式发展、国内经济实行的下行以及各种裁员消息,让我觉得上面的这些努力似乎已没有意义,普通人的命运是否会像《人类简史》中描述的那样,成为无用阶层。
但我又想起一句话:“悲观者正确,乐观者成功”。因此,我还是决定与大家分享这篇文章。
当然,知易行难。如果你在一家 996 公司,建议你骑驴找马,背背八股文,并且在上班前花 10 分钟看一下就行了;
如果是在 965 公司,除了看看源码建议再至少学一样其他东西。
最后,无论往什么方向努力,希望最重要,希望大家都能怀揣希望,继续前行。
如果你没有方向,未来还处于迷茫状况,可以看下这份Android移动架构进阶路线。
包含了我整理的对应的资料,现在都分享出来,朋友们如果需要可以自行免费领取 【保证100%免费】