
TO 導讀:Code School 是一個以教學內容活潑有趣著名的程式語言線上學習網站,本文的作者 Gregg Pollack 就是 Code School 的 CEO 兼創辦人;Gregg Pollack 以個人的自身經驗,分享雇主要如何幫助工程師們持續精進。下文以第一人稱敘述。
每次當我問軟體開發工程師他們是如何提升自身能力時,我總會得到各式各樣的答案,包含從利用工作之餘做些專案、閱讀 Hacker News,到收聽 podcast,甚至是線上課程自學。
有一種答案是我極少聽到的,那就是雇主積極的為他們計畫如何精進能力。
這是一件很有趣的事情,因為科技公司跟新創公司通常都願意提供令人驚嘆的薪資和福利來招募人才,但他們卻沒有思考到如何讓員工持續學習、持續進步,這件最重要的事。這個現象,也就是以下我想要討論的重點。
- 程式設計跟絕大部分的工作性質不同
很多的工作所需俱備的工作知識是既定的,但軟體開發不是。因為科技隨時都在演進,所以軟體開發工程師想要一直維持最頂尖的狀態,那他也必須與時俱進持續學習。在很多方面來說,不斷學習和編寫程式是同等重要。
舉例來說,新的程式語言或軟體框架的出現很稀鬆平常,像是 Apple 的 Swift 就是一個很好的例子,你已經可以預測在不久的將來,軟體開發工程師就可能需要具有編寫 Swift 的能力。
回顧我學習 Coding 的歷史,在大學時學 C++,在工作時學 Perl,然後為了得到更好的工作自學 java,之後又學起了 Ruby on Rails。藉由學習新的科技和程式語言,我才能夠維持作為一個軟體開發工程師的競爭力與優勢,同時我也能更進一步地往上爬。 如果我沒有學習動力的話,我今天就不可能是我現在這個樣子。
所有的軟體開發工程師都有這樣的學習動力嗎? 我想可能沒有。那如果這些軟體開發工程師沒有跟上科技潮流的話會發生什麼事呢? 他們產出的產品和他們的公司都會蒙受其害。這可能意味著更難維持的 code、需要更多時間去執行的 code,或是那些由舊程式語言 / 框架寫成的 code 因為太落伍了,其他的軟體開發工程師不想再用那些舊程式語言 / 框架來寫。
這對於任何一間公司來說都會是一場災難,但只要多一點努力就能避免這樣的情形發生。
- 雇主要如何幫助軟體開發工程師持續學習?
最容易執行,也沒有太大的經費負擔的方法,就是由公司本身提供教育課程。即使真的要花上公司一筆錢,這筆錢也會透過增加的生產力或是員工快樂指數提高而獲得補償。
對於雇主來說,其中一件最簡單的事就是你反覆告訴員工說工作中學習是可以的。因為若在上班時間抽空自學或是閱讀 Hacker News,往往會讓軟體開發工程師覺得心裡不踏實,因為自己並非在「工作」。然而,藉由簡單的改變與員工和新進人員的溝通方式就能讓這樣的恐懼一掃而空。
另外一個完全免費的解決方式就是鼓勵兩人一組設計程式。這個方法不但被證明能夠減少錯誤產生,還能增進 code 的品質;因為最好的學習方式就是直接觀看別的軟體開發工程師是如何解決問題的。
有些公司會透過持續教育的計劃以確保他們的技術團隊內成員擁有差不多的知識水準。因為知識上的斷層對於開發團隊而言是生產力 (更不用說是士氣) 的致命傷,因此,公司方面提供教育計劃是一個避免成員間實力差距過大的好方式。
每個月在 Code School,我們會空下某一天並將其命名為「進步日」。那一天我們只從事、創造或是學習一樣能讓我們變得更好的事物。有可能是去上一堂打字課,閱讀一本書,進行關於開放原始碼的計劃,或是學習新的程式語言或框架。不管是在提升教育性、創造力或是士氣方面,「進步日」總能為 Code School 帶來超出預期的效果。
我們每年都會花錢讓我們的員工去參加一個當地和外地的會議。除此之外,我們還會提供員工書籍、網路課程或是工作坊之類的學習教材。 我想應該很多科技人才會認為這樣的學習資源比起免費訂閱 Netflix 或是在辦公室放置桌上足球桌來得要好多了。
上述只是一些想法而已。最終,所有公司都必須找到一個最適合他們公司的持續學習計畫。
- 團隊成員學習越多,創造力越強
個鼓勵學習的工作環境還會帶來一項展現在產品及公司的生命力的意外結果;那就是會培養出一個永遠使用最適合該工作的工具,而非永遠使用最熟悉工具來做事的公司文化。
一個用創意的方式來解決困難問題的公司,它的成功機率總是比較大。雖然還有很多因素構成一間成功的公司,但是擁有一支總是在學習的團隊能夠讓你領先其它只會把員工當工作機器而非學習者,減損他們自己科技人才才華的公司。
但很不幸的事實是,所有的軟體開發工程師都必須身兼工作機器和學習者兩個角色。
(資料、圖片來源: TC)



