11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

10 年 Android 开发者经验分享:如何从 0 到 1 开启职业生涯

  • 2022-04-07
  • 本文字数:2535 字

    阅读完需:约 8 分钟

10年Android开发者经验分享:如何从0到1开启职业生涯

本文最初发布于 ProAndroidDev 博客。


在从事了 10 年的 Android 开发工作后,如果要重新开始我的职业生涯,我就会像本文所说的这样做。希望这篇文章涵盖了你在开始工作时可能遇到的所有未知的情况。


多年来,Android 生态系统发生了巨大的变化,其开发工具也随之改变。


本文将介绍一个人如何开始他的 Android 开发生涯,内容包括什么重要,什么不重要,以及如何做才能找到自己的第一份工作。

对于 Android 开发,我应该学习 Java 还是 Kotlin?


2017 年,谷歌正式宣布支持使用 Kotlin 进行 Android 开发。现代 Anroid 应用程序和库都是用 Kotlin 编写的,尽管 Java 仍然在使用,但主要是出于遗留原因。这两种语言非常相似,一个项目可以同时使用这两种语言。Java 比 Kotlin 历史更悠久。这意味着 Java 有更多的工具和支持。Kotlin 是一种现代语言,使用起来更简单。


尽管 Kotlin 是官方推荐的 Android 开发语言,但谷歌对这两种语言都提供了很好的支持。在业界,大多数公司都要求 Android 开发人员具备 Kotlin 知识和经验,而不是 Java。正因为如此,我建议你专注于学习 Kotlin。


同时,不要忽视网上的 Java 资源和教程。有很多用 Java 编写的 Android 资源,至今仍很有意义。


Android Studio 是 Android 开发的官方 IDE,它基于 JetBrains 的 IntelliJ IDEA。它的一个很酷的特性是自动将 Java 代码转换为 Kotlin。这意味着,你能在网上(如StackOverflow.com上)找到的任何代码片段都可以转换为 Kotlin。


除了 Java 和 Kotlin 之外,你也可以选择其他语言,如 C#、JavaScript 等。在本文的后半部分,我们会简要地讨论一下。

如何学习 Anroid 开发?


只要你有一台电脑并能访问互联网,就可以百分之百免费的学习 Android 开发。不需要任何 Android 设备就可以开始学习或构建应用。


官方的Android开发网是一个很好的起点。在那里,你可以找到有关如何开始学习和发布 Android 应用程序的资源。例如,《Kotlin Android开发入门》就非常不错,它介绍了 Android 开发的基础知识,而且完全免费。


谷歌也提供了许多Android代码实验室。当你对 Android 开发有了更深的了解,需要深入探索更多的主题时,就可以到代码实验室通过实践进行学习了。


最好的学习方式是实践。一旦你对如何创建自己的 Android 应用有了一个大概的想法,就可以开始构建了。


这是目前为止最好的学习方式:


  1. 它将提供大量你在今后的日常工作中需要的技能。

  2. 它将使你在处理代码以及自己寻找答案时更加自如。

  3. 它将为你的简历提供一些具体的内容。一个小而精湛的应用将创造奇迹。想一想你希望有一款什么应用,或者你希望每天都要做的事情能自动完成。它不必是完美的,也不必与 Uber 或 Facebook 竞争;你只需要把它开发完成并发布出来。

职业生涯破解:加入一个社区


加入一个社区可以对你的职业发展产生巨大的影响。有一群和你有着同样奋斗经历的人,可以让你感觉不那么沮丧,可以互相提携。这也有助于与业内人士建立起长期的联系。


这个行业比你想象的要小得多。人们往往喜欢与他们已经认识的人一起工作。市场上最好的工作不是通过招聘信息,而是通过口耳相传。你在梦想公司的朋友会非常乐意为你介绍你梦想的工作,而不是去面试可能申请相应职位的一千名候选人。这是双赢。


最后,同样重要的是,社区通常会分享学习技巧、新闻、工具和备忘录。人们会很乐意与你分享,而不是让你自己去寻找这一切。

我怎么找一个社区来加入?


看下你当地的社区(比如你的学校/大学/黑客组织),看看是否有人在学习 Android。如果你碰巧有朋友在从事 Android 开发,很有可能他们已经加入了某个社区,他们肯定很高兴介绍你加入。


谷歌有一个全球范围的谷歌推广社区,称为谷歌开发者小组或 GDG,这里有目录。


meetup.com可以用来查询附近和网上的 Android 聚会,这可以作为寻找社区的好线索。


/r/androiddev是一个很好的地方,在这里可以看到 Android 开发者们在聊什么,它本身就是一个大型的全球性社区。


最后,同样重要的是,看看 Android 官方的 Twitter 账户(@AndroidDev)。它非常活跃,经常会分享大量有用的信息。

如何在求职时脱颖而出?


证书和文凭在就业市场上迅速失去价值,许多大公司已经不再要求计算机科学学位


相反,使候选人在与其他人的竞争中脱颖而出的是工作经验。幸运的是,对于我们的职业,这一点可以通过互联网实现。具体来说:


  1. 构建并向世界发布一款真实的应用程序(即通过 Play Store)。

  2. 在 GitHub 上创建一个账号,并为开源软件做贡献。

  3. 通过博客和社交媒体分享在线学习经验。上述几条有个很大的好处,就是没有时间限制,可以在你的整个职业生涯中增加你的信誉。

我了解 C#,我应该从 Xamarin 入手吗?(或者 Flutter、React Native 及其他类似的框架)


一家公司在开发 Android 应用时,通常会开发同一应用的 iOS 版本。为了节省精力和金钱,人们创造了新的技术,使用相同的代码库生成 Android 和 iOS 应用。诸如 Xamarin、Flutter 和 React Native 等框架就是在这种情况下产生的。


它们与原生 Android 开发有很大的不同。它们有自己的工具、编程语言、社区、优点,最重要的是,还有问题。在使用这些技术时,除了 Android 和 iOS 原生开发的问题外,你还将不得不解决每个框架所特有的问题。


先从 Android 开发的基础知识开始,了解它的不同寻常之处,然后再进入更多未知的领域。

Jetpack Compose 是什么?我应该学下吗?


Jetpack Compose 是谷歌新推出的一个 Android UI 框架。这是一种使用 Kotlin 编写 UI 的新方法。从正面说,使用新框架是一种乐趣。


但实际上,该框架最近才发布了1.0版。这意味着许多公司还没有多少机会使用它,许多公司正在设法弄清楚如何在他们的应用中使用它。目前,很多工作都还没有这个要求。


如果是现在开始学习 Android 开发,那么我建议你专注于 Android 的基础知识,并使用 Views 构建自己的第一个 Android 应用。你可以随时用 Compose 开发一个新的应用,看看它是什么样子。

小结


在从事了 10 年的 Android 开发工作后,如果要重新开始我的职业生涯,我就会像上面所说的那样做。希望这篇文章涵盖了你在开始工作时可能遇到的所有未知的情况。


感谢Daniele ContiChris BashaSebastiano Poggi 校对这篇文章。此外,我在 Twitter 上很活跃,我会分享我正在构建的东西。欢迎关注我(@alexstyl),获取更多有关 Anroid 开发的信息。


查看英文原文:


https://proandroiddev.com/if-i-were-to-start-my-android-career-in-2022-here-is-how-i-would-do-it-c7f149dc8cbf

2022-04-07 11:19994
用户头像
刘燕 InfoQ高级技术编辑

发布了 951 篇内容, 共 342.0 次阅读, 收获喜欢 1722 次。

关注

评论

发布
暂无评论
发现更多内容

「Docker 那些事儿」容器很难理解?带你从头到尾捋一遍

Albert Edison

7月月更

Hive的UDF

怀瑾握瑜的嘉与嘉

hive 7月月更

Flutter 退出当前操作二次确认怎么做才更优雅?

岛上码农

flutter ios 安卓 移动端开发 7月月更

ajax

Jason199

ajax 7 月月更

线程的启动与优先级

zarmnosaj

7月月更

图解网络:什么是虚拟路由器冗余协议 VRRP?

wljslmz

网络技术 路由协议 7月月更 VRRP

为什么说数据服务化是下一代数据中台的方向?

雨果

数据中台 数字化转型 DaaS数据即服务

Web侧防御指南

穿过生命散发芬芳

7月月更 Web防护

秒杀系统设计

库尔斯

架构实战营

DotNet圈里一个优秀的ORM——FreeSql

为自己带盐

7月月更 freesql dotnetcore

服务可见可观测性

阿泽🧸

微服务 7月月更

Python XML-RPC实现简单的远程调用过程

宇宙之一粟

Python 7月月更

Web2.0的巨头纷纷布局VC,Tiger DAO VC或成抵达Web3捷径

股市老人

Spring Boot应用在kubernetes的sidecar设计与实战

程序员欣宸

Java Kubernetes Sidecar 7月月更

scrcpy这款软件解决了和同事分享手机屏幕的问题| 社区征文

尼露

电商系统微服务架构

极客土豆

你开发数据API最快多长时间?我1分钟就足够了

雨果

API API开发

Vuex(一)

小恺

7月月更

最全SQL与NoSQL优缺点对比

雨果

sql NoSQL 数据库

linux-riscv-5.17 纯净源码

贾献华

7月月更

疫情当头,作为Leader如何进行团队的管理?| 社区征文

洛神灬殇

团队管理 远程办公 7月日更 初夏征文

封装一个koa分布式锁中间件来解决幂等或重复请求的问题

程序知音

编程 程序员 后端

L3立法试水,为自动驾驶产业带来什么?

脑极体

毕业总结

库尔斯

架构实战营

linux硬盘挂载教程

乌龟哥哥

7月月更 7 月月更

『快速入门electron』之实现窗口拖拽

是乃德也是Ned

Electron electron实战 7月月更

Label Semantic Aware Pre-training for Few-shot Text Classification

infoQ-LolitaAnn

自然语言处理 nlp acl 7月月更

leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

为什么网站打开速度慢?

源字节1号

网站开发

疫情当头,作为Leader如何进行代码版本和需求开发管控?| 社区征文

洛神灬殇

团队管理 远程办公 7月日更 远程开发 初夏征文

10年Android开发者经验分享:如何从0到1开启职业生涯_语言 & 开发_Alex Styl_InfoQ精选文章