Day 02:软件业界常用软件

前言


为什麽先介绍软件

在开始进入工程师的世界之前,先来了解工程师平常使用的工具。
就能开始用这些工具完成接下来遇到的挑战,进公司後才不会慌。

硬体 / 平台选择

首先,大部分的公司都会配给 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

    • 用途:与 Slack 差不多。
    • 重要性:高

Git

代管

  • GitHub

    • 用途:最大的程序码代管服务平台
    • 重要性:高
  • GitLab

    • 用途:可以自行架设的程序码代管服务平台
    • 重要性:中

Git GUI client

  • Android Studio Version Control

    • 用途:Android Studio 内建的 Git GUI 工具,如果能够熟悉,可以省去下 Git 指令的时间。
    • 重要性:高
  • Sourcetree

    • 用途:蛮多人使用的 Git GUI 软件,Windows 跟 macOS 的功能稍微有点不同。虽然 Android Studio 已经内建工具,但如果有多个 repo,还是用专门的 Git GUI 软件比较方便,如果其他 repo 并不是 Android,也可以使用。
    • 重要性:高
  • Fork

    • 用途:与 Sourcetree 差不多,挑顺手的就好。
    • 重要性:高

专案管理

缺陷管理、任务追踪和专案管理。

  • Trac

    • 用途:可自行架设。
    • 重要性:高
  • Jira

    • 用途:可跑 Scrum。
    • 重要性:高
  • asana

    • 用途:有清单、看板、行事历及时间轴等检视的专案管理系统。
    • 重要性:高
  • Trello

    • 用途:直觉的卡片式界面,可跑 Scrum。
    • 重要性:高

办公室协作

  • Google Workspace

    • 用途:办公室经常使用的 Google 系列服务。
    • 重要性:高
  • Microsoft Office

    • 用途:办公室经常使用的服务。
    • 重要性:高

云端平台

  • Google Cloud Platform (GCP)

    • 用途:主机代管、机器学习、资料存取等服务。
    • 重要性:高
  • Firebase

    • 用途:相较於 GCP 更面向手机等 client 端服务,如身份验证、推播、(real-time) 资料存取。
    • 重要性:高
  • Amazon Web Services (AWS)

    • 用途:同 GCP 与 Firebase。
    • 重要性:高
  • Azure

    • 用途:同 GCP 与 Firebase。
    • 重要性:高

API

  • Postman
    • 用途:server 端给出 API 时,可以自带参数手动戳 API,如此就可以快速达到不容易在 App 中触发的情境。也有云端记录、分类、一键切换 domain 等功能。
    • 重要性:高

CI

CI 是可以自动 build、test、计算 lint 甚至在有问题的时候示警的持续整合服务。

  • GitHub Actions

    • 用途:可使用 GitHub 的服务器完成(也可以使用自己的服务器完成)。
    • 重要性:中
  • Jenkins

    • 用途:自架 CI 服务器。
    • 重要性:中

设计

  • Zeplin

    • 用途:公司的 designer 给出的设计稿。
    • 重要性:高
  • Figma

    • 用途:公司的 designer 给出的设计稿。
    • 重要性:高
  • Sketch

    • 用途:公司的 designer 给出的设计稿。
    • 重要性:高
  • Adobe XD

    • 用途:公司的 designer 给出的设计稿。
    • 重要性:高

笔记 / 日志 / 手稿

  • Notion

    • 用途:从 check list 到 workflow,基本上所有笔记软件有的功能它都有,还能够切换 workspace 达到工作与个人的切换。
    • 重要性:中
  • Google Keep

    • 用途:基本的功能都有,是很方便快速记录想法的地方。
    • 重要性:中
  • Sublime Text

    • 用途:单机的高级记事本,可以开启多个页签,并有预设许多程序语言 Syntax highlighting 的功能。
    • 重要性:中
  • Medium

    • 用途:写自己的 blog。
    • 重要性:低
  • GitHub Gist

    • 用途:快速分享一段程序码,还可嵌入在网页中。
    • 重要性:低

文字排版

  • MacDown

    • 用途:写 MD 格式的文件可以及时预览。
    • 重要性:中
  • HedgeDoc / HackMD

    • 用途:线上存放 MD 格式的文件(可自行架设),至於这两个版本的差异可参考这篇
    • 重要性:中

心智图

  • XMind
    • 用途:在 brainstorm、列测试项目时可以用到。
    • 重要性:低

数据分析 (BI)

如果很难想象,可以参考这篇的介绍。

  • Grafana

    • 用途:可以指定多种资料来源,并下查询指令来分析数据,最後可以用各种图表的呈现方式制作成 Dashboard。
    • 重要性:低
  • Redash

    • 用途:跟 Grafana 差不多。
    • 重要性:低
  • AppsFlyer

    • 用途:强调在行销数据的分析、量化,像是email、简讯、下载率、转换率,还能分众提供差异化内容,达到精准投放的目的。
    • 重要性:低

媒体阅读

  • Feedly
    • 用途:透过 rss 的方式,取得各种网路媒体的文章,可分类、收藏。
    • 重要性:中

ERP

  • Workday
    • 用途:公司的行政管理系统。
    • 重要性:中

VPN

  • Pulse Secure
    • 用途:公司内的机密资料通常会放在内部网路,但 WFH 的时候就需要连进公司。
    • 重要性:中

结语


会用什麽软件跟公司的性质、规模很有关系,因为有些软件贵得吓人。
虽然上面列了一大堆,但其实不用太担心,软件也是一直在更新,边做边学就好,也不是什麽功能都会用到。
也许在面试的时候,可以问面试官,公司所使用的软件,并在进公司前学起来,就能安心一点了。


<<:  Swift纯Code之旅 Day7. 「时间魔术师: DatePicker」

>>:  Day 2 - A short introduction to gcc usage - 1

2.4.10 Design System - Input Text

以前我绝对是对哲学避之唯恐不及的 但某一年意外看到「正义 一场思辨之旅」以及「超译 尼采」後 开始...

【在厨房想30天的演算法】Day 22 演算法 : 最短路径 Shortest Path Bellman–Ford 演算法

Aloha!我是少女人妻 Uerica!我家狗狗每天六点都会叫我起床,但除非自己很早睡,不然六点起床...

EP17 - 容器化你的 Django 专案

昨天我们简单介绍什麽是容器, 今天我们要开始实战, 将你的 Django Portal, 逐步包装成...

Day 24 港式年菜风-南乳莲藕炆猪手

南乳莲藕炆猪手在粤菜也作为年菜,南乳莲藕炆猪手由於颜色红润,也有鸿运当头,招财就手的含意。南乳的红就...

【Day 13】逻辑回归(Logistic Regression)(下)

Discriminative v.s. Generative Logistic Regression...