編程生存指南 / 求生技能(入職篇)

當成功進入編程崗位時候,其實有很多東西需要面對;面試的時候,你也許面對不少挑戰,單那些主要是口頭上的比試。到了正式“入伍”,那些挑戰會是“真實”,而且需要快速適應;
文章會分享一些入職時候需要處理的東西,幫助大家更快上手;而作爲主管的你,也可以閱讀,這可以令手新同事盡快上手幫助你。

心理準備

作為軟件工程師(或稱程序員),準備入職前,其實需要有好些心理準備,這個行業的東西走得很快,而且每一個人都可能很忙,未必有專人培訓你怎樣上手。例如最近幾年冒起的Web3,BlockChain和元宇宙技能,就需要邊做邊學;

此外,開發工作由於限期和比較多不穩定因素(例如Debug),開發團隊有時候會很忙碌,所以你也會一樣忙碌的。

而大部分軟件公司的開發流程未必很規範,就算有,可能問題Schedule和變得太快的原因,會不停演變,所以,你需要懂得“適應變化”。

簡單來說,軟件開發的工作環境有它美好的一面,但也有很多讓人“疲累”的地方,所以我建議有以下的心理準備:

  • 要懂得適應新環境
  • 要懂得面對忙碌
  • 要懂得迎接挑戰
  • 要懂得自我管理和安排事情
  • 要保持熱情

最後一點很重要,忙亂的環境很容易消磨熱情,但如果你真心喜歡開發,就需要好好保護你的”熱情“了。

認識你的同事


當你進入工作環境,就需要和其他人共事,而如果你希望工作順暢,就要認識你的同事。

以下是不同類型的同事,和你需要留意的地方:

1) 上司:首先你需要認識就是你的上司,因為他會安排你任務,也會影響你的升遷。有運的話,他們會轉授一些功力給你。當然,他也有責任幫助你完成任務。


2) 老闆:另外,就是認識你的好闆,因為他會是公司的總負責人,也是金主;所以他對你說的事情,你不能忽略;不過,有種情況,你老闆吩咐你做的事情和你本身工作安排有衝突,這裡情況,你就需要跟你的上司溝通了。

3) 同組同事: 同組同事就是和你一樣是軟件工程師的人,這些人將會是你好好的幫助,可以解決很多問題,也可以讓你成長。因為編程需要很多知識上的碰撞。

4) 協作同事:除了技術同事,也有很多其他部門的同事才能讓軟件做好,例如商務同事幫助你了解用戶的要求,設計部然軟件有一個美好的外觀。

5) 人事部:人事部也是不能不知道,因為請假,工資和福利等事情,就是需要她們幫忙了。

6) 麻煩的同事: 最後,就是要了解那些同事比較麻煩,這樣可以幫助你避開不必要的麻煩。

在辦公場所,總免不過有人事或是非,但是我們需要避免捲入那些事情上;作為軟件工程師,別人主要看我們做出來的東西和手藝,所以不必要的事情(是非),就盡量不要管了。

認識你的職責

進入職場,或你的職位事,必要要知道自己負責什麼事情。基本上當然是編寫程式(開發軟件),但是你也需要請教你的上司,你是否有其他責任,例如以下的事情:

  • 製作需求清單或文檔(Requirement Specification)
  • 項目時間表 (Schedule)
  • 成本估算(Cost Estimation)
  • 部署(Deployment)

當然,有些不用說也需要做,就是測試、確保你把需求做對和跟進UAT (User Acceptance Test)。
另外,你也需要了解自己在公司的近期,中期和遠期的發展計畫。

設置硬件/軟件

正所謂“工欲善其事,必先利其器”,如果要進入“戰鬥狀態”,那麼你要首先穿好裝備;而軟件開發的裝備,就是你的硬件和軟件。硬件來說,就有一個部可以讓你快速編輯代碼和編譯應用的電腦,最好是筆記本(Notebook),可以方便你在任何地方工作(編程或演示)。而軟件方面,就是程序編輯器、編譯器,數據庫或應用後端;

而不同開發工作,有不同的裝備,例如開放HTML網頁,你只需要瀏覽器和文字編輯器。當然開發Web App就需要更多,例如NodeJS、MAMP、VS Code、Docker等等軟件。開發手機程序的話,就需要不同的手機,並且需要安裝XCode 和 Android studio。

設置代碼控制

對於開發軟件來說,代碼可以算是我們的核心,而代碼控制(Source Control),就是可以幫助我們管理代碼不同版本,也可以幫助我們和其他成員分享和合併(Merge)。所以入職時,需和你的上司幫忙介紹公司的代碼管理事情。

以下是你需要知道的東西:

  • 如何獲取Source Control的帳號
  • 公司的代碼管理規範,Branch的命名規則
  • 負責項目對應的Source Control連結

建立開發環境

要正式工作之先,你需要建立開發環境,把服務器、數據庫和應用程序等在你的機器上運行,這樣你才能毫無關係顧慮和盡情地進行開發。當必要的軟件、硬件和代碼已經齊備,其實開發環境已經建立了一半,餘下之差配置和初始化數據庫等事情。

建立開發環境這回事,通常有以下情況:

  1. 沒有任何本地開發環境
  2. 需要特地同事(例如你的上司)幫忙建立
  3. 有建立環境的指引

如果是情況1,這需要你認真地跟上司好好溝通了,讓開發環境出現。
如果是情況2,你可以順便製造建立環境的筆記,便利下一位同事。
如果是情況3,你可以幫助補完文檔的不足。

另外,如何你的團隊需要開發或使用自己的後端(Backend),強烈建議使用Docker來部署,這樣可以減少很多軟件安裝和件兼容性問題。
如果如果你想了解多些關於Docker的使用,可以看看我之前寫的Docker文章

製作學習計畫

當你對你的工作有一定認識後,你可以建立一套學習計畫,列出一些對你的工作有幫助的項目。例如你的工作是網頁開發(Web Development),你的學習清單也許如下:

  • 網頁設計
    • 基本網頁佈局設計
    • 如何使用Figma
    • 如何設計Wireframe
  • 網頁運營
    • 如何發布網頁
    • 如何選擇Hosting
    • 運營網誌的成本
  • React開發
    • 基本
    • 使用MUI
    • 如何使用Hook
    • 如何使用Redux

而這個計畫可以跟你的上司分享並進行修訂。

製作入職文檔

入職文檔 (Onboarding Guide)是一些內容讓新同事了解入職需要注意的東西,也就是這文章的部分內容,如果你的負責同事入職,我建議你做這個文檔(這東西能重用,不會太浪費的的時間);假如你是入職的人,我也建議你製造一份筆記記錄入職需要知道的資訊。

這裡有一個簡單的的大綱:

  • 歡迎文字(Welcome message)
  • 帳號資料,例如電郵,電腦的登入資料
  • 需要安裝的軟件(基本、溝通類、項目管理、軟件開發、文檔與知識管理)
  • 負責項目
  • 工作計畫
  • 試用期考核條件

總結

入職流程,無論的你是入職者或者是負責上司,也是一個重要的事情;自己年輕時候,剛剛入職也是慢慢摸索上手;而以前帶人沒有太多經驗時,新同事入職總是花他和自己好幾天或整週才能上手幫助團隊;

最近幾年,由於公司的工作太趕,沒有空間讓同事慢慢上手,所以都在不斷地在改良如何讓同事儘快上手,例如入職文檔和Docker。

另外,這裡有一些參考文章,大家有時間可以看看:

大家如果想和我討論相關的主題,或有事請教,可透過Facebook和Twitter聯繫我;

另外,請加入我的FB專頁,有新文章發布時,大家就能立即知道了。
Facebook 專頁連結:https://www.facebook.com/kencoder1024
Twitter連結:https://twitter.com/kenlakoo

圖片來源:

發表留言

在WordPress.com寫網誌.

向上 ↑