之前分享過兩篇跟軟實力和硬實力有關的文章,分別是職涯與學術環境小記認識程式語言-從程式解題開始
這篇文章算是紀念我就職滿一週年的分享,如果你有想聽的內容,歡迎讓我知道。
也歡迎你在右上角的Link分享你的網誌連結,讓我們一起成為交流夥伴。

工程師的軟實力


工程師要培養軟實力是一件蠻大的門檻,儘管你已經在一定的程度上具有軟實力的mindset,你的同事也不一定擁有一定的知識量。
工程師是一個很神奇的生物,我時常這麼形容。每個人都有自己的邏輯與想法,有時候彼此也很難對上頻。
有時候和同學聚餐,時常聽到一句話:某同事說很難跟我對上頻率。
我覺得這個問題不光只是新鮮人,甚至連資深工程師也會有這樣的問題,一個很簡單的問題可以講得很複雜,甚至表達含糊。
所以公司在最近有開設溝通技巧想解決這樣的問題。

溝通的方法


溝通有很多方式,可能是文字上,可能是言語上,每個人擅長的地方不同。
我認為溝通最直接的就是站在對方的角度去思考如何解釋,比較能夠講出貼近對方的話。
但是有時候人是很難互相的,自己站在對方的角度去思考,對方可能又不會這麼做。
當你認為對方不善於溝通時,請思考一下,是思考角度的問題,還是對方擅長的溝通方式不同?
大部分的情況,不太會遇到不善於溝通的情境,幾乎是頻率對不上。

別把自己的思考模式視為理所當然


“理所當然”這件事情是一件很恐怖的事情,簡單來說就是習慣。
每個人都有自己習慣的思考模式,甚至是有自己的道德。
一旦你認為大家的道德與思考模式都要跟你一樣時,其實對彼此都是很受傷的。

  1. 習慣性
    例如:同事習慣性的會幫你拿便當放在你的位置上。
    如果有一天,你的同事不方便幫你拿,也許你會突然不開心的心想:為什麼你不幫我拿還要我自己拿?

  2. 資訊同步

    你在跟別人討論一些技術時,相信也會遇到對方是自己的上級或是下級。
    當你要和不熟的人溝通一些技術的時候,如果沒有溝通過,其實很難理解對方的程度在哪。
    例如你要跟對方討論蛋炒飯怎麼讓飯好吃的時候,你一定要先知道對方會不會煮飯, 開火……
    所以你可以在溝通時說:請問你炒蛋炒飯的時候,你都是怎麼處理飯的?
    你可以藉由一個句子去問到不止一個問題,對方如果不知道,會主動給你答案。
    你:會不會炒蛋炒飯?有沒有處理過飯?
    他:有炒過,把飯放到硬度中等再拿來炒 / 沒炒過

  3. 先入為主
    例如:你在跟別人討論程式設計的事情,對方非本科系,而你是本科系的,你就會認為對方“一定”不知道變數怎麼宣告。
    有時候我們為了溝通方便,會先假設對方已經知道或還未理解,但是千萬要記住,不要輕易全盤肯定或否定,這樣貼標籤不太禮貌。
    你可以說:請問你知道變數怎麼宣告嗎?(同理心溝通)
    但是千萬不要說:你要自己先去了解怎麼宣告變數呀!(先入為主思考,假設對方一定不知道的情況)

拿下不必要的偶像包袱


偶像包袱有時候也是學習很大的殺手,有些人不喜歡被別人知道自己的弱項,而刻意去包裝自己。
可是這樣長期下來,自己的學習量是有限的。
學習最快的方式,應該是透過討論學習,找出自己的缺陷再去加以充實。
不要怕自己說什麼簡單的技術不會,你不問的話,以後不知道也會繼續怕而已,不如早點問。
當然你也不用怕對方會有偶像包袱而不理你問的技術,也許你的小問題對他來說是很有研究的主題。

不分輩分和階級的溝通


從以前到現在,我依然對我自己說,不管是面對學弟妹還是學長姐,都要一視同仁。
對方在未來可能是你在某個專業知識上的推手,每個人都有自己擅長的地方。
像是我們在公司溝通,不管對方年紀可能已經3x, 4x了,我們也是能夠一視同仁的對話。
儘管在大學的時候,彼此溝通也是如此。
如果你太在乎對方年紀比較小就講話很囂張,或是年紀比較大就講出那種話,這些觀念的話,其實早在你這麼想的時候,你就已經有這個觀念了。
要改變先從自己開始。

硬實力先從基本功開始


程度很好的工程師,不二法門就是基本功扎實。
如果一個工程師基本功不扎實,他說他自己會機器學習或是大數據,你相信嗎?
隨便舉個例子,有一位工程師到某公司面試,這位工程師以前研究所做過很多專案,如深度學習。
面試主管看他有Python專案的經驗,又是使用Python解codility的。
他問:我看你使用Python的經驗蠻豐富的,那請問你Python是怎麼善用記憶體去儲存資料的?callstack如何呼叫可以解釋一下嗎?
面試者愣在那不知道該如何是好

任何艱難的技術,其實是可以靠基本的專業知識辦到的,在程式設計的世界中,幾乎沒有不可能的事情(不考慮現實的前提之下)
艱難的技術在職場上用到的時機並沒有很長,頂多是在優化階段時,改善效能使用的。
在一般的開發情境下,大家幾乎是在開發設計上,實際應用上,優化效能絕對不是在考量的第一選擇之中。
沒有趕快把產品上架給使用者使用,其實你很難去預測使用者真正的期待是什麼。
因此扎實的基本功,才是職場真正想要的人才,但是真正做到的工程師並不多,甚至很多資深工程師也不太扎實。

硬實力也可以是一種軟實力


例如design patterns就是最大的代表,當然可能也會視部門內的規範而有些差異。
但是基本上如果你已經有一定的design patterns知識,那麼你也在硬實力上具備一定的軟實力。
設計出來的程式自然也簡潔又出色。

職場是你的舞台不是教室


職場不是你的學習教室,因此當你要步入職場之前,你必須要先為自己打預防針,你在這不一定會學到你要的技術。
但是職場是你發揮的舞台,剛進公司帶你的mentor並不會每天都盯著你的學習狀況和手把手帶你,一切要靠你的自學技巧。
如果你的自學能力不好,那麼從進職場的開始一定要開始練習(這也是為什麼很多面試官喜歡錄取自學能力強的人)
mentor或公司可能會在一開始提供你資源,你可以選擇用或是不用,這當然要看你的學習狀況。
當你試用期過了之後,再來就要看你在部門中如何發揮所長了。
如果你在試用期沒有好好把自我訓練自學能力的話,那麼你的現世報會在之後慢慢出現。
突然認為在部門當中學不到你想要學的東西,但是事實上學習是在自己,“而不是靠環境主動給你資源”
久了就會想要離開公司,但是這種學習心態到哪間公司都不會好到哪去。
職場的舞台是給你發揮技術能力的地方,如何把你過去的所學貢獻在產品上。
在舞台上發揮的話,當然就有提拔之類的獎勵。

抱持著終身學習的態度


學習不間斷是身為一個工程師應該具有的態度。
儘管之後成為了一位資深工程師,自己也要時常提醒自己還有很多東西是可以去探索的。
你可以觀察一下週遭的同事或是同學抱持著什麼心態學習而變成什麼樣的人,就知道我在講什麼了。
耍廢的態度待在職場上可能可以穩定調薪,但是很難將經歷量化成自己的薪資。
學習不間斷的態度待在職場,可以讓你不斷的充實人生,甚至讓自己的薪資倍數成長。