Linux中國

Android 工程師的一年

這幅妙絕的題圖來自 Miquel Beltran

我的技術生涯,從兩年前算起。開始是 QA 測試員,一年後就轉入開發人員角色。沒怎麼努力,也沒有投入過多的個人時間。

你可以從我為何從生物學轉向技術和我學習 Android 的一年 這兩篇文章中找到些隻言片語。今天,我想談談是自己是如何開始擔任 Android 開發人員這個角色、如何換公司以及作為 Android 工程師的一年所得所失。

我的第一個職位角色

我的第一個職位角色, Android 開發者,開始於一年前。我工作的這家公司,可以花一半的時間去嘗試其它角色的工作,這給我從 QA 職位轉到 Android 開發者職位創造了機會。

這一轉變歸功於我在晚上和周末投入學習 Android 的時間。我通過了 Android 基礎納米學位Andriod 工程師納米學位課程,也獲得了 Google 開發者認證。這部分的詳細故事在這兒

兩個月後,公司僱傭了另一位 QA,我轉向全職工作。挑戰從此開始!

比起給他們提供一台筆記本電腦和一個 git 賬號來說,要把某人轉變為勝任的開發角色,顯然困難重重。在這裡我解釋一下我在那段時間遇到的一些障礙:

缺乏預期

我面臨的第一個問題是不知道公司對我的期望。我認為他們希望我從第一天起就有交付物,雖然不會要求像那些經驗豐富的同事一樣,但也要完成一個小任務就交付。這種感覺讓我壓力山大。由於沒有明確的目標,我一直認為自己不夠好,而且是個偽劣的冒牌貨。

缺乏指導

在公司里沒有導師的概念,環境也不允許我們一起工作。我們很少結對編程,因為總是在趕項目進度,公司要求我們持續交付。幸運的是,我的同事都樂於助人!無論何時我卡住或需要幫助,他們總是陪我一起解決。

缺乏反饋

那段時間,我從來沒有得到過任何的反饋。我做的好還是壞?我應該改進些什麼?我不知道,因為我沒有得到過任何人的評論。

缺乏學習氛圍

我認為,為了保持常新,我們應該通過閱讀博客文章、觀看演講、參加會議、嘗試新事物等方式持續學習。該公司在工作時間並沒有安排學習時間,不幸的是,其它開發人員告訴我這很常見。由於沒有學習時間,所以我覺得沒有資格花費哪怕十分鐘的時間來閱讀與工作相關且很有意思的博客文章。

問題不僅在於缺乏明確的學習時間津貼,而且當我明確要求時,被拒絕了。

當我完成突擊任務時,發生了一個例子,我們已經完成了任務,因此我詢問是否可以用剩下的時間來學習 Kotlin。這個請求被拒絕了。

另外的例子是我想參加一個 Android 相關的研討會,然後被要求從帶薪年假中抽出時間。

冒充者綜合征

在這公司缺乏指導、缺乏反饋、缺乏學習氛圍,使我的開發者職業生涯的前九個月更加煎熬。我有感覺到,我內心的冒充者綜合征與日俱增。

一個例子就是拉取代碼進行公開展示和代碼審查。有是我會請同事私下檢查我的代碼,並不想被公開拉取,向任何人展示。

其他時候,當我做代碼審查時,會花好幾分鐘盯著「批准」按紐猶豫不決,在擔心審查通過的代碼會被其他同事找出毛病。

當我在一些事上持反對意見時,由於缺乏相關知識,擔心被坐冷板凳,從來沒有大聲說出來過。

某些時間我會請同事私下[...]檢查我的代碼,以避免被公開展示。

新的公司,新的挑戰

後來,我手邊有了個新的機會。感謝曾經和我共事的朋友,我被 Babbel 邀請去參加初級 Android 工程師職位的招聘流程。

我見到了他們的團隊,同時自告奮勇的在他們辦公室主持了一次本地會議。此事讓我下定決心要申請這個職位。我喜歡公司的箴言:全民學習。其次,公司每個人都非常友善,在那兒工作看起來很愉快!但我沒有馬上申請,因為我認為自己不夠好,所以為什麼能申請呢?

還好我的朋友和搭檔推動我這樣做,他們給了我發送簡歷的力量和勇氣。過後不久就進入了面試流程。這很簡單:以很小的程序的形式來進行編碼挑戰,隨後是和團隊一起的技術面試,之後是和招聘經理間關於團隊合作的面試。

招聘過程

我用周未的時間來完成編碼挑戰的項目,並在周一就立即發送過去。不久就受邀去當場面試。

技術面試是關於編程挑戰本身,我們談論了 Android 好的不好的地方、我為什麼以這種方式實現這功能,以及如何改進等等。隨後是招聘經理進行的一次簡短的關於團隊合作面試,也有涉及到編程挑戰的事,我們談到了我面臨的挑戰,我如何解決這些問題,等等。

最後,通過面試,得到 offer,我授受了!

我的 Android 工程師生涯的第一年,有九個月在一個公司,後面三個月在當前的公司。

學習環境

對我來說一個大的變化就是每兩周會和工程經理進行面對面會談。那樣,我很清楚我們的目標和方向。

在需要如何改進、需要如何提供幫助及如何尋求幫助這些事情上,我們得到持續的反饋和想法。他們除了提供內部培訓的的福利外,我還有每周學習時間的福利,可以學習任意想學的。到目前為止,我正利用這些時間來提高我的 Kotlin 和 RxJava 方面知識。

每日的大部分時間,我們也做結對編程。我的辦公桌上總是備著紙和筆,以便記下想法。我旁邊還配了第二把椅子,以方便同事就坐。:-)

但是,我仍然在與冒充者綜合征鬥爭。

仍然有冒充者綜合征

我仍然在鬥爭。例如,在做結對編程時,當我對某個話題不太清楚時,即使我的同事很有耐心的一遍一遍為我解釋,但有時我仍然還是不知道。

兩次三次後,壓力就堵到胸口。為什麼我還不知道?為什麼就那麼難理解?這種狀態讓我焦慮萬分。

我意識到我需要承認我確實不懂某個特定的主題,但第一步是要知道有這麼個概念!有時,僅僅需要的就是更多的時間、更多的練習,最終會「在大腦中完全演繹」 🙂

例如,我常常為 Java 的介面類和抽象類所困擾,不管看了多少的例子,還是不能完全明白他們之間的區別。但一旦我使用後,即使還不能解釋其工作原理,也知道了怎麼使用以及什麼時候使用。

自信

當前公司的學習氛圍提升了我的自信心。即使我還在問很多問題,也開始如魚得水了。

經驗較少並不意味著您的意見將不會被重視。比如一個提出的解決方案似乎太複雜了,我會挑戰自我以更清晰的方式來重寫。此外,我提出了一套不同的體驗和觀點,目前,對公司的應用程序用戶體驗改進有著很大幫助。

提高

工程師的角色不僅僅是編碼,而是廣泛的技能。 我仍然處於旅程的起點,在掌握它的道路上,我想著重於以下幾點:

  • 交流:因為英文不是我的母語,所以有的時候我需要努力傳達我的想法,這在我工作中是至關重要的。我可以通過寫作,閱讀和交談來解決這個問題。
  • 提有建設性的反饋意見:我想給同事有意義的反饋,這樣我們一起共同發展。
  • 為我的成就感到驕傲:我需要創建一個列表來跟蹤各種成就,無論大小,或整體進步,所以當我掙扎時我可以回顧並感覺良好。
  • 不要著迷於不知道的事情:當有很多新事物出現時很難做到都知道,所以只關注必須的,及手頭項目需要的東西,這非常重要的。
  • 多和同事分享知識:我是初級的並不意味著沒有可以分享的!我需要持續分享我感興趣的的文章及討論話題。我知道同事們會感激我的。
  • 耐心和持續學習:和現在一樣的保持不斷學習,但對自己要有更多耐心。
  • 自我保健:隨時注意休息,不要為難自己。 放鬆也富有成效。

via: https://proandroiddev.com/a-year-as-android-engineer-55e2a428dfc8

作者:Lara Martín 譯者:runningwater 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國