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

2022 年 4 月 15 日 InfoQ

作者 | Alex Styl
译者 | 平川
策划 | 刘燕

本文最初发布于 ProAndroidDev 博客。

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

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

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

1 对于 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 等。在本文的后半部分,我们会简要地讨论一下。

2 如何学习 Anroid 开发?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

谷歌有一个全球范围的谷歌推广社区,称为谷歌开发者小组或 GDG,这里https://gdg.community.dev/chapters有目录。

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

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

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

5 如何在求职时脱颖而出?

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

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

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

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

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

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

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

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

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

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

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

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

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

8 小结

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

感谢 Daniele Conti、Chris Basha 和 Sebastiano 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

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

一边在大厂一线搬砖、一边操着CTO的心搞开源:一位普通中年程序员的开源十年路

ClickHouse为啥在字节跳动能这么火?| 卓越技术团队访谈录

大佬愤怒喊话:做Kubernetes开源工作难以在大厂内晋升

隐居、反内卷,不意味着躺平|专访2021年度“杰出新自由软件贡献者”奖得主



 活动推荐

城市站点北京站马上开幕了!

参加线下沙龙你可以加入北京技术圈儿、拓展你的朋友圈人脉、遇到志趣相投的伙伴、获取 InfoQ 精美周边等!快扫描下方二维码报名参与吧!

点个在看少个 bug 👇

登录查看更多
0

相关内容

一种基于Linux内核的综合操作,即包括各类底层驱动的开发,也包括使用java语言编写,但运行在Dalvik VM(非 Java 虚拟机,Android 4.4以后版本可选择运行在ART上)中编译和执行的应用程序设计。
【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
29+阅读 · 2020年12月17日
【2020新书】Google软件工程方法论,617页pdf
专知会员服务
79+阅读 · 2020年11月11日
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
61+阅读 · 2020年10月15日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Python计算导论,560页pdf,Introduction to Computing Using Python
专知会员服务
72+阅读 · 2020年5月5日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
Android 游戏开发工具大升级
谷歌开发者
0+阅读 · 2022年4月21日
Android 基础知识课程助您轻松构建应用
谷歌开发者
0+阅读 · 2022年3月25日
欢迎体验 | Android 13 开发者预览版 2
谷歌开发者
1+阅读 · 2022年3月18日
Android 13 首个开发者预览版到来
谷歌开发者
0+阅读 · 2022年2月12日
步履不停 | 为赋能下一代 Android 开发者
谷歌开发者
0+阅读 · 2021年12月16日
精彩回顾 | 2021 Android 开发者峰会
谷歌开发者
0+阅读 · 2021年12月6日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
11+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
Arxiv
13+阅读 · 2022年1月20日
Directional Graph Networks
Arxiv
27+阅读 · 2020年12月10日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
15+阅读 · 2018年2月4日
VIP会员
相关VIP内容
【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
29+阅读 · 2020年12月17日
【2020新书】Google软件工程方法论,617页pdf
专知会员服务
79+阅读 · 2020年11月11日
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
61+阅读 · 2020年10月15日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Python计算导论,560页pdf,Introduction to Computing Using Python
专知会员服务
72+阅读 · 2020年5月5日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
相关资讯
Android 游戏开发工具大升级
谷歌开发者
0+阅读 · 2022年4月21日
Android 基础知识课程助您轻松构建应用
谷歌开发者
0+阅读 · 2022年3月25日
欢迎体验 | Android 13 开发者预览版 2
谷歌开发者
1+阅读 · 2022年3月18日
Android 13 首个开发者预览版到来
谷歌开发者
0+阅读 · 2022年2月12日
步履不停 | 为赋能下一代 Android 开发者
谷歌开发者
0+阅读 · 2021年12月16日
精彩回顾 | 2021 Android 开发者峰会
谷歌开发者
0+阅读 · 2021年12月6日
相关基金
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
11+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
相关论文
Top
微信扫码咨询专知VIP会员