蒼時弦也
蒼時弦也
資深軟體工程師
發表於

轉職工程師:尋找自己的價值

這系列的文章已經稍微討論過我自己在學習寫程式過程中的心態方法困難,最後就來討論最後一個我認為很重要的問題。

不論學了什麼,或者有多麽厲害的技術,作為一個工程師我們的價值在哪裡?

殘酷的問題

有時候,可能會想到一些在網路上看過或者似乎很已明的人,可能會有點嫉妒「明明沒什麼能力為什麼待遇這麼好?」「他只是運氣好而已吧!」「他只是靠關係而已!」之類的,我們越思考這個問題,就開始覺得有很多人「條件比自己差」但是總是能能拿到比自己好的待遇。

所以,問題真的是自己「能力」差的關係嗎?忘記從什麼時候開始,我偶爾會思考這個問題。

很可惜,在「業界」能力雖然很重要,但是偏偏不是「唯一」的條件。

還有一些人是很擅長包裝自己,不過這篇文章不討論,因為我也不太清楚那是怎麼運作的。

應該扮演的角色

以在五倍來說,在很多外面的活動如果被老闆們介紹,常常會聽到老闆說「我們家的工程師都比老闆厲害」這樣的話,在五倍老闆(甚至負責行政的同事)幾乎全部的人都懂程式,但是為什麼會這樣介紹呢?

單純就技術面來說,老闆們確實在像是「開會」的這些日常任務中慢慢失去了可以磨練技術的機會。但是對五倍這間公司重要的是什麼?公司的案源、人脈,還有面對客戶的壓力等等問題,都是由「老闆」這個角色負責的,所以能力真的很重要嗎?

要看你現在是什麼角色

我從小就確定我不適合當「領導者」這個角色,如果是小團隊的話我倒是有自信讓一個團隊發揮出更好的成果,但是如果是一個大的組織,我認為我是不適合帶領一大群人的。

所以我給自己的角色是一個「輔助者」的角色,儘可能的讓被支援的人可以安心的去專注在他應該專注的事情上,以我的工作來說,我要做的就是儘可能地去改善開發上的環境跟方法,讓公司能有更多的選擇。

有機會我就會去嘗試一些新的東西,像是 CI/CD 的建立、一些針對工程師的輔助和管理的工具等等,或者是在部署上的嘗試,因為不知道什麼時候可能會需要用到,必要的時候也能夠過類似的概念去推測對應的方案。

其實這些事情誰來做都可以,只不過⋯⋯

對你來說,你認為值不值得做?

失去還是得到?

以前和人聊過,如果把一些東西「自動化」之後,原本自己負責的工作就會變得輕鬆。那麼就有可能失業或者被安排更多的工作,那麼「自動化」到底是好還是不好呢?

像是前陣子因為人工智慧的發展,開始能夠自動的寫程式,就有人就開始提出「未來工程師會失業」之類的像法,或者像是淘寶這幾年用人工智慧製作廣告橫幅的技術好了,設計師或工程師真的會失業嗎?

週末在 Netflix 上看了一部叫做「機械拳擊(Megalo Box)」的動畫,在主角爭奪進入決賽的資格時,對上的就是人工智慧的拳擊裝甲,但是即使人工智慧能夠預測所有的動作,當他碰到預期之外的事情時,他就無法做出反應。

而裡面總是回提到一句話「在擂台上,只有真的能留下來」

所以,我實際上是不擔心,也不害怕我去做這些工具、自動化的輔助,會影響我在工作上的待遇或者工作的內容,對工作來說,我的想法也挺簡單的。

得到多少待遇,就付出多少力氣

所以當我有能力創造這些工作加速我的工作時,我應該是期待我的待遇會被提高才對吧?因為我能比其他人負擔更多任務,也就表示我在一個團隊裡面「更重要」

另一方面,即使我把這些東西設定和配置出來,也不代表在缺少我的情況下這些工具是能使用的。

大家有沒有碰過一些接過來的專案,所有人都是照著使用,但是卻沒有人知道最初是怎麼用的?而原作者可能還已經離職很久了,這個東西其實處於隨時都可能突然無法用的狀態。

就像我配置的 CI 設定好了,雖然大部分的專案都能複製過去使用,但是每個專案的細微差距,其實在不同專案間因為沒有調整而有些微的問題,但有在使用的同事都沒有注意到(最後是我自己找出來)

改善自己跟同事的工作環境,不會是件壞事

另一個角度想,某件事情都是你在負責,已經嚴重干擾自己日常的工作。把他教給同事跟自動化,是改善工作的品質的一種手段,而且能讓你更專心在該做的事情上。

你需不需要夥伴?

以前我覺得我「自己」就能夠做到所有的事情,什麼事情都「自己來」就可以了。畢竟從後端、前端或者設計、管理以及其他相關的知識,我都學過,也都建立了一個基本的概念。

不過,如果只是一個小專案,自己來是沒有問題的。但是現在是一個稍微有點規模的專案呢?即使動作再快,方法再好,也跟不上需求,所以你總是會需要夥伴。

在一個團隊,只追求自己的進步效果是很差的

如果你待的是一間很好的公司,最後選擇離開的理由通常會是什麼?我認為大多會是待遇和同事跟不上你的進步,所以你必須去換一個更好的公司。

但是如果這是一間夠好的公司,同事跟待遇都還不錯,如果發現同事跟待遇都要跟不上自己的話,我該做什麼事情?

讓這個團隊成長

程式語言社群其實就是一個例子,只要還有人希望這個語言成長、有人使用,那麼就會開始分享、舉辦活動。這也是我很喜歡找同事聊技術(即使同事可能不想!?)或者參加研討會去分享我知道的東西,因為只有創造一個良性的循環,我們才有機會繼續互相讓對方成長。

而且收到回饋的時候,會發現有更多有趣的事物可以去探索。

自身的價值

不論是在玩遊戲,或者是在工作上,我想不管是誰都希望自己「被信任」所以老闆/組長才會放心的把工作交給你,而我們的責任就是把工作做好、完成。

在五倍我也是很相信同個專案的同事,無關能力或者其他東西,我認為一起工作的夥伴都會把工作做好為前提,如果真的做的不理想,那麼就來討論為什麼會這樣,要怎麼改善就好。

所以,得到的待遇跟期待,有時候無關能力,還跟態度有關係。

就像怎麼選第一篇工作?我怎麼準備履歷兩篇文章,我都提出「態度」的問題。

我設定給自己的角色是一個「輔助」的角色,而且我相信同事跟老闆應該都是「信任」我會把事情做好,所以才會請我協助的。

提升能力對我來說確實是重點,但是在能力之外,我還是會注意我自己的態度是不是正確,或者有沒有要改善的地方。

偶爾有人會問我說「以你現在這樣的能力,這個待遇是不是太低了?」我雖然會想一下,但是其實並沒辦法做出一個適當的回答,一方面是我認為我的表現老闆都看得到。另一方面是我知道我自己還有很多地方做不好,像是有時候會對一些問題因為定義上很糾結,反而卡住跟客戶討論的進度,或者不太能掌握該提出什麼比較適合。

能力只是一種手段可以靠學習,但是人格特質需要細心培養

所以不要覺得上了課就能順利成為工程師,也不要覺得能力很強了就可以拿到好的待遇。因為我們的問題很可能「不在能力」上面。

其實工程師的職缺也不難拿到,還是很常聽到有人在找工程師。只不過作為一個工程師之外,是不是還需要有其他人格上的要素去配合,才能擔任好這個角色?

總結

雖然文章提到了除了個人能力以外,扮演什麼角色也很重要。還有一個我「不擅長」也「不喜歡使用」的方式,那就是讓自己變得出名(包裝自己)。這不是一件壞事,只是要看運用得恰不恰當就是了,至少在我知道的人們裡面,有惡名昭彰的,也有我認為做得非常好我學不來的。

太多出名的人都是過度包裝的

如果是因為做事做得好(像是教學、熱心參與社群)而變得出名,那當然是令人尊敬的。不過現實上,程式圈我們總是會看到一些「沒有什麼實力」的人被很多人吹捧,然後因為支持者眾多,有很難提出反面的意見,反而讓很多可以思考跟討論的問題剩下一個唯一的答案。

雖然不知道是不是錯覺,其實我個人感覺這幾年很多真正的高手都像是隱居起來,然後一些社團之類的混亂,就這樣繼續亂下去⋯⋯(也許是真的回到累了,所以放手了吧 XD)

所以比起這些方式,我比較喜歡慢慢累積,隨著時間體現(累積)自己的價值。

寫文章、分享、參與社群活動,其實很累,不過也是一種累積的方式。