前言
为什麽先介绍软件
在开始进入工程师的世界之前,先来了解工程师平常使用的工具。
就能开始用这些工具完成接下来遇到的挑战,进公司後才不会慌。
硬体 / 平台选择
首先,大部分的公司都会配给 Android 工程师 Apple 的电脑,所以如果可以,请用 Apple 的笔电。
用笔电的原因是,在公司经常需要直接把 code、画面带去给其他人看,另外,开会的时候,也会需要笔电做 demo、查 code、做会议记录。
不过,下面介绍的软件,不是必须,通常有很多的替代品,也不限定要用网页版、桌面版,甚至是 chrome 的 app 都没关系,最重要的是顺手。
值得注意的是
- 有些软件可能到了某种上限就要收费
- 资料能不能保存在云端
- 有没有跨平台
- 不同平台间的使用方式是否一致
软件介绍
作业系统
-
macOS
- 用途:比较多的 Android 工程师是用 macOS,如果需要下指令、路径、快捷键等问题,会更容易找到答案。
- 重要性:中
-
Linux
- 用途:Android 的底层就是 Linux,如果是要搞一台 Android Automotive OS (AAOS),甚至如果有机会在 OEM 厂商工作,那就会接触到。
- 重要性:低
IDE
-
Android Studio
- 用途:开发 Android 用的集成环境,主要由 Google 维护,顺带一提,Android Studio 是基於 IntelliJ IDEA 魔改的,所以 Android Studio 跟 JetBrains 公司底下的 IDE 用法、快捷键都大致相同,未来如果接触其他程序语言就能快速上手。
- 重要性:高
-
Visual Studio Code
- 用途:跟开发原生 Android 比较没有关系,但它相对轻量,同时也是不少语言的主力 IDE。
- 重要性:低
通讯
-
Slack
- 用途:科技公司经常使用的通讯软件,有分群、权限、丢档案、自订贴图、语音 / 视讯通话等功能,甚至能在里面写各种机器人,例如:丢出 CI 执行的结果。
- 重要性:高
-
Microsoft Teams
Git
代管
Git GUI client
专案管理
缺陷管理、任务追踪和专案管理。
办公室协作
云端平台
API
-
Postman
- 用途:server 端给出 API 时,可以自带参数手动戳 API,如此就可以快速达到不容易在 App 中触发的情境。也有云端记录、分类、一键切换 domain 等功能。
- 重要性:高
CI
CI 是可以自动 build、test、计算 lint 甚至在有问题的时候示警的持续整合服务。
设计
-
Zeplin
- 用途:公司的 designer 给出的设计稿。
- 重要性:高
-
Figma
- 用途:公司的 designer 给出的设计稿。
- 重要性:高
-
Sketch
- 用途:公司的 designer 给出的设计稿。
- 重要性:高
-
Adobe XD
- 用途:公司的 designer 给出的设计稿。
- 重要性:高
笔记 / 日志 / 手稿
-
Notion
- 用途:从 check list 到 workflow,基本上所有笔记软件有的功能它都有,还能够切换 workspace 达到工作与个人的切换。
- 重要性:中
-
Google Keep
- 用途:基本的功能都有,是很方便快速记录想法的地方。
- 重要性:中
-
Sublime Text
- 用途:单机的高级记事本,可以开启多个页签,并有预设许多程序语言 Syntax highlighting 的功能。
- 重要性:中
-
Medium
-
GitHub Gist
- 用途:快速分享一段程序码,还可嵌入在网页中。
- 重要性:低
文字排版
心智图
-
XMind
- 用途:在 brainstorm、列测试项目时可以用到。
- 重要性:低
数据分析 (BI)
如果很难想象,可以参考这篇的介绍。
-
Grafana
- 用途:可以指定多种资料来源,并下查询指令来分析数据,最後可以用各种图表的呈现方式制作成 Dashboard。
- 重要性:低
-
Redash
-
AppsFlyer
- 用途:强调在行销数据的分析、量化,像是email、简讯、下载率、转换率,还能分众提供差异化内容,达到精准投放的目的。
- 重要性:低
媒体阅读
-
Feedly
- 用途:透过 rss 的方式,取得各种网路媒体的文章,可分类、收藏。
- 重要性:中
ERP
VPN
结语
会用什麽软件跟公司的性质、规模很有关系,因为有些软件贵得吓人。
虽然上面列了一大堆,但其实不用太担心,软件也是一直在更新,边做边学就好,也不是什麽功能都会用到。
也许在面试的时候,可以问面试官,公司所使用的软件,并在进公司前学起来,就能安心一点了。