IT 實習:經理的觀點

IT 實習:經理的觀點

招募為 暑期實習 Yandex 繼續。 它有五個方向:後端、機器學習、行動開發、前端和分析。 在這個部落格以及關於 Habré 和其他部落格的其他部落格中,您可以找到很多關於實習如何運作的見解。 但對於那些不在公司工作的人來說,這個過程的大部分內容仍然是個謎。 如果你從開發經理的角度來看,就會出現更多問題。 如何正確進行實習,如何與實習生最大限度地互利共贏,如何在三個月內了解他並教會他繼續工作所需的一切?

我們五個人準備了這篇文章。 讓我們自我介紹一下:來自分散式運算技術服務部門的Ignat Kolesnichenko、來自Market 機器智慧服務部門的Misha Levin、來自應用程式開發服務部門的Denis Malykh、來自搜尋介面開發部門的Seryozha Berezhnoy 和來自反詐騙開發小組的Dima Cherkasov。 我們每個人都代表自己的實習領域。 我們都是經理,我們需要實習生,我們有一些與他們一起工作的經驗。 讓我們從這次經歷中告訴你一些事情。

實習前面試

一些技術面試正在等待候選人。 面試的成功較少取決於軟技能(有效溝通的能力),而更多地取決於硬技能(數學和程式設計技能)。 然而,管理者對兩者都進行評估。

伊格納特:

一個人即使很酷,但完全不善交際,也無法發揮他所有的技能。 當然,我們會關注這一點,但這並不是不帶人實習的理由。 三個月後,一切都會改變,而且,你的第一印象可能會被證明是錯的。 如果一切正確,您將需要向該人解釋,尋找其他命令。 對實習生來說,溝通能力絕對不是關鍵因素。 儘管如此,專業技能更為重要。

丹尼斯:

我喜歡說故事的人——以一種好的方式講故事。 一個能夠講述他和他的團隊如何英勇地應對一些fakap的人是很有趣的。 當這樣的故事出現時,我開始提出後續問題。 但如果你只是要求“講述一下你的專案中有趣的事情”,這種情況就很少發生。

一位候選人曾經說過一句精彩的話,我什至寫了下來:“成功地避免了解決繁瑣的問題。”

IT 實習:經理的觀點

由於交流時間很少,面試官在會議的每一分鐘都試圖獲取有關候選人的有用資訊。 如果實習生提前弄清楚他可以分享哪些經驗細節(而不是來自履歷),那就太好了。 這應該是個嚴格意義上的短篇故事。

丹尼斯:

如果一個人說他嘗試過多種語言和方法,我會注意。 視野開闊的人在戰鬥模式下會想出更優雅的解決方案。 但這是一個模稜兩可的加號。 你可以掌握它的竅門,但並不能真正學到任何東西。

丹尼斯所描述的故事的時間通常只留到最後一次採訪。 在此之前,有必要先展示將構成未來工作基礎的基礎知識和實踐知識。 當然,您需要將程式碼寫在黑板上或紙上。

米莎:

我們測試機率論和數理統計知識。 我們會檢視此人是否有使用指標、機器學習演算法、設定參數、再訓練等方面的經驗。我們希望此人能夠編寫足夠的程式碼來成為分析師。

丹尼斯:

來參加面試的人大多懂語言:在葉卡捷琳堡,我們有一所很好的基礎語言學校,很好的機構。 但說實話,擁有良好硬技能的實習生是很少見的,至少在我們的 epsilon 社區是這樣。 例如,斯威夫特。 它涉及非常複雜的弦樂工作,很少有人能夠立即使用它們。 眼睛立即引起您的注意。 在面試過程中,我經常給出一個與字串處理相關的任務。 一直以來,只有一個人能夠在一張紙上立即編寫這樣的 Swift 程式碼。 之後我到處告訴大家,終於有人能夠在一張紙上用 Swift 解決這個問題了。

在面試中測試演算法

這是一個單獨的主題,因為考生仍然有一個問題 - 為什麼我們總是評估演算法和資料結構的知識? 甚至未來的行動開發者和前端開發者也會經歷這樣的測試。

米莎:

在面試過程中我們一定會提出某種演算法問題。 候選人需要弄清楚如何用 Python 實現它,最好沒有錯誤。 您需要了解如何檢查您的程序並自行修正。

IT 實習:經理的觀點

演算法經驗很有用,原因有三。 首先,它顯然在演算法任務中是需要的——這種情況並不經常發生,但確實會發生。 其次,開發人員將能夠更有效地解決與演算法相關的問題,即使他們不需要深入研究演算法本身(而且已經有相當多的演算法了)。 第三,如果你在大學裡沒有學過演算法,但你仍然知道如何使用它們,那麼這表明你是一個好奇的人,並且會增加你在受訪者眼中的權威。

丹尼斯:

行動開發的一個重要部分是 JSON 改組。 但每六個月就會出現一次需要演算法的情況。 我目前正在為 Yandex.Weather 繪製漂亮的地圖。 在一週內,我必須實作平滑演算法、Sutherland-Hodgman 演算法和 Martinez 演算法。 如果一個人不知道什麼是哈希圖或優先權隊列,他會在很長一段時間內陷入其中,並且不清楚如果沒有外部幫助他是否能夠管理它。

演算法是發展的基礎。 這有助於開發人員成為開發人員。 你做什麼並不重要。 在簡單的專案中也需要它們,其中的主要工作包括「翻譯 JSON」。 即使您本身不編寫演算法,但隱式使用了一些資料結構,最好還是理解它們。 否則,您最終會得到運行緩慢或不正確的應用程式。

有些程式設計師是在學術上發展的:他們進入大學,學習了五年,並獲得了專業。 他們知道這些演算法是因為他們是被教導的。 然後,演算法知識本身並不能以任何方式表徵一個人的視野;這個視野必須以另一種方式來測試。

還有一些自學成才的人,我自己也算其中。 是的,我正式接受過 IT 教育,取得軟體工程文憑。 但自學成才的人「儘管如此」還是學會了程式設計。 他們沒有大學課程。 通常他們不熟悉演算法——因為他們從未面臨過研究它們的需要。 而當這樣的人理解了演算法的時候,就意味著他花了時間並且理解了它們。 大學畢業後,我意識到自己在基礎演算法方面存在盲點——事實是我的專業是應用性的。 我去普林斯頓大學學習了著名的羅伯特·塞奇威克的線上課程。 我想通了並完成了所有作業。 當一個人在採訪中講述類似的故事時,我立即變得感興趣,我渴望與他合作,或至少繼續談話。

IT 實習:經理的觀點

伊格納特:

當你面試實習生時,在某些方面你的期望甚至比經驗豐富的開發人員還要多。 我們談論的是解決演算法問題的能力,快速編寫至少一些正確的程式碼。 實習生仍在大學。 就在一年前,他被詳細告知了有關演算法的一切。 預計他可以複製它們。 如果一個人足夠並且仔細聽講座,他就會知道一切,從緩存中獲取它。

實習生解決什麼任務?

通常,可以在最終面試中概述和討論實習計劃。 只有在工作開始時,實習生才會被指派培訓任務,其結果不會用於生產。 而且,接到這樣的任務的可能性也很小。 大多數情況下,戰鬥項目是從積壓的項目中給出的,即那些被認為值得關注的項目,但不是優先事項和“可分離的”項目 - 因此其他組成部分不依賴於它們的實施。 經理們嘗試分配它們,以便受訓者了解服務的不同部分,並與其他團隊成員在相同的環境中工作。

伊格納特:

這些都是非常有用的任務。 它們可能不會將集群利用率提高 10%,也不會為公司節省一百萬美元,但它們會讓數百人感到高興。 例如,我們目前有一名實習生與我們的客戶一起在我們的叢集上運行操作。 在開始之前,操作必須將一些資料載入到叢集上。 這通常需要 20-40 秒,然後悄無聲息地發生:您在控制台中啟動它並坐在那裡,看著黑屏。 實習生來了,並在兩週內完成了該功能:現在您可以看到文件是如何上傳的以及發生了什麼。 一方面,這項任務並不難描述,但另一方面,有一些東西需要挖掘,需要查看哪些庫。 最好的部分是你做到了,一周過去了,它已經在集群上,人們已經在使用它了。 當你在內網發文時,他們會說謝謝。

IT 實習:經理的觀點

米莎:

學員準備模型、為其收集數據、提出指標並進行實驗。 漸漸地,我們開始給他更多的自由和責任──我們檢查他是否能處理好。 如果是,他就會進入下一個等級。 我們不認為當實習生進來時,他們知道如何做這一切。 經理幫助他解決了這個問題,給了他內部資源或線上課程的連結。

如果實習生表現出最佳狀態,他可能會優先獲得對部門或其他服務很重要的東西。

迪瑪:

我們的實習生現在正在對反詐騙進行核心修改。 該系統可打擊 Yandex 服務上的各種濫用和詐欺行為。 起初我們考慮提供不太複雜且對生產不是很重要的東西。 我們試著提前思考實習生的任務,但隨後我們發現這個人“火力十足”,解決問題又快又好。 於是,我們開始委託他來進行新服務的反詐欺工作。

此外,由於任務量大,有很小的機會收到同事之前沒有接觸過的任務。

迪瑪:

有一套舊系統,還有一套尚未完成的新系統。 有必要從一個轉移到另一個。 在未來,這是一個重要的項目,儘管具有很高的不確定性:你需要大量溝通,閱讀難以理解的遺留程式碼。 最後面試時,我們誠實地告訴實習生,任務很困難。 他回答說他已經準備好了,來到我們的團隊,一切都很順利。 事實證明,他不僅具備開發人員的素質,而且還具備管理者的素質。 他準備四處走走,找出答案。

指導實習生

實習生需要一位導師讓自己沉浸在流程中。 這是一個不僅了解自己的任務,而且了解實習生的任務的人。 與導師建立定期溝通;你可以隨時向他尋求建議。 導師可以是小組領導者(如果是小組),也可以是其中一位同事、常規團隊成員。

伊格納特:

我嘗試至少每隔一天過來詢問實習生的情況如何。 如果我發現自己陷入困境,我會盡力幫助他,問他問題出在哪裡,並與他一起解決問題。 顯然,這消耗了我的精力,讓實習生的工作變得不那麼有效——我也浪費了我的時間。 但這可以讓他不陷入任何事情並得到結果。 而且還是比我自己做要快。 我自己大約需要 5 個小時來完成這項任務。 實習生5天之內就能完成。 是的,這 2 天我會花 5 小時與實習生聊天並提供協助。 但我會節省至少3個小時,實習生會很高興他得到了一些建議和幫助。 一般來說,你只需要密切溝通,觀察對方在做什麼,不要失去聯繫。

IT 實習:經理的觀點

謝廖扎:

學員與導師不斷保持聯繫,每天與導師溝通數次。 導師審查代碼,與實習生結對編程,並在出現任何問題時提供協助。 我們就是透過這種方式,結合導師的幫助和實戰任務來培養前端開發人員。

迪瑪:

為了防止實習生被拋棄,我們甚至在僱用之前就討論了誰來指導他。 這對導師本人來說也是一個很大的提升:為擔任團隊領導角色做準備,考驗同時牢記自己任務和學員任務的能力。 有定期會議,有時我自己去參加,以了解情況。 但導師與實習生的交流相當頻繁。 一開始他花了很多時間,但得到了回報。

然而,有導師並不意味著所有出現的問題都可以透過他來解決。

米莎:

我們的習慣是,人們遇到問題時會向鄰居和同事尋求建議並迅速尋求協助。 一個人成長得越快,就越需要經常去同事那裡學習東西。 簡單地了解其他人的任務甚至會很有幫助,這樣你就可以想出新的任務。 當實習生能夠達成一致,了解對對方來說什麼是重要的,並在團隊中取得成果時,他會比經理必須為之做這一切的人成長得更快。

謝廖扎:

有文檔,但大部分資訊都消失了。 如果您在職業生涯的早期吸收它,這是一個額外的優勢,我們可以讓人們專注於他們需要學習的內容。

理想的實習生是經過幾個月的培訓,成為初級開發人員,然後只是一名開發人員,然後是一名團隊領導者,等等。這需要一個學生的原型,如果有什麼事情對他來說不清楚,就不會尷尬地問,但也有獨立工作的能力。 如果他被告知可以在某個地方讀到它,他就會去讀它,然後帶著新知識回來。 他可能會犯錯誤,但他不應該在同一個地方犯多次錯誤,最多兩次。 理想的實習生應該不斷發展,像海綿一樣吸收一切,學習成長。 一個人坐下來試圖自己解決所有問題,花很長時間摸索,並且不問任何問題,不太可能習慣。

實習結束

在開始工作之前,我們與每位實習生簽訂定期合約。 當然,實習是有償的,按照俄羅斯聯邦勞動法規定,實習生享有與任何其他 Yandex 員工相同的福利。 三個月後,該計劃結束 - 然後我們將許多實習生轉為正式員工(簽訂開放式合約)。

IT 實習:經理的觀點

一方面,對經理來說,開發人員達到實習生最低要求非常重要。 這是實習生被引導的地方,從面試開始。 然而,這只是故事的開始。 對我們來說,實習生始終是員工的潛在候選人。 經理的最低計劃是從一開始就確定一個人,三個月後,他會羞於向其他部門推薦。 最大的計劃是讓他留在同一個團隊中,並僱用他作為一名職員。 同時,我們考慮到二年級或三年級的學生——即使他已經成為實習生——在學年開始時也需要在大學繼續學習。

謝廖扎:

首先,學員對我們來說是有潛力的人力資源。 我們正在努力培養 Yandex 內部的人員,以便他們非常適合我們的任務。 我們為他們提供一切,從團隊溝通和互動的文化到有關我們所有系統的百科全書式知識。

伊格納特:

當我們招募實習生時,我們會立即嘗試讓他加入我們的團隊。 一般來說,唯一的障礙是缺乏職缺。 我們嘗試僱用足夠的年輕人作為實習生。 如果一個人有五年的開發經驗,他來到Yandex並且是該級別的實習生,那麼,唉,對我們來說這意味著即使他是一個很棒的人,因為他在Yandex找到了一份工作,但他有五年的經驗經驗,他將無法成長為高級開發人員。 這通常是一個速度問題:過去的緩慢成長將意味著這裡的緩慢成長。 是的,有時只有三個月後才會意識到一個人無法勝任這項任務。 但這是相當罕見的。 在超過一半的情況下,我們準備好僱用員工。 在我的記憶中,從來沒有出現過一個人成功完成實習,卻無法通過全職職位面試的情況。

米莎:

我們為所有成功的實習生提供留在公司的機會。 實習結束後,我們通常會承擔一半以上的全職工作。 暑期實習比較困難,因為經常是三年級的學生來找我們,他們很難將工作和學習結合起來。

迪瑪:

Предположим, стажёр отлично справляется с задачами и имеет массу перспектив вырасти в хорошего разработчика — пусть даже у него сейчас недостаточно опыта. И предположим, вакансии на бессрочный договор нет. Тогда всё просто: мне нужно идти к своему руководителю и говорить ему — вот очень крутой человек, его надо всеми силами оставлять, давайте предложим ему что-нибудь, найдём, куда его пристроить.

關於實習生的故事

丹尼斯:

2017年在我們這裡實習的那個女孩來自彼爾姆。 這裡距離葉卡捷琳堡以西400公里。 每週她都會從彼爾姆搭火車來到我們的移動開發學院。 她白天來,晚上學習,晚上很晚才回來。 出於對她的熱情的讚賞,我們邀請她來工作,結果得到了回報。

伊格納特:

幾年前,我們參加了一個實習生交換計畫。 和外國人一起工作很有趣。 但那裡的學員並不比來自ShAD或電腦科學學院的學員更強。 洛桑聯邦理工學院 (EPFL) 似乎躋身歐洲前 20 名大學。 那一刻,身為一個還不太有經驗的面試官,我有這樣的期望:不可思議,我們正在面試來自 EPFL 的人,他們會非常酷。 但在這裡接受過程式設計基礎教育的人——包括在重點地區大學——結果證明他們已經達到了標準。

或另一個故事。 現在我的員工中有一個人,他很年輕,大約20歲。 在聖彼得堡工作,來實習。 他很酷。 像往常一樣,你給一個人問題,他解決了它們,一個月後他過來說:我解決了它們,我看了一下,看來你的架構構建得很糟糕。 讓我們重做吧。 程式碼將會變得更簡單、更清晰。 我當然勸阻了他:工作量大,用戶沒有利潤,但這個想法聽起來絕對合理。 該人弄清楚了一個複雜的多線程流程並提出了改進建議——也許是不合時宜的,為了重構而重構。 但一旦你想讓這段程式碼變得複雜,你仍然可以進行重構。 事實上,幾個月過去了,我們才開始承擔這項任務。 我很高興地僱用了他。 我們都不是天才。 你可以來,想辦法解決問題並指出我們的問題。 這是值得讚賞的。

米莎:

我們有這樣理想的實習生。 儘管缺乏經驗,他們不僅從技術層面,而且從全球層面看待這項任務。 它們提供了根本性的改進。 他們了解如何將問題從現實世界轉移到技術世界而不失去其意義。 他們想知道最終的目標是什麼,現在是否值得深入研究細節,或者他們是否可以完全改變任務的方法甚至問題的表達。 這意味著他們有潛力更高幾個等級。 要走這條路,他們只需要升級一些技能和內部工具。 另外也啟動了多個成功的專案。

IT 實習:經理的觀點

來源: www.habr.com

添加評論