題:
發送了不可能的技術測試,但其他候選人完成了
Brydon Gibson
2019-11-19 00:48:48 UTC
view on stackexchange narkive permalink

潛在的雇主向我發送了一項技術測試,該測試無法完成。該測試在“請勿更改此代碼”註釋下包含無效代碼。此外,該網頁存在明顯的問題,並拒絕了我對其他問題之一的回答。

我已經搜尋了C語言的文檔,並且可以肯定的是,我諮詢過的任何同輩都認為,發送給我的測試無效且不可能。唯一有問題的”。他們因此使我無法前進。

我不知道該怎麼辦。這使我發瘋,因為我從根本上確定這是不可能的,但是“不知何故”其他候選人進行了測試。我要求查看有效且遵循測試大綱的解決方案的請求未得到認可。我只想結束工作,我不再關心這份工作。

我主要是在尋找一種方法來了解另一位候選人是如何完成的,而實際上這是不可能的(我很高興引用文檔來證明這一事實)。我一直為此感到失眠,因為我根本無法解決這個問題。

我覺得我需要關閉,但雇主沒有向我解釋這個測試結果。

有什麼好的方法可以學習並繼續下去?

對於那些感興趣的人,代碼是(用C語言編寫):

  void functionToWrite(int [] a){//此處的代碼} int main(){//請勿更改此代碼int a [];一個= gets(stdin); functionToWrite(a);}  
評論不作進一步討論;此對話已[移至聊天](https://chat.stackexchange.com/rooms/101222/discussion-on-question-by-brydon-gibson-sent-technical-test-that-was-不可能)。
這個問題正在meta上討論,旨在重新開放:https://workplace.meta.stackexchange.com/questions/6440/reopen-request-sent-technical-test-that-was-impossible-other-candidates-完成
這個問題有一個評論或答案,可能與CoderByte的測試問題有關。是刪除還是刪除?如果是這樣,為什麼?這對我很有幫助。
@KodosJohnson同意。我也對該問題的答案作了評論,指出旨在減輕混亂的黑客行為只會造成更多的後果。我的評論也被刪除
只是為了避免技術方面的麻煩:此代碼可能來自測試站點CoderByte。CoderByte以非常特殊的方式使用gets函數,這在C和C ++中是無效的,因此可以預期。請參閱[站點編碼器字節上的'gets(stdin)'發生了什麼?](https://stackoverflow.com/questions/55269252/what-is-going-on-with-getsstdin-on-the-site-詳細信息。
九 答案:
dwizum
2019-11-19 00:58:28 UTC
view on stackexchange narkive permalink

您說的

我不知道在這裡做什麼

最好的辦法可能是繼續前進。將精神和情緒精力集中在其他機會上。

要么:

  • 雇主是對的-測試不是沒有可能,而你只是把它搞砸了。但是,如果是這樣的話,跟進並不會真正讓您走上正軌,因為他們在這一點上顯然已經使您失望了。
  • 雇主錯了-測試實際上是不可能的。即使您證明他們錯了,他們也不會突然改變主意並決定僱用您。

換句話說,按他們的答案不會改變,最終,工作搜索是關於結果的。嘗試提出要點真的沒有意義,而且從任何目標中都無法真正獲得成果

您還說過,

我只是想做點封閉,我不再關心這份工作了

問題是-聽起來很刺耳-雇主正在填補自己的空缺,而不是讓沒有選擇的隨便人員關閉。求職是關於填補職位,而不是感覺良好。越早意識到這一點,越早可以繼續前進。

如果您擔心可能會錯過學習如何進行測試或通過測試所需的技術技能的機會,則可以與進行單一雇主的可疑測試相比,在自主學習(或參加課程或培訓)方面可能會更好。而且,如果您確實真正沉迷於測試中的實際技術問題,並且您覺得自己需要解決該問題中的技術問題,那麼最好以一種不涉及問題的方式來解決沮喪問題雇主(撰寫有關它的博客文章,在技術論壇上提問等)。

>掛在一位雇主的可疑測試上。 我認為這就是我在努力的地方。從這裡的答案看來,時間和遺忘是繼續前進的唯一方法
您可以撰寫@BrydonGibson博客文章,解釋您認為該測試有何錯誤,並仍在嘗試解決該問題。只是不要在其中提及任何名稱。這可能有助於關閉。
@TymoteuszPaul撰寫博客文章來解決自己的挫敗感是一個好主意-我已將其編輯為答案。
@BrydonGibson,有時,潛在的雇主在撒謊。您需要了解這一點。
另外,請考慮以下問題:“雇主是否想僱用因瑣碎和無關緊要的細節而掛在嘴上的人,或對處理方法的含糊指示?”(答案可能是“否”。)
+1表示“按他們的答案不會改變結果”。許多人忘記了任何不改變結果的做法都是浪費時間
我同意@RichardSaysReinstateMonica。生活中的某些事情我們可以並且應該允許自己純粹出於情感上的滿足而追求奢侈。但求職是求職。它具有具體的黑白結果。當某人拒絕您時,想要獲得情緒上的滿足確實沒有什麼意義,您只需要繼續前進即可。
Mars
2019-11-19 11:41:14 UTC
view on stackexchange narkive permalink

提出有關Stack Overflow的問題。

您可能會得到一些令人驚訝的答案,然後您會感到愚蠢並繼續前進。一邊告訴您說對了,然後您可以說“好吧,那就把那家公司搞砸了”,然後繼續前進。

請確保提供盡可能多的詳細信息。 >

  • 某種Web門戶機制處理了您的代碼
  • 您期望使用什麼版本的C?
  • 等等。
  • 借調鑑於我什至都不知道所顯示的代碼有什麼“不可能”,因為我不了解C-如果有人製作了SO,我很想看看
    @OverLordGoldDragon同上,我希望看到有關代碼的更多討論。他們是否在尋找能夠隔離錯誤並解決錯誤的人員?
    在下面檢查我的答案。只需將“ gets”當作一個為您提供數組的函數,然後將其忽略即可。在沒有完整文檔的情況下使用外來代碼不應阻止任何人從事實際任務。
    @FooTheBar我看到了您的答案!這很重要,但我認為它實際上可能甚至具有[更實際的意義](https://workplace.stackexchange.com/a/148248/88297)
    FooTheBar
    2019-11-19 15:06:39 UTC
    view on stackexchange narkive permalink

    我認為測試是有效的,並且您完全專注於無關緊要的部分,因此您未通過測試。您的任務是(僅!)實現“ functionToWrite”。 “獲取”功能是其他人編寫的系統的一部分,並且您有相應的(隱式)文檔。您會看到此函數為您提供了一個數字列表(並且計算列表的長度是您實際任務的第一部分),並且您無需關心實現的細節。

    這與正常的工作環境非常相似。在使用他人編寫的代碼時,您應專注於自己的任務。在從事工作之前,您絕對不應嘗試理解公司編寫的所有軟件。

    要解決該任務,您應該將該部分視為 PseudoCode,它只是為您提供應處理的數字列表。

    OP寫“它在C中”,但我想知道測試是否實際說“它在C中”。未掛在_seemingly_無效代碼上可能是測試的一部分,並且OP正確地失敗了。
    示例中的偽代碼也可能與實際測試代碼寫的不同。
    gnasher729
    2019-11-19 01:07:03 UTC
    view on stackexchange narkive permalink

    要通過測試,您必須忽略“請勿更改此代碼”這一行。你沒有那樣做。

    這給您留下了一個只是無法編譯的聲明,以及一行非常危險的代碼行(Google表示“變得危險”)。因此,要做並通過測試的正確做法是忽略該行,剔除其中的內容,並以安全的方式替換它。

    用於編寫測試的Web門戶依賴於gets。實際上,我不認為它實際上可以編譯代碼,而只是對其進行解析。更改它會導致測試失敗
    換句話說,這是“小林丸”練習。而且* void functionToWrite(int [] a)*不是C函數定義。* int [] a *讀取為C#定義。
    我想測試的目標是檢查functionToWrite函數的實現,僅此而已,可以要求進行澄清,但最後您需要提供一些信息
    @PeterM的int聲明不是有效的C#,而且我以前從未在C#中見過gets。無論如何,我確定實際上討論代碼不在這裡。
    我必須查一下:https://stackoverflow.com/questions/1694036/why-is-the-gets-function-so-dangerous-that-it-it-should-not-used被使用“為了使用獲取安全地,您必須確切地知道將要讀取多少個字符,以便可以使緩衝區足夠大。”
    只是重複一遍:這不是標準的“獲取”功能。他們寫的東西為您提供了陣列。正常的“ gets”返回一個字符串,這裡的此函數返回一個int []。因此,所有有關字符串獲取的文檔都是完全無關的。
    因此,您處理“我不理解此代碼”的方法是“忽略註釋並完全重寫所有內容”(從而破壞了應用程序)。是的,不確定那是人們在僱用程序員時正在尋找的態度。
    @Voo我想說的是,很高興有幾個願意重構垃圾代碼的開發人員。如果他們的重構不好,它將無法通過審查和測試。如果好,那將是很大的好處。
    -1
    究竟。如果您不知道如何定義“ gets”,如何得知這根本就是垃圾代碼?
    @TomášZato依靠“測試和審查”來告訴您更改是否正確,而不是實際了解您的操作,這是一種可怕的做法。您還暗示著,您將要進行的每個項目都有大量的自動化測試,而絕大多數遺留系統根本不是這種情況。
    sf02
    2019-11-19 00:53:48 UTC
    view on stackexchange narkive permalink

    我不知道該怎麼辦。這讓我發瘋了

    您最好的行動方法是繼續前進,然後忘記它。如果任務確實是不可能完成的,則說明該公司對其員工的期望不合理。您應該感謝您不會為這樣的公司工作。

    確實。申請者應該嘗試將“贏得”(工作)的願望與與/或已經表現出其本性的“這些特殊小丑” /與他們合作的願望區分開來。
    CodeCaster
    2019-11-19 15:21:41 UTC
    view on stackexchange narkive permalink

    該測試包含無效代碼,該網頁出現明顯問題,並拒絕了我對其他問題之一的回答[...]我應如何幫助自己繼續前進?

    不僅要繼續前進,還應將其作為學習的機會。當出現一種不太理想的情況時,您的(潛在)雇主希望您盡力而為。

    那裡有無數的專業軟件開發人員,每天他們都對著自己的“框架”感到憤怒,它是由前任留下的,它很難調試,很難為它開發新功能,並且運行緩慢且效率低下。然而,他們的雇主不會錯過更換它所需要的六個月的停機時間,因此您只需要努力,在可能的情況下改善自己的能力。

    如果將會是拒絕“由於我已經告訴過你它的存在”而修復錯誤的開發人員,或者因為“由於框架的限制,我不能在其中實現它”而不打算開發新功能的開發人員

    您可以通過記錄情況中存在的問題並提供改進建議,同時進行所要求的實際工作,來使自己變得無價之寶。

    你的。因為那是他們付給您的錢。

    如果您想要無塵室/綠地/研究職位,您可以按照自己的方式做任何事情,則必須努力尋找競爭激烈的稀有職位,並證明自己值得位置。

    這是相同的情況。潛在的雇主選擇了一個Web應用程序,他們可以向其申請人提供簡單的測試,並由該應用程序進行檢查。

    您可能將練習複製到了自己的編輯器,自己的編譯器中,並且有人抱怨說不存在的功能-因為這些功能特定於測試站點!您應該更改代碼,使其在您的計算機上可以正常編譯,並在提交時將其更改回原來的狀態。

    然後您的代碼將通過,您可能會提到與應用程序一起遇到的問題。但是,通過表明您拒絕遵守現有的約束條件,您已經向雇主表明,您可能無法很好地適應他們的工作方式。

    好點-我們過去曾進行過具有衝突需求的編碼測試,它揭示了很多有關情況變為現實時人們將如何反應的信息。
    @RobinBennett你很邪惡
    @Mars不,他是專業。而且,任何非平凡的要求都是內部衝突和不完整的。文件不正確,請習慣一下。
    在(家庭)編碼測試中需求不清楚/有衝突的問題是它與現實世界不匹配。在現實世界中,您會問負責任的開發人員或您的經理或對問題有更多了解的人。在編碼測試中,您無論是要詢問雇主還是要自己解決問題,都必須讀懂雇主的想法。對此,現場測試會更好,因為您可以問主管的問題或大聲思考。
    Mars
    2019-11-19 15:21:53 UTC
    view on stackexchange narkive permalink

    這裡是技術答案,但來自OP的評論:

    用於編寫測試的Web門戶依賴於get。實際上,我不認為它實際上可以編譯代碼,而只是對其進行解析。更改它會導致測試失敗

    ,所以聽起來您的代碼實際上是以某種形式運行的,而不僅僅是偽代碼。

    如果您的答案是一次嘗試,那麼我認為您可能會收到無效的代碼,這樣您就無法簡單地在自己的計算機上編譯並運行它來檢查您的答案。

    通過將其識別為無效代碼,您是

    1. 表現出對細節的高度關注,或者
    2. 表現出您試圖在其上運行它外部編譯器。
    3. ol>
    它們僅不包括其gets函數的實現。所以是2.1:您編譯了它,但未能模擬(模擬)缺少的函數。
    @FooTheBar還有很多其他錯誤
    `functionToWrite`是C#表示法,我相信數組聲明也是錯誤的,我不記得其餘的了
    我從未使用過C,但看起來很合法:https://stackoverflow.com/questions/6567742/passing-an-array-as-an-argument-to-a-function-in-c
    @FooTheBar`[]`的位置在`a`的反面:)
    Ranald Fong
    2019-11-21 15:07:28 UTC
    view on stackexchange narkive permalink

    這裡有很多很棒的答案。在我看來,這聽起來像是強迫症/自閉症。 OP擔心代碼無法按原樣編譯,因為他堅信不可觸摸的代碼是實際運行的代碼。但是就像其他人所說的那樣,它更像是偽代碼,以使人們了解代碼的作用以及將代碼傳遞給代碼的變量的種類,在這種情況下,它看起來像一個int數組。 / p>

    基本上,他們正在測試您快速閱讀代碼並猜測/推斷其功能與實際剖析其功能的能力。他們希望您僅了解自己所得到的,然後按照要求去做。好像他們不是要實際的編譯代碼而是要您提供的偽代碼一樣,所以他們不在乎實際的語言語法,因為它們在某種程度上都相似,但又有所不同。他們正在測試您的推理和邏輯技能...

    但是您由於在第一個推理部分停下來而失敗了。當然,這種測試將排除OCD / Autistic Genius級別的候選者,這可能是負數。但是這些本身並不多見。因此,我的建議是了解世界有時不會以與現實生活兼容的方式來測試您,而是有時以理論上的抽象方式來測試您。

    user111923
    2019-11-20 09:06:12 UTC
    view on stackexchange narkive permalink

    沒有什麼說法不修改功能中顯示的參數。

    我認為這代表了一個答案:

      void functionToWrite(int * a){puts(a);}  
    那...可能無法按預期運行。
    @bishop [編譯嗎?發貨!](http://www.quickmeme.com/meme/3omp2t)


    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
    Loading...