Noogler 一個月心得
Noogler 一個月心得
拖延的症狀嚴重到都快把整個年假拖完了。
培訓
公司對 Noogler 都有一個新人培訓課程,我被 schedule 在第三週才開始這個課程,但好像不參加也不會怎麼樣。
課程內容包含一些價值觀跟一些內部使用工具的教學。對於價值觀來說,我覺得就是一些看膩的正能量灌輸。另外一些對 end-user 的主題我也不太知道跟我們 team 有什麼關係:例如,accessibility 對一個前端可能很重要,但對維護一個給內部人用的函式庫感覺就比較飄渺一點。另外,眾所周知 Google 有一個包山包海的 monorepo,但我們 team 的程式碼並不屬於那個 monorepo,而是基本上用另一套系統。這就導致新人培訓教的許多東西,以及不少其他人都在用的工具好像用起來都絆手絆腳的。另外課程的時區疑似是在印度,直接把課程安排在我們吃飯時間。
Coding
拿到的筆電是 chromebook。不知道為什麼要有但配有觸控螢幕。
根據我的理解 chromeos 的 app 基本上都是 chrome 的一個 tab,所以理論上我們完全都是在瀏覽器裡面寫程式,包含 SSH 進遠端機器的 terminal。
我覺得在這電腦上寫 code 就很綁手綁腳。首先是必須用不熟悉的 terminal 跟鍵位(必須用 chrome),還得去學很多 Google 內部用的工具,從零開始學起。然後是基本上需要在遠端機器上寫 code,每次公司網路延遲一差就很痛苦。此外不時就需要打一下密碼跟檢查一下硬體金鑰。不知道是不是跟 security policy 有關,可能在大公司就會有一堆規定。說到一堆規定,就想到我們需要保密很多東西。首先當然不能洩漏 source code,而新產品的代號或是 spec,或者試用機本身也都要小心。特別是 dogfooding,很多本來就公開的軟體在公司內有一個員工版本會有未公開的功能,據說也不能講這些。雖然可能好用,但就有一種獲得這些知識要被懲罰的感覺。聽說如果開其他網站時不小心輸入了公司帳號的密碼會被抓到要強制換密碼,感覺隨時都被 security 監控。
關於 document,有聽說一個說法是 docs 不是過時了就是 under construction。雖然我覺得我目前碰到的部份跟 NASA 比起來好一點,但也有一些突發狀況。例如有一次是突然就不能跑 code 了,去問 mentor 才知道是剛好那天某個我們依賴的 infra 壞掉(我以為在大公司不會發生這種事xd)。
入職後有被分配一個 first bug,應該就是一個 minor 的 feature request,但也花了不少時間。建置環境、讀懂既存 codebase、搞懂我們在做的事情的心智邏輯、學習術語跟各種內部系統的 convention,還有讀懂 spec 跟確認、溝通 spec。順帶一提因為是寫 C++ 當然少不了傳統藝能(記憶體錯誤),也有想過是不是換成 rust 就能直接避免這些錯誤,但怎麼遷移既存的 code,以及現在整個 team 突然要換語言也很難,還有 third party library 等等的阻力。也許一個正常的工程師就是整天跟 trade-off 還有 workaround 打交道。
有時候會想工作內容跟 ICPC 甚至跟大學讀的科目沒什麼關聯(指微積分或 DSA 之類的,也許 計結 算有點關係),和面試考的東西可能也無關,但這也不是一天兩天的事了,Signaling 就是這樣。認識的幾個人進去之後都跟我說他們在寫很底層的 code xd。
在 Google 是否有在用 LLM?答案是有,而且上面的人(感覺好遠)的意思感覺也是要我們積極的用 AI。我覺得現在的 AI 很聰明但還不夠聰明(這可能是件好事),至少人類還是要 review 跟訂正很多東西,還是很容易產出長篇大論的 bullshit 或是誤解需求。
英文
雖然本來 Google 就是一間美國1公司,但我可能還是沒做好這種心理準備xd
首先各種地方的告示都是英文的,信件是英文的,內部各種系統也有八成是英文的。培訓的網站跟影片也都是英文的。以我貧乏的單字量真的沒事就需要查我不懂的單字(換個說法就是每天都學到新的單字)。我最嚇到的是第一天參觀健身房的時候,連帶課程的教練都是講英文。
不過看起來大家真的在跟同事溝通的時候也是普通的講中文,除非有牽涉到外國人才會用英文。有一個有點割裂的感覺是:review code 的時候留的 comment 是英文,但線下討論的時候講的是中文,討論出結論後又用英文回 comment。我對英文的聽力真的沒什麼自信(口說更沒有,我好怕出差),如果是事先錄影或是專門配音的那種影片還聽得出來,但即時的講話或是 google meet 真的有點怕,特別是世界各地的人都有各自的口音。
進來之後覺得很可怕的事情:縮寫太多了!project 的各種代號或各個 component 都幾乎有個首字母縮寫的簡稱,雖然我知道這樣溝通比較有效率2,但這些縮寫畢竟是內部的資料,Noogler 根本不可能知道代表什麼意思,每次遇到又都要去內部的搜尋引擎查一查是什麼意思。
Misc
我真的不知道公司對 Noogler 的期望到底是什麼,但我真的覺得從入職到現在好像沒做多少事,對我們 project 的理解還在瞎子摸象3。但可以知道的是,我每天有八小時就需要耗在公司上。這跟前一段時間的自由比起來實在是差太多了。每天都覺得時間好少。想要遵守準時上下班絕不多留的原則,但因為也並沒有真的規定要幾點上下班導致很曖昧。team 上的人感覺都待好晚,每次自己想說要先走都覺得哪裡怪怪的4。還有就是,在公司吃晚餐要算入工時嗎?和 team 吃飯或聊天好像是該做的事,但我也很少能參與進話題;這不知道是不是我的問題,例如 team 上一堆人好像喜歡跑步但我並不喜歡,但要說我喜歡什麼好像也說不出來(大概就軟軟跟音遊了),仔細想想自己好像是個無聊的人。社交好難5。
公司餐廳雖然是免費而且不難吃,但我又並不想要天天吃,我實在是很難找出一個理性的理由說明為什麼。也許我想要自由?也許我對跟還不熟的人聊天覺得很難?也許大眾的口味本來就是不同的,選出沒幾道菜本來就不可能涵蓋所有人想吃的東西?也許我就不是大眾的口味?畢業之後我曾經想過幾個原則是沒有太喜歡的東西就別吃、沒有餓就什麼都別吃、不要因為只是時間到了就吃,但我覺得入職後一直在打破這些原則,從一天一餐又變回一天三餐了。
時間變少了就常常會需要面臨抉擇,例如一放假或是一下班可能朋友或家人會問要不要一起去哪,或是 team 上有一些活動,但我自己又有一些想要一個人做的事(例如音遊,寫部落格,看動畫,吃拉麵,或是 side project6)。每天都覺得怎麼時間一直碎片化。寫部落格真的比想像中還花時間,不知道為什麼。也許我應該善用手機沒事在通勤的時候打稿。
Google 裡面指涉公司常常都會直接用 corp 這個詞,就讓人有一種 corp 這個字是專指 Google 的錯覺,再加上許多內部軟體或工具前面都會加一個 g 字強調是 google 提供的版本,有一種我們在講 newspeak 的感覺(可能我太神經質也可能只是我最近在看 1984)
很多人說不要當作第一間公司會待一輩子。我也很懷疑現在做的事有沒有意義(好像我們是在用軟體在做硬體該做的事,只是硬體成本比較高所以才用我們的軟體,理論上只要硬體成本夠低就不需要了),但更煩惱的是下一年我們會不會直接被 AGI 給代替了。未來想要怎樣的職涯規劃呢?我也不知道。大公司大概就像現在這樣。startup 感覺很不穩定。quant 給人一種從散戶撈錢的罪惡感7。那就乾脆先邊學邊躺平吧。