[方格子專欄] 老是犯同種錯誤!初階工程師如何對自己的程式碼負責?
為了在工作上得以生存,大家都曾經做過哪些努力呢?前陣子我才剛結束一個與外包廠商的合作,執行過程讓我感觸良多,每個人在職場上或多或少都有犯錯過,但回頭檢視自己為何做不好,且力求改善的人並不多,很多時候不去做新的嘗試,就不會找到新的方法。今天跟大家聊聊初階工程師如何提高自己的經驗值以及工程師的當責之道是什麼?
初階工程師可能都碰過的問題
我想一定很多人都曾有過在工作上反覆犯下同一種錯誤,或沒理解到客戶想法而做白工的經歷,種種的惡性循環導致自己很疲憊,平常我在跟同事們開會時,也會看到一些現象,如果你是初出茅廬的工程師,可以看看自己是否有這樣的問題,如果你只是一般公司員工,我想這篇文章也有一些想法可以參考。
1、總是讓客戶幫你檢查錯誤
當我在面試新工程師時,都會請面試者針對自己寫的程式碼(或作品)做出講解,但很多面試者解釋不出來,甚至沒有想過自己為何這樣做,只是應付面試基本需求。作為一名工程師,必須訓練自己站在更全觀的角度思考自己經手的專案,在遞交給客戶之前反覆確認,而非讓客戶扮演除錯的角色。有些人或許對自己交出的東西很放心,萬一犯錯了,如果後果不太嚴重就會輕忽它,記住,如果想提高自己的工作敏銳度,第一步必須先保持對所有事物的懷疑,包含自己寫的程式碼。
2、交的東西跟客戶想像有落差
經常會看到工程師是用「自己的想像」完成工作,導致成品交出時與客戶想法有落差,其實客戶想要做的東西並不複雜也並非完全做不到,在吶喊「不可能完成」之前,要先回頭檢視一下客戶想要的「規格」究竟是什麼?大部分人都只想把工作做完而非做好,更別說是花時間與客戶做溝通,其實,只要一步步確認好客戶要的需求「規格」,善用所學的程式技術測試項目,持續確認、持續驗證,就有機會破解難題。換句話說,想達成客戶的需求並不用很高深的技巧而是要用正確的方式實現。
該如何持續累積自己的經驗值?
這邊想先說一下,現在很多人想投入工程師領域,因此坊間也開了蠻多三個月工程師速成這種課程,並不是說上這種課不好,而是當每三個月就多出上百名工程師的情況之下,個人經驗值的累積就更為重要了!無論你是透過哪一種方式當上工程師,以下這兩點希望可以帶來一點幫助。
1、釐清核心與非核心工作是哪些
當接收到工作任務時,很多人會希望一步到位做完再呈現給客戶看,除非是對客戶的規格相當清楚有把握,否則可能會造成自己花費過多時間在錯誤的理解上,一開始可以先從最基本的需求「確認」做起,當完成一部分後先讓客戶驗證,以達成迅速對焦及修正。並非每項任務都要達到自己內心要求的標準才算及格,得認知到核心與非核心功能分別是哪些,再進一步做工作上的輕重比例分配,降低自己心理門檻及壓力。
2、學習難度別調太高,慢慢來比較快
每個人都想在工作崗位上儘早上手,為此,積極的工程師們也願意多看一些書充實技術,這是非常好的事,不過,有時網路上推薦的書自己當下的狀態不一定能看懂,或是作者書寫方式跟自己理解事物的方式差異很大,造成難以吸收,網路上也有很多「經典」書籍是適合有經驗(或想更進階)的人去讀,初期讀的話很容易變成似懂非懂的狀態,因此一個好的技術書,應是選擇「適合自己」的。平常在工作時,也要讓自己邊做邊學,畢竟很多狀況沒有實際做過就無法了解,逐步找出答案,才能累積對的經驗值,就像減肥,也不是直接選擇高強度方式就能瞬間瘦身,總是得配合自己的狀態行進才能長遠有效。
工程師的當責之道即是「職人精神」
所謂的「當責」是指為自己的承諾負責並完成落實,如同我一開始拋出的問句:「為了在工作上得以生存,大家都曾經做過哪些努力呢?」很多年後,當你回頭檢視自己,你會成為怎樣的工程師,這都可能取決於你的當責之道是什麼。我認為工程師的當責之道就是「職人精神」,就像專業咖啡師磨練自己的技術,專注完成一杯咖啡的態度,工程師也是如此,必須培養讓自己在工作上成為職人的境界,進而圓滿自己的人生價值。
你的當責之道是什麼呢?歡迎可以留言跟我分享呦!