關於測試任務在開發人員生活中的作用

您一生中接受過幾次技術面試?

在過去的五年裡,我參加了 35 場技術採訪,涵蓋了各種可以想像的類型和具體情況——從哈薩克斯坦集體購買冬季肉類的初創公司到德國和美國的金融科技服務和銀行; 重點關注規劃、交付和管理; 遠端和在辦公室; 時間有限和無限; 壓力和放鬆,用不同的語言。

再加上我作為雇主進行的約 20 次面試,這些數量足以讓我成為面試之王,以做出以下觀察(最初完全不明顯)並在其中確立自己的地位:我相信在很大程度上由於進行瞭如此多的面試,它開始看起來像是邊緣習慣,儘管我已經在Web 開發領域工作了10 年,但我在專業水平上研究了我的堆疊並成為了一名有競爭力的專家。

本文是寫給那些剛開始其旅程並且尚未耗盡其知識深度的程式設計師的。 在其中,我想擴展關於測試任務和麵試中提出的技術問題的巨大教育效益的論文 - 並邀請每個人使用我新編寫的電報機器人 實現機器人,按照我的計劃,你至少每天都可以參加技術面試,直到結束。 為了讓它們不會結束,你也可以分享一個有趣的技術任務、問題或在面試過程中遇到的有用/有趣的情況。

我將在下面告訴您有關機器人的更多信息,讓我們首先弄清楚為什麼了解和理解這些技術問題和任務的答案如此重要,即使您已經成功運行自由專案多年。

為什麼我們的基礎知識品質還差得遠呢?

如果你還沒有成為面試之王,那麼技術面試對身體來說是一個嚴重的壓力,就像一般的找工作一樣——無論你是新手專家、轉行者,還是在某一行業工作過的開發人員放置很長一段時間(在我們這個時代,“長”可以被認為是一年)。

在許多訪談中,人為因素加劇了這種壓力。 你的面試官可能不是Alena Vladimirskaya,而是一個普通的程式設計師,你很難指望從他那裡得到足夠的任務和評估,或者是一個鐵桿團隊領導,他會等待時機降低他在工作中的所有嚴厲程度。他的目光注視著你,問著這樣的問題:什麼是適合你的敏捷!?

有一天,由於沒有對這個問題給出必要的、但正如你所知、不可預測的答案,我沒有得到一份工作邀請,對此我感到非常高興。

透過盡量避免這種壓力和不必要的動作,我們不僅可以避免大聲暴露我們對語言的一些基本特徵的無知,而且可以至少減少一點這種無知。

問題是,在實務上我們很少能遇到這類問題。
任何曾在多個地方工作過的開發人員都會確認,面試中提出的基本或創造性問題很少與程式設計師在現實生活中處理的問題有任何關係——世界上沒有遞歸、圖形和非同步電梯控制系統。銀河系另一臂的引力。 很遺憾。

與我的原生JavaScript 相關,有一個很好的例子- 如果React.JS 沒有出現,98% 的JavaScript 程式設計師將成功地繼續生活在對Bind 是什麼的無知之中- 在它出現20 多年後- 並且會繼續會感到困惑,在面試中收到有關它的問題,只有那些發明了所有這些高度抽象的庫、框架和模組的人才會繼續使用它。 今天,由於大家的反應,這個數字已經減少到了 97%。

顯然,看到這些任務的“脫離現實”,許多開發人員忽視了它們,或者浪費時間沉浸在其中- 並繼續進行他們的日常工作,也就是說,形像地說,不僅走過了生產開發的雷區沒有地雷探測器,也不知道自己身處雷區。

缺乏語言基礎知識會產生什麼後果?

這個問題的答案似乎很平庸,但出於某種原因,人性總是把它的解決方案推到遙遠的角落——這在初級和中級程式設計師的生活中扮演了一個悲傷的角色,延長了他們通往高度(和深度)的道路。 )的語言知識提高了幾年。

如果他們在沒有充分了解其執行的各個方面的情況下編寫應用程式程式碼,那麼他們每天習慣編寫的使用框架和函式庫的應用程式程式碼就不能被認為是可靠的。 JavaScript 世界中 JQuery 庫的命運很好地說明了這一點,它曾經是進步的引擎,而今天,作為一個自我封閉的知識領域,與語言的其他部分分離,自然地在市場- 半專業腳本匆忙編寫並根據需要工作,作為從廉價自由工作者引導的相同快速佈局的禮物。

以這種不負責任的方式開發的項目的未來,儘管是出於無知,卻是平淡無奇且短暫的:突然的大量時間損失、失敗、財務和聲譽損失,結果是,繼續下去的熱情下降。合作。

另一方面,對於一個選擇了程式設計師道路的人來說,沒有什麼比理解自己正在做的事情更令人愉悅的了。 明白他就像孟喬森男爵一樣,騎著馬躍過雷區。 不用說,一個體面的雇主能清楚地看到人們在雷區裡肆無忌憚地行走,在什麼都不想的情況下跑來跑去,猶豫不決地邁出一步嗎?

實現機器人

看到了面試的好處,並且意識到進行空白面試並不完全道德,我認為創建一個機器人會很棒,讓初學者或移植到另一種語言的開發人員可以參與教育培訓,而無需求助於其他語言。在這種程度上,真實的採訪就發生在我身上。 並記住程式設計師如何喜歡討論和比較他們必須解決的問題 - 特別是如果它是一些不平凡的事情 - 我意識到一切都適合,拒絕所有疑慮,瞧。

該機器人目前有 3 個簡單的功能:

  • 訂閱特定語言/框架以接收新任務。 當您訂閱並在任務到達時,您會在每日時事通訊中收到它們
  • 發布任務或測試任務 - 在我的書中他們說分享就是關懷
  • 一個出色的名稱生成器,您可以使用它為您發布的任務文本選擇最佳簽名,包括女性詞典,而不是沒有女權主義者

目前有以下語言可供選擇:JavaScript、Java、Python、PHP、MySQL。 由於我的理解有限,選擇有些有限。 我希望在 Habra 社區的幫助下添加到這個列表中。

該機器人以純粹的搖滾形式推出;不需要支付任何費用。
您可以使用以下連結訪問它: 實現機器人

簡述技術實現

這個機器人是幾個小項目之一,我在其中帶來了我的開源迷你框架的第一個公共版本,用於開發具有復雜結構的機器人,被親切地命名為Hobot,並在NPM 中為鐵桿人士提供。

該框架基於Telegraf.JS和TypeScript構建,其零零優先版本,並配有使用範例,可查看 知乎 並立即嘗試。 很快我會上傳0.0.2版本,為外部人員進行擴展和梳理,並將專門撰寫一篇文章(主幹)。 如果它對某人和對我一樣重要,我會很高興。

那麼,您需要參加多少次面試呢?
我相信你有話要說!

來源: www.habr.com

添加評論