如何找一份程式開發工作?(二)馬相伯樂 by zanyking | CodeData
top

如何找一份程式開發工作?(二)馬相伯樂

分享:

如何找一份程式開發工作?(一)正心誠意 << 前情

人說伯樂相馬,可是 X 島軟體業魍魎橫行、好公司鳳毛麟角,當天下名主難尋之時,馬當然也得思考如何相自己的伯樂啊!前一篇討論了開發工作至少該有的基礎,講如何誠意正心修身,在這篇我想來談一下,一個軟體開發初心者找工作時可以參考的策略與心態。

人肉市場如何逛?

找工作通常會經歷幾個階段:搜尋篩選職缺、寫履歷、應徵、面試。而在搜尋篩選職缺這個步驟,我們會透過各種人力資源情報管道(人力銀行、論壇社群、同學師長的介紹、etc…)來尋找適當的工作機會。當仔細觀察這些工作機會的內容的時候,會發覺這些工作機會內容不意外的會列出:

  1. 公司基本介紹
  2. 職稱、職務內容介紹
  3. 學歷專業要求
  4. 工作內容
  5. 薪資福利

一開始面對這些職缺資訊,人總是會既期待又怕受傷害的比較薪資福利、專業資格等各種條件,但其實,這時候最重要的心態,反而是『不要陷入條件比較的陷阱』以及『透過職缺描述找出隱性的情境因素』。

條件比較的陷阱

像人力銀行這樣的人力資源管道,通常會要求徵才方在情報提供上得要遵照特定格式,這使得大部分公司在刊登自己的徵才廣告的時候,很容易會陷入『服從人力資源網站的規格』,也就是『將自己規格化,單純的羅列條件』的思考模式中,於是當我們瀏覽這些訊息的時候,也就很容易的會因為面對的都是『規格化』的條件羅列,而陷入『找工作就是去比較所有列出的機會的條件,選最好的』這樣的模式裡。

條件只能用來做簡單篩選而不可用來做最後選擇的原因,是因為如果將『工作』視為一種需求,那麼從行為經濟學來看,『工作』其實是一種體驗型商品而非規格化商品。所謂的規格化商品就是像硬碟、CPU 這樣的東西,我們評斷它們的價值,根據的就是他們的性能規格、介面。而男女朋友、旅行、工作這種選擇標準,建立在『預期經歷的過程是否精采』的,就是體驗型商品。

當然,我們找工作一定會對規格化的條件進行篩選判斷,可是面對條件良好的工作,心態上與其說是要『挑出分數最高的』,不如說是要『篩選出及格的,然後排序去應徵』。 從結果而言,一份工作好壞就是加入後能得到的體驗、經歷、資源;與選擇其他機會所可能得到的體驗、經歷、資源相比時,是否機會成本過高。而羅列的條件在及格的前提下,常常會邊際效益遞減,反而是工作中其他隱性的因素,決定了實際工作時是否滿意。那麼到底哪些隱性因素,是我們用來判斷工作這樣一個體驗型商品好壞的標準呢?這時我們在 第一篇 中所建立起的,對『適合自己的好工作』去做的思考,就發生作用了。

對於一個剛入行的開發者來說,當網路上存在的訊息只討論薪水、只討論工作輕不輕鬆加不加班,而人力銀行也只列出條件之時,透過『初步訂定自己在工作中想要達成的戰略目標』來瞭解自己之前,就直接開始去找工作去面試,是會很容易迷失的。擺脫這樣的心理狀態,透過分析每份徵才訊息背後透露出來的情報;好根據自己在乎的隱性因素,來篩選排序基礎條件達標的職缺;投遞履歷爭取面試機會;在面試時蒐集更多的情報,更深入的了解該公司,才能有效提昇找到好工作的機會。

PS: 關於行為經濟學方面詳細的論述與思考基礎,可以參考丹‧艾瑞利所著:《誰說人是理性的!》、《不理性的力量》。

好公司怎麼找人?

每個人想要的不同,想要從工作中追求的東西也不一樣,這使得判斷一個職缺是好是壞的方式與標準可以差很多,但在不曉得工作內容本身是否適合自己之前,至少我們可以先確定要加入的是不是一個好團隊。畢竟對初心者來說,培養做開發的扎實基礎與價值觀,沒有道理在統計上,差勁的會比好的團隊來得更有機會。『幸福的家庭都是相似的,不幸的家庭各有各的不幸』如果我們相信找人、訓練人、用人的策略,是一個好團隊在中長期生存發展上不可或缺的,那麼透過推敲它們在徵才策略上普遍應該發展出什麼樣的共同點,我們就比較可以判斷職缺好壞的可能了。

『找人』對組織來說其實是一件非常耗費資源的行為,因為它耗費的不只是很好操作計算的金錢,更多的是更寶貴、沒有彈性、也難以估計影響的人員時間。這個時間花費與篩選出來的人才數量,可以以下圖的模型來表示:

recruit_cost_model

篩選履歷要時間、實際面試要時間、一旦人加入團隊,那就要耗費更多的內部互動時間。而且這個時間成本成指數成長,在每個階段花掉的時間都遠比上個階段珍貴。

既然人力的補充是團隊生存的必要條件,那一個好團隊在求才策略的發展上,就必須在每個階段盡可能的留住想要的應徵者、同時淘汰那些會浪費彼此時間的人。因此,在『刊登徵才訊息』這個對團隊而言時間成本最低的階段,透過適當的情報操作來吸引目標客群、排斥不合適的應徵者就是最合理的策略。

比如說,有很多國內開發團隊的徵才訊息會寫的落落長而且全是英文,這就是一種較隱性的排斥策略運用:一個會略過這樣的徵才訊息的人,可能是英文不好、可能是看到這麼長的英文就覺得厭煩、可能是覺得這間公司假掰,不管原因是什麼,這個策略都成功的幫助該團隊,排斥了不能接受英文的人。

相對的,一間普通甚至差勁的公司在 HR 『只想把找人來』、用人單位主管『只想快點補充人力』的情況下,並不會意識到操作這種策略,表現出自己是間獨特的公司,會跟應徵者的品質數量有關,他們甚至沒有意識到人力資源的時間成本是指數增長的,於是在每一個關卡的失誤,都意味著失去了投資優秀人力的機會、或者將損失未來大量的時間。

那些好職缺的相似點

我認為大部分的好公司在發佈職缺的時候,或多或少都會有以下特徵:

在職務內容上詳細地介紹開發項目、相關技術領域,並且與工作技能比對時合乎邏輯。

軟體開發目前還處在一個相對其他領域較為年輕、變動幅度大的狀態,不同公司同樣的職稱要找的人可以非常的不同,都叫測試工程師,有的可能找得是把文件上每個使用案例跑過,發發 ISSUE 就行了。但有的可能要負責架構測試框架、管理調整產品的自動化測試專案、對公開的 API 做各種效能分析,甚至要做安全性評估的。

可以說,職稱在目前的軟體開發領域裡還沒有非常明確的共識(或者有,但就是需要找能夠身兼數職的人),所以一間已經發展出良好用人策略的公司,會努力的在不透露敏感訊息的前提下,勾勒出該職缺實際工作的樣貌。 這包括公司做開發的流程、該職缺參與流程的部份、新進人員與資深人員的互動方式、是否採用 Scrum 開發流程模型、Agile 方法論等,在大公司的徵才訊息中,甚至會說明該職務在公司未來的發展方向。而這些描,述同時也應該作為編寫工作技能要求時的基礎。

在工作技能上,會詳細描述為何會有該項需求、以及一開始要求的程度。

一個職缺對工作技能的要求,應該是從職務內容的描述中推演出來的,畢竟擬訂職務技能需求的目的,就是設立一個門檻,確保新進人員能在團隊願意承擔的磨合時間過後,在其職務範圍內開始有預期的產出。所以當我們觀察到一個職缺,列了很多與職務描述較不相關的技能時,那其實就表示用人單位可能對『新進來的人要能在公司生存,他應該至少要會什麼?』沒有好好的思考過,就更別說『找人來要負責做什麼』了。 這樣的公司,可能會列出以下這種工作技能要求: 『熟悉Java, Javascript, HTML, C#, PHP, JSP, ASP, C/C++, Objective-C, Android, Linux/Windows/Mac…』

發出這種徵才訊息的這些公司中比較好的,通常是因為『感覺』自己缺人,就隨意的列出過去、現在、未來所有專案項目用到的技術,想要『面試時再說』。至於那些糟糕的,常常會是這種水準的徵才文,在人力網站上一放 3 年,雖然有頻繁更新,但普遍都是一兩個字、職位名稱、技能要求在那邊變來變去,為的是什麼?為的是變成新職缺好搶人力網站第一頁。然後沒有例外的,這種差勁公司的技能要求,都會開得十八般武藝樣樣精通,不懂其中奧妙的人只覺得這公司很蠢,但其實這種亂開技能需求是很有道理的:

  • 這會讓不懂事的年輕人以為:『挖~要求這麼多,那進這間公司可以學很多囉?』你會這麼想,那就太好了,弱水三千只取一瓢飲,你就是他們的 Target audience。
  • 當你這麼想,你就會因為沒有完全滿足條件而『覺得自己不夠好』,是的,公司會栽培你,是的,你不夠好,於是你自己知道薪水該怎麼辦,公司在跟你面試談薪資條件時,就可以拿『你自己的認知』當籌碼談你的薪水了。

業界中有許多用免洗年輕人初入行熱情來賺錢的專案公司,就是採用這樣的徵才策略。

在公司介紹上會強調自己有過什麼成績、會對公司目的與經營策略有清楚的描述。

如果是間做產品的公司,那我們會看到他們強調自己的產品有多少市佔率、拿過什麼樣的獎項、Google 領域關鍵字出現在第一頁;如果是一間作專案的公司,那我們會看到他們強調自己的流程方法、服務過多大的客戶、專案系統規模與總是順利結案;如果是間 startup,那麼我們會看到他們,即使在徵才訊息上,都會想要放個 Video 對產品或 idea 做行銷。 還有什麼比起實際的產品、過去的成就名聲,更能增進求職者對一間公司的印象呢?高竿的公司會用心的透過自我介紹,有意識的建立起公司實績、產品與公司經營目的間的邏輯關係,說服求職者接受公司期望投射的對外印象。

會提供符合市場行情明確的薪資級距。

一間『正常運作』的公司的人力資源策略,總是要請無法有所貢獻的人離開、然後留住有重要產出的人,而『薪水太低』是所有員工主動離職的原因中,幾乎唯一可說是能夠事前主動偵測、有量化數據並預防的。偵測預防的方法很簡單(雖然不輕鬆),HR 定時的張貼求才訊息,與單位主管一起設計不同的薪資級距與職務內容,然後在篩選履歷、面試時,比較應徵者的程度薪資期望與員工目前的水準就好。它甚至可以透過主動詢問應徵者面試過哪幾間公司、拿到的 offer 大概多少,來取得更精確的概況。很多公司忌諱員工『比較薪資』,但事實是員工就算不知道同事的薪水多少,他只要去面試其他公司,就知道自己的人肉市場行情了。

那麼,如果一間軟體公司買機器建構系統的時候,不會給剛好負載 100% OK 的硬體規格,而是會預留 30% 甚至 50%,來保證不會發生符合合約範圍內卻超載而造成罰款的情況。那用人的時候一點薪資上的保險空間都不留,這在風險控管上是什麼意思呢?這只能說是為了人事成本的會計算盤而要賭流動率了,不論原因是公司現金水位告急、還是老闆想要多賺點,用這種心態經營的公司開出來的,都不可能是什麼好職缺。

會提供確實的訓練測試期。

從上面『招聘時間成本圖』我們可以知道,在一間公司人員招聘的過程中,每跨越一個關卡,每階段投注在新人身上的時間成本會指數增長,其中增長的幅度最高、也是風險最大的關卡,就是新人面試通過、加入公司的時候。對一間以知識產出為主的軟體公司來說,一個有經驗新人的底子到哪裡,或許可以在面試時就知道一些。但他實際做事的習慣能不能適應公司文化、能不能與其他人相處、價值觀是否相符,這沒有實際的觀察雙方互動一段時間無法保證。至於沒有經驗的新鮮人就更不用說。

沒有任何緩衝就把新鮮人投入工作項目,那不但新人與公司間磨合的代價,就是團隊目前工作項目的Bug發生率、程式碼設計債務以及時程延遲風險;隨著公司持續經營,新人的年生存率也必然導致產品越來越複雜、知識門檻越來越高而降低。 畢竟從台灣的教育發展來看,沒有道理相信每年出產的大學生進步的幅度,能追上產品複雜度與市場競爭水準成長的速度。而不論是讓新人的磨合拖累專案,或是新人離職不幹,對公司來說都是巨大的浪費與投資損失。 任何有細想過這個問題的團隊,都必然會在新人真正的加入團隊開始開發工作之前,透過適當的訓練測試流程來:

  • 確認並提昇新人在其即將扮演的角色中所必須擁有技能。
  • 了解新人的個性、對事件的反應與價值觀。
  • 協助新人熟悉團隊的文化與運作流程。
  • 判斷新人是否可以進入團隊。

更進一步的說,對某些比較要求應徵者素質的團隊而言,在徵才訊息中適當的操作『會有測試訓練期』的情報,也是一種篩選應徵者的策略。身為一個想要入門軟體開發的初心者,如果我們想加入一間有比較高的成功機會、可以更了解自己、更有效提昇開發實力的公司,觀察它在徵才訊息上(或是網路搜尋)針對測試訓練期有何說明,是一種不錯的方式。

網路上該公司相關的評價良好

比方說有沒有什麼勞資糾紛、薪資遠低於市場行情、遲報勞健保、違反勞基法等情事的相關搜尋結果。這些其實沒什麼好說的,一間軟體公司會『出現』這些糾紛就是它有問題,它的職缺最好不要考慮,因為要不它管理不當用錯人、要不它用惡劣的免洗用人策略在經營。 但有些時候,受到國外的流行風氣與某些人力網站的鼓吹,一些公司有可能會去考慮某些新奇、踩在灰色地帶的用人策略,例如無薪實習。對於這樣的策略我們該怎麼判斷呢?

關於無薪實習

首先,如果一個應徵者能拿得到其他軟體公司提供的有薪實習甚至有薪part time、全職的機會,那為何要無薪實習?只能說是應徵者與公司雙方,剛好在人肉市場上都有條件問題了:比如說應徵者年紀太小缺乏經驗又渴望學習、然後碰上公司太窮請不起條件好的實習生,但願意開放環境與機會。

但讓一個無經驗、起始條件在市場上缺乏競爭力的開發者參與公司的商業開發,要是產品所要求的開發知識門檻很高,這開發者的產出甚至可以是負的(看懂code、修Bug、重構的時間比一般開發者重寫一個對的來得久);要是門檻不高,或是願意多花很長的時間等待開發能力提昇,那雖然產出有可能平衡沒錯,但產品與團隊本身能有競爭力嗎?再不然,這找來的無薪實習生就只能做打雜的工作了。但打雜工作的知識含量,能滿足無薪實習生主觀的勞動對價嗎?

要能夠有『有效產出』,同時避免『要不懂事的年輕人無償工作』的道德風險,這並不容易。一間經營正派的公司想要提供無薪實習機會,那它一般會透過提供其他層面足夠的償付關係,來彌補實質條件的缺乏。比如說:這個機會是要進行某種公益專案,例如在義務幫忙關懷動物之家開發資訊系統的同時,順便提供實習機會給某高中生資訊社團、大學生一起參與開發。這是透過道德償付來抵消。或者說:某商業開發中有某部分成果相當獨立,可以切割出來給實習生做,成果以第一著作者的名義,貢獻到公共領域(Open Source)。這其實就是合作共同研發、使用權共有的概念。

即使在美國加州,除非該公司有申請某種建教合作案,否則任何實習都至少要付最低基本工資才行。對一個想要透過無薪實習來增加開發歷練的開發者來說,或許無薪實習可行,但比起職務介紹上那些花俏的行銷言論,你得更小心翼翼的挖掘對方在知識與經驗上能端出什麼牛肉。

結語:從滑翔機到噴射機

大部分人對事業的自信與熱情是一點一滴培養、或者說是磨練出來的,我們一開始的時候都是滑翔機,做事的動力一般不來自於自身內在的渴望、而來自於行為於外在環境產生的反饋:也許是上司的誇獎、也許是客戶的感謝、也許是某些你很看重的人的認同。 找到你的伯樂,就是要找到一份能幫助你累積足夠的自信與知識去跨越這個階段、進而發掘出那個能夠讓自己點火:一個你如此相信,願意主動投入去追求實現的價值,也就是成為一台噴射機的事物的工作。

希望這篇文章有提供各位一些關於尋找、篩選工作機會上的想法與幫助;下一篇,我想來討論一些關於應徵面試時可以運用的技巧與觀察的角度。

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

王威章11/06

怎麼沒有了??說好的.....關於應徵面試時可以運用的技巧與觀察的角度呢??

mythnc08/09

這篇文章很棒,請問還會繼續寫第三集嗎?

關於作者

在 Java 裡打滾了 9 年的 programmer,平常喜歡爬爬郊山、騎腳踏車亂逛,擅長 Java Web 應用開發、Eclipse Plugin 開發、GUI 設計、Meta Programming,閒暇之餘玩玩 Android,最近比較把精力放在團隊開發的方法論與合作模式上,歡迎有興趣的朋友一起研究。

熱門論壇文章

熱門技術文章