如何馴服小輩?

小學生如何進大公司? 如果你是一家大公司,如何僱用一個像樣的初級員工? 下面,我將向您講述我們在前端招募初學者的故事:我們如何完成測試任務,準備進行面試並為新人的發展和入職建立指導計劃,以及為什麼標準面試問題不適用不工作。

如何馴服小輩?
我正在努力馴服Junior

你好! 我叫 Pavel,在 Wrike 團隊從事前端工作。 我們創建一個專案管理和協作系統。 我從2010年開始從事網路工作,在國外工作了3年,參與了多家新創公司,並在大學教授了網路科技課程。 在公司,我參與了針對初級員工的技術課程和 Wrike 指導計畫的開發,以及直接招募他們。

為什麼我們甚至考慮僱用初級員工?

直到最近,我們還在招募中高階前端開發人員——足夠獨立,可以在入職後完成產品任務。 今年年初,我們意識到我們要改變這個政策:一年來我們的產品團隊數量幾乎翻了一番,前端開發人員數量接近一百人,而在不久的將來這一切都將必須再次加倍。 工作量很大,空閒的人很少,市場上的人就更少了,所以我們決定向那些剛開始前端之旅的人求助,並意識到我們已經準備好投資他們的產品了。發展。

誰是小三?

這是我們問自己的第一個問題。 有不同的標準,但最簡單、最容易理解的原則是:

需要向 Junior 解釋什麼功能以及如何操作。 中間需要解釋需要什麼功能,他會自己弄清楚實現方式。 簽名者本人會向您解釋為什麼這個功能根本不需要做。

無論如何,初級開發人員是需要有關如何實施這個或那個解決方案的建議的開發人員。 我們決定建立的基礎是:

  1. Junior是一個想要發展並準備為此而努力的人;
  2. 他並不總是知道自己想往哪個方向發展;
  3. 需要建議並尋求外部幫助——來自他的領導、導師或社區。

我們還有幾個假設:

  1. 六月的立場將會引起激烈的反應。 您需要在發送履歷的階段過濾隨機回覆;
  2. 主過濾器無濟於事。 ——需要更多的測試任務;
  3. 測驗任務會把大家嚇跑 - 不需要它們。

當然,我們有一個目標: 4週內3名青少年.

有了這個認識,我們開始進行實驗。 計劃很簡單:從盡可能寬的管道開始,然後嘗試逐漸縮小管道,以便您可以處理流程,但不要將其減少到每週 1 名候選人。

我們發布職缺

為公司:將會有數百個回覆! 考慮一個過濾器。

對於初級:在發送履歷和測驗作業之前,不要害怕問卷——這表明公司已經照顧了你並且已經設定好了流程。

第一天,我們收到了大約 70 份來自「懂 JavaScript」的候選人的履歷。 然後又是這樣。 並進一步。 我們實際上無法邀請每個人到辦公室面試,而是從他們中選擇了最酷的寵物項目、即時 Github 或至少有經驗的人。

但我們在第一天為自己得出的主要結論是風暴已經開始。 現在是在提交履歷之前添加調查表的時候了。 她的目標是淘汰那些不願意付出最小努力提交簡歷的候選人,以及那些不具備知識和背景至少無法在谷歌上搜索到正確答案的候選人。

它包含有關 JS、佈局、Web、電腦科學的標準問題 - 每個想像在前端面試中會問什麼的人都知道這些問題。 let/var/const 之間有什麼區別? 如何僅將樣式套用於寬度小於 600 像素的螢幕? 我們不想在技術面試中提出這些問題 - 實踐表明,在完全不了解開發的情況下,經過 2-3 次面試就可以回答這些問題。 但他們能夠先向我們展示候選人原則上是否理解上下文。

在每個類別中,我們準備了 3-5 個問題,並日復一日地更改答案表中的設置,直到淘汰最通過和最困難的問題。 這使我們能夠減少流量 - 在 3 週內我們收到了 122 名候選人,我們可以利用它進一步開展工作。 這些人是 IT 學生; 想從後端轉到前端的人; 25-35歲的工人或工程師,他們非常想改變自己的職業,並在自我教育、課程和實習上投入了不同程度的努力。

更好地了解彼此

為公司:測驗任務不會嚇倒考生,反而有助於縮短漏斗。

對於初級:不要複製貼上測試 - 這是顯而易見的。 並保持你的 github 井然有序!

如果我們把所有人都召集起來進行技術面試,我們每週就要進行大約 40 次面試,只針對初級人員,而且只針對前端。 因此,我們決定檢驗第二個假設──關於測試任務。

在測試中對我們來說重要的是:

  1. 建構良好的可擴展架構,但不要過度設計;
  2. 最好花更長的時間,但要把它做好,而不是在一夜之間拼湊出一個工藝品並附上“我一定會完成它”的評論發送出去;
  3. Git 的發展歷史是工程文化、迭代開發以及解決方案沒有被公然複製的事實。

我們同意我們想研究一個演算法問題和一個小型 Web 應用程式。 演算法是在初級實驗室層級上準備的——二分搜尋、排序、檢查字謎、使用清單和樹。 最後,我們選擇二分搜尋作為第一個嘗試選項。 Web 應用程式必須使用任何框架(或不使用框架)進行井字遊戲。

剩下的幾乎一半人完成了測試任務 - 他們向我們發送了解決方案 54 名候選人。 令人難以置信的洞察力 - 您認為互聯網上有多少種可供複製貼上的 tic-tac-toe 實現?

多少?事實上,似乎只有3個。而在絕大多數決策中,正是這3個選項。
我不喜歡的是:

  • 複製貼上,或基於相同教學進行開發,無需您自己的架構;
  • 兩個任務都位於不同資料夾中的同一儲存庫中,當然沒有提交歷史記錄;
  • 髒代碼、DRY 違規、缺乏格式;
  • 將模型、視圖和控制器混合到一個類別中,長達數百行程式碼;
  • 對單元測試缺乏了解;
  • 「正面」解決方案是對獲勝組合的 3x3 矩陣進行硬編碼,例如很難擴展到 10x10。

我們也關注鄰近的儲存庫 - 很酷的寵物專案是一個優勢,而來自其他公司的一堆測試任務更像是一個警鐘:為什麼候選人不能到達那裡?

結果,我們在 React、Angular、Vanilla JS 中找到了很酷的選擇——總共有 29 個。我們決定再邀請一位候選人,而不測試他非常酷的寵物項目。 我們關於測試任務好處的假設得到了證實。

技術面試

為公司:不是中/高級來找你的! 我們需要一種更個人化的方法。

對於初級:請記住,這不是一場考試 - 不要試圖對 C 保持沉默,也不要用你所有可能的知識轟炸教授,讓他感到困惑並給出「優秀」。

在技​​術面試中我們想了解什麼? 一件簡單的事——候選人的想法。 如果他通過了第一階段的選拔,他可能擁有一些硬技能——但他是否知道如何使用這些技能還有待觀察。 我們商定了 3 項任務。

第一個是關於演算法和資料結構。 用一支筆,在一張紙上,用偽語言並在繪圖的幫助下,我們弄清楚瞭如何複製樹或如何從單鍊錶中刪除元素。 令人不快的發現是,並不是每個人都了解遞歸以及引用的工作原理。

第二個是即時編碼。 我們去了 代碼戰爭網站,選擇簡單的事情,例如按最後一個字母對單字數組進行排序,並與候選人一起花費 30-40 分鐘,試圖讓所有測試通過。 似乎掌握了井字遊戲的人應該不會感到驚訝 - 但在實踐中,並不是每個人都能意識到值應該存儲在變數中,並且函數應該通過 return 返回一些東西。 儘管我真誠地希望這是一種緊張,並且這些傢伙能夠在較輕鬆的條件下處理這些任務。

最後,第三個是關於建築的。 我們討論瞭如何製作搜尋列、去抖動是如何運作的、如何在搜尋提示中渲染各種小部件、前端如何與後端互動。 有很多有趣的解決方案,包括伺服器端渲染和網路套接字。

我們使用這種設計進行了 21 次訪談。 觀眾是完全多元化的——讓我們看看漫畫:

  1. “火箭”。 他永遠不會平靜下來,什麼事都參與其中,在訪談中他會用一連串的想法淹沒你,這些想法甚至與所提出的問題沒有直接關係。 如果是在一所大學,這將是一個熟悉的嘗試,以證明你所有的知識,當你所記得的關於你遇到的罰單是昨晚你決定不學習它 - 你仍然無法得到出來。
  2. “格魯特”。 因為他是格魯特,所以很難聯絡他。 在面試過程中,你必須花很長時間逐字逐句地尋找答案。 如果只是昏迷就好了——否則對你的日常工作來說會很困難。
  3. “德拉克斯”。 我以前是做貨物運輸的,程式設計方面只在Stackoverflow上學過JS,所以面試時不太明白講的是什麼。 同時,他是個好人,有最好的願望,想成為一個偉大的前端開發人員。
  4. 我們可能會 《星主》。 總的來說,他是一個很好的候選人,你可以與他進行談判和建立對話。

在我們的研究結束時 7 名候選人 進入決賽,透過出色的測試任務和麵試的良好答案證實了他們的硬實力。

文化契合

為公司: 你和他一起工作! 候選人是否願意為自己的發展付出極大的努力? 他真的能融入球隊嗎?

對於初級: 你和他們一起工作! 公司是否真的準備好投資後輩的成長,還是會為了低薪而將所有骯髒的工作甩給你?

除了產品團隊(其領導者必須同意接受他)之外,每個初級員工都會獲得一名導師。 導師的任務是指導他完成為期三個月的入職和提升硬技能的過程。 因此,我們以導師的身份針對每種文化契合度,回答了這樣的問題:“我會根據我們的計劃在 3 個月內負責培養候選人嗎?”

這個階段過去了,沒有任何特殊之處,最後為我們帶來了 4 優惠,其中3人被接受,這些傢伙進入了球隊。

收到offer後的生活

為公司:照顧好你的後輩或其他人!

對於初級: 啊啊啊啊!!!

當一名新員工出來時,他需要入職——了解最新的流程,告訴他公司和團隊中的一切是如何運作的,以及他應該如何工作。 當一個後輩出來的時候,你需要了解如何培養他。

當我們思考這個問題時,我們列出了 26 項技能的清單,我們認為,初級員工在三個月的入職期結束時應該具備這些技能。 這包括硬技能(根據我們的堆疊)、流程知識、Scrum、基礎設施和專案架構。 我們將它們合併為路線圖,並在 3 個月內分發。

如何馴服小輩?

例如,這是我大三的路線圖

我們為每位後輩指派一位導師,與他單獨合作。 根據導師和候選人目前的級別,會議可以每週舉行 1 到 5 次,每次 1 小時。 導師是志願者前端開發人員,他們想做的不僅僅是編寫程式碼。

我們堆疊上的課程(Dart、Angular)減輕了導師的一些負擔。 課程定期為 4-6 人的小團體舉辦,學生可以在不中斷工作的情況下學習。

在 3 個月的時間裡,我們定期收集初級員工、他們的導師和領導者的回饋,並單獨調整流程。 在整個期間內,對所提高的技能進行 1-2 次檢查,最後進行相同的檢查 - 在此基礎上,針對確切需要改進的內容提出建議。

結論

為公司: 年輕人值得投資嗎? 是的!

對於初級:尋找精心挑選候選人並知道如何培養他們的公司

在 3 個月的時間裡,我們審查了 122 份問卷、54 項測試任務並進行了 21 次技術訪談。 這為我們帶來了 3 位優秀的初級人才,他們現在已經完成了一半的入職和加速路線圖。 他們已經在我們的專案中完成了實際的產品任務,其中僅前端就有超過 2 行程式碼和 000 多個儲存庫。

我們發現,青少年的漏斗可以而且應該相當複雜,但最終只有那些真正準備好努力工作並投資於自己的發展的人才能通過它。

現在我們的主要任務是透過與導師和一般課程的個人工作模式為每個初級人員完成三個月的發展路線圖,收集指標,來自領導、導師和學員本身的回饋。 至此,第一個實驗可以被視為完成,可以得出結論,可以改進過程,並且可以再次開始選擇新的候選者。

來源: www.habr.com

添加評論