題:
給予無限制的時間來解決家庭中的技術難題,並允許使用Internet進行採訪
finjjj
2017-03-13 08:13:48 UTC
view on stackexchange narkive permalink

我是一家公司的專業軟件開發新手。我接受了採訪,而且進展順利。他們通過電子郵件向我發送了包含幾個不同部分的技術挑戰。他們說沒有時間限制,它是一本開放的書,我可以使用互聯網。我傾向於思考,我想知道,從理論上講,這意味著我可以學習任何我不知道的東西,因此我可以完全正確地回答問題。我是在看正確的方法嗎?

問題之一是為網站實現響應式水平導航欄。沒有參考資料,我無法做到這一點。但是,在網上找到完全可用的示例及其源代碼並不難。我會考慮只複製它們作弊,但是如果我理解它們然後復制代碼,這真的有區別嗎?顯然,我不會讓別人替我做,只會使用W3Schools等網站上的現有示例。

這聽起來像是一項免費的遮罩擦除技術測試……警惕
@HorusKol:如果已經有在線工作示例,這似乎是典型的學術練習。如果有的話,它將太平淡無奇且缺乏理論基礎,無法與工作直接相關。
只要您未簽名,@HorusKol就無法保護自己嗎?從法律上講,無論上下文如何,代碼都是您的。
只要確保您不花一個月的時間。前段時間有一個類似的問題,我敢肯定,他們花了一個月的時間才使候選人沒有聯繫過候選人。
@PierreArlaud是的,但是您必須聘請律師並在法庭上主張所有權。一家使用“測試”進行工作的公司會在您擺脫戰鬥的情況下為您服務。但是我並不是說情況就是這樣-只是要小心。
然後才是最重要的方法。明智地選擇工具,並準備好解釋您的選擇。
為什麼不問公司呢?
我不_只是_複製一個有效的示例的主要原因是,在隨後的訪談中,他們可能會要求您“更改上週的操作”來添加功能,或者請您解釋其功能。
在工作中,我們最好的人使用諸如“ Google / StackOverflow是我的導師”之類的短語。那些是我們最好的人。可以期望一個經驗不足的人做同樣的事情,而不是試圖超越自己而自己做。
@ИвоНедев同意。如果我要設置此值,那麼我將根據回答的質量與所花費的時間進行評分,並選擇最佳組合。因此,SO OP一定不能過分考慮-他們需要在很短的時間內(不超過一兩天)獲得良好的響應-在一周之後,我將評估響應並提出要約。
總體而言,這就是軟件開發人員的工作方式。因此,這聽起來像是一種評估您完成這項工作的能力的合理方法。儘管如上所述,它聽起來確實像是免費工作,但請注意此處的範圍。如果工作超過一個星期,只需直接告訴他們,這就像騙局,然後走路。
這些修改似乎已從標題中刪除了問題,僅保留了上下文...我認為這是嚴重的退步。
-1
@user2023861我發現像這樣自命不凡的擴展“作業”測試-它們是瑣碎的廢話,無法面對面進行良好的技術討論,或者過於復雜,浪費時間候選人和雇主(特別是必須審查工作的工作人員)。如果您想知道開發人員如何適合您的SDLC,要么讓他待上一兩個星期(有償),要么給他一個試用期。
@HorusKol,您的兩個解決方案都不可行。如果我想採訪四名員工,您的方法將需要1-2個月才能找到候選人。如果我面試全部四個人並決定提供第一個,我必須希望該候選人在過去的0.5到1.5個月內沒有接受任何邀請。如果我想僱用該候選人,其他人也有可能這樣做。更不用說我將一直擔任新員工的工作。我確信用戶和團隊負責人希望每1-2週就向新開發人員解釋一次業務邏輯。
@AJFaraday,“如果要工作超過一周”?如果要花一周的時間,他絕對不應該這樣做。實際上,公司要求他超過2-3小時的時間是不合理的,因為他不能保證自己會得到這份工作。公司應該設計測試,以便可以在短時間內完成測試,同時仍然可以讓他展示自己的技能。
我將不得不查看實際問題,以了解它們是否看起來像是可疑的,但聽起來好像他們可能正在測試您在給定在線資源的情況下找到解決方案的能力。即使沒有說明,顯然也有時間限制,因為他們等待響應的時間不會太長。根據我的經驗,在線研究是開發的重要部分,與編寫代碼和測試一樣重要。
@user2023861抱歉,這根本不是我要說的-我是說“家庭作業”測試是沒有意義的-您應該能夠通過面對面訪談的討論來很好地衡量他們的技術能力。如果不是,那麼您面試的權利就不正確。即使他們“通過”家庭作業測試,您仍然必須對候選人進行試用,以確保他們在您的團隊中正常工作-那麼測試帶來了什麼好處?-抱歉,評論不是一個深入了解細節的論壇……可能使它成為一個問題(儘管我擔心這將是基於觀點的答案)
八 答案:
user42272
2017-03-13 08:56:16 UTC
view on stackexchange narkive permalink
  1. 假裝您是在做一份真正的工作
  2. 合法(即受過必要的歸因教育,並遵循許可證)
  3. ol>

    將涉及非常積極的在線搜索和調整完整的解決方案。完整的複制/粘貼即使是一個好的開始,也很少能在現實世界中發揮作用。

    “沒有時間限制”甚至可能暗示了這種形式,“這會花很長時間如果您是從頭開始構建,則需要時間,而如果使用StackOverflow,則只需幾分鐘。”

第二點很重要
IMO的“無限時間”也暗示著“我們要問您選擇的內容如何工作,對其進行研究”。
儘管這是一個很好的建議,但我覺得對於軟件開發界來說有點過分了-使用Web來源是很常見的做法-只要不直接撕開它,就沒有問題。話雖如此,這還取決於* interviewer *如何對該項目進行“評分”,因此我不會對此進行投票,理由是進行採訪的人幾乎沒有技術專長,可能*會看到直接問題。複製(實際上,無論如何*都不應該*完全複製)。所以我想說,小心點。
“無時間限制”也可以作為測試的一部分。您是否發現了一些東西,進行了一些重構,也許在短時間內添加了一些測試並提供了一個好的解決方案,或者您隻手工製作了一個鍍金的解決方案,而這只是您自己的理解,並且需要幾天的時間才能完成。我知道我會僱用誰。
當然,@TheWanderingDevManager的其中一項(更短/更好)絕對優於另一項。
-1
關於第2點。源代碼許可極為複雜。我始終會在哪裡找到鏈接,並希望涵蓋我。我知道膝蓋跳動反應是“諮詢律師”,但考慮到這種情況,要付錢給律師詢問您是否在技術面試中將問題歸因於一個問題是沒有意義的。
[這是“堆棧溢出”,而不是“堆棧溢出”](http://stackoverflow.com/legal/trademark-guidance)(最後一節,“正確使用堆棧交換名稱”)。請修改您的答案。
PeteCon
2017-03-13 09:03:00 UTC
view on stackexchange narkive permalink

如果我給開發人員一項諸如“創建響應式水平導航欄”之類的任務,如果他們已經花了數小時從頭開始創建它,而現在已經有許多可行且正確的解決方案,我將非常失望。您在現實世界中沒有時間每次都創建完美的解決方案,

我同意,也許對此發表評論,以便他們可以看到您了解所有方面
如果我將任務分配為“創建X”,但是您只是複制並粘貼並輸入了其他人的X,為什麼我不應該感到失望?
@Brandin,因為這不再是高中。複製還不錯(只要您遵循許可證)。有人花一些錢把網絡修改成公正的樣子,而不是花10倍的時間嘗試“重新發明輪子”,對公司來說更具成本效益。
-1
@MatthieuM。以我的經驗,網上很少是複制,粘貼和忘記的事情。大多數時候,您需要對其進行修改以適合您想要的功能。在這樣做的過程中,您應該了解它。
@Snowlockk同意是否遵守許可,並且每個人都同意。但是“複製粘貼”一詞可能會忽略這一點。
-1
對於給出的示例,我的期望將類似於@Brandin的“創建響應式水平導航欄”,但與您的內聯顯示為“創建具有響應式水平導航欄的頁面”。在我看來,前者是製造導航欄的明確要求,而不僅僅是查找和重用其他地方的東西。
我認為這很大程度上取決於練習的目的。他們是要測試他是否可以實現該標準,還是要測試他是否可以編寫一個功能正常的標準?這兩種技能顯示出截然不同的事物,並且會因不同的原因而使用。
PhD
2017-03-13 09:39:59 UTC
view on stackexchange narkive permalink

如果允許使用Internet,則還希望從現有Internet來源進行複制和粘貼。實際上,受過良好培訓的軟件工程師也是可以讀取他人源代碼並對其進行修改以供自定義使用的人。當現有好的替代方案存在時,只有沒有經驗的工程師才能從頭開始。

很顯然,挑戰在於如何僱用他們才能工作。聰明,高效,修改現有解決方案,但要出資並查看許可證(GPL?)。

“如果允許使用Internet,還應該從現有Internet來源進行複制和粘貼。”-否。
關於許可:這是一場噩夢。我在其中找到代碼的某些網站的許可證模型如此復雜,以至於我無法理解。每當您在互聯網上找到代碼時,聘請律師都是沒有道理的,那該怎麼辦?我總是回到找到它的地方,並希望能覆蓋我。
只需查找使用Apache,bsd或MIT許可證的內容,並避免瘟疫之類的GNU。適用於大多數情況。同樣,如果您只是簡單地“使用”許可證而不是深入研究代碼並對其進行調整,則大多數“開放”許可證都更加友好。現代SO的貢獻是MIT:https://meta.stackexchange.com/questions/271080/the-mit-license-clarity-on-using-code-on-stack-overflow-and-stack-exchange
-1
lambshaanxy
2017-03-13 14:00:40 UTC
view on stackexchange narkive permalink

如果進行測試的公司有一半的線索,然後您被要求再次面試,系統將詢問您有關您工作的詳細問題,並且有可能對其進行修改很好。

是的,您可以並可能應該利用Internet上的資源,只需確保了解其工作原理(例如,可以在需要時解釋每一行) ),並且歸因/許可是合理的。

flith
2017-03-13 12:23:51 UTC
view on stackexchange narkive permalink

作為您的招聘經理,我自然希望評估您的技能,其中包括您重用現有解決方案的能力以及即時思考和學習的能力。我不希望急於按時完成工作的員工,但會給我帶來低質量的輸出-另一方面,我不希望自己做出令人敬畏的工作,但要永遠花時間做。我需要最終用戶的質量,並且需要在合理的期限內完成,這是檢查您是否同時滿足這兩個條件的一種方法。如果您在合理的時間範圍內提出了一個好的解決方案,而不管採用哪種方法,那麼您表示的是員工的物有所值。

在這里古老的格言是正確的:“ 快速,廉價或良好” -選擇兩個。”。他們想知道您是哪兩個。

如果我是您,我會盡量避免過度思考,並隨時使用任何社區資源和代碼段。這是真正的開發人員在實際工作中會發生的情況,而且這是一次面試不應該影響您的方法。只要您了解代碼,該解決方案就可以正常工作,並且您沒有做任何不適當,非法或不道德的事情,那麼我個人就不會看到問題。

關於不適當,非法或不道德的事情不道德的是,您所申請的行業可能具有阻止使用某些類型代碼的安全或道德規範。顯示這些限制的知識,並意識到使用公開發布的代碼片段的寓意,只會向您的招聘經理顯示您是一位思想周到且體貼的開發人員。

嗨,弗利斯,只是加入社區審核隊列。歡迎來到Workplace SE!雖然我認為您的答案為您的答案奠定了良好的基礎,但我個人隨後會仔細閱讀並認為:“因此,我仍然不知道要選擇哪兩個。”不是說您應該決定提問者的選擇,而是要給OP您過去可能會選擇的選擇,以幫助您從經驗中獲得一些答案?或者,如果您覺得這太個人化,也許是組合的利弊?(續)
(續)但是,這只是我的兩美分,屬於社區審核隊列的一部分,因此隨時可以完全忽略我的評論。我們很高興得到您的幫助:)。謝謝!
如果他不能自己找出合適的人,那麼我就不會聘請他;)但開個玩笑,這是一個公平的觀點。我將更新我的答案,以包括一些關於我要走哪條路的個人評論。
@TeacherKSHuang:這個答案指出他們是經理想要通過測試確定的一種人格。我不同意這一說法,而是說形容詞“響應性”告訴OP應該是什麼。
我支持您的評論,但只有一些實際的文本反饋,很好的更新!
@user3644640:不確定我是否關注您,*形容詞響應式告訴OP應該是什麼*-就我所知,在OP的問題中,*響應式*是指實現細節(響應式設計根據瀏覽器的例如,視口大小),而不是開發人員個性的任何方面。
@flith:響應一詞表示應按您所說的去做,但也應盡量減少對資源的使用。同樣,無限的時間也暗示著要做好。我可能想得太過分了,這只是經理說話的方式,但是我看到有一種檢查OP的意圖,以確保OP注意到那些小事情並根據這些事情提供實現。
@user3644640“響應式”是Web開發中的一個技術術語。
Mark
2017-03-13 19:51:36 UTC
view on stackexchange narkive permalink

每當要求我完成技術編碼測試時,我總是在互聯網上搜索答案,並通讀三個或四個示例。然後我無視他們所做的一切,並以自己的方式寫下來。讓我詳細說明為什麼這樣做是必要的。

您在互聯網上找到的大多數答案在技術上都是正確的。

例如,如果您對如何執行X存有疑問,那麼很可能有多種方法可以執行此操作,而不管您使用的是哪種語言或框架。其中一些將可擴展-有些則不能。有些將使用正確棄用的方法(Eval!),而有些則不會。有些對於現代編程語言而言將是過時的,而有些則不會。

大多數答案在現實世界中將不起作用。他們是快速的解決方案嗎?是的,但是它們通常很快就能實現。

通過一種以上的方式來做某件事,您將有機會展示精通能力,而不僅僅是理解。

這是您通過證明您了解不同方法以及何時使用哪種方法來證明自己掌握的特定專業知識的機會。例如,有時我會提供兩種不同的解決方案,並說明哪種解決方案適合哪種情況。

“您不是說這段代碼是否旨在可重用,我通常會假設重用-能力,但這裡有一個快速的例子。但是,如果我希望重新使用它,我會像這樣構造它。”面試官可以這樣做。 。通常,如果以這種方式提供代碼,沒有任何說明,我將直接拒絕候選人。如果他們提供了解釋,那對他們很好。

重要的是-如果使用任何其他復制的代碼或使用框架-解釋為什麼選擇所做的事情,而不僅僅是直接包括它們。否則,受訪者會簡單地假設您在Google上搜索了最好的東西,而不了解您選擇的商品的細微差別。 >

坦白說,如今,任何人都可以用足夠多的Google代碼並且以較低的技術水平將某些東西放在一起。真正好的技術測試將要求您同時提交存儲庫歷史記錄和提交的內容,以確保它們可以遵循您的開發方式。這很難偽造,並且可以更好地了解應聘者如何使用他所尋求的解決方案。洞察您的思維方式,以及您是否適合他們現有的團隊和公司文化。從臀部開始,甚至將關懷和關懷投入到您所做的最微不足道的工作中。知道並且有能力學習。作為一名候選人,我想要一份工作,在這個過程中,額外的努力將得到認可並意味著某些意義。格外小心,提供其他信息和編碼示例會顯示公司希望您是什麼樣的候選人,並讓您有機會了解他們正在從事的公司類型。成為快速解決方案-接受能夠快速輕鬆地複制並通過技術測試答案的應聘者的公司,其基礎程序員的能力將比拒絕他們的公司要差得多,而且可能不是您想要的地方工作很長時間。

在我看來,最下面兩個答案(在撰寫本文時)最有幫助。
Carl
2017-03-13 14:34:44 UTC
view on stackexchange narkive permalink

這裡的背景略有不同,但希望與您的情況有所重疊。我們提供給考生的考試類型並不難,但是您也不太可能在線找到答案,因為它需要進行一系列特定的計算才能得出特定的數字。獲得正確答案固然很好,但真正的挑戰是證明您可以採用最佳實踐(以您選擇的語言)。就代碼而言,沒有正確的答案。我們有一些一般的期望,但也清楚地知道那裡有比我們更好的開發人員。

我們希望看到的是:

  • 對問題的正確理解和簡單的理解解決方案,
  • 測試(系統,單元,甚至手動測試總比沒有好),
  • 註釋,
  • 一致的編碼約定(命名,縮進,花括號)
  • 使值可配置而不是硬編碼,
  • 沒有未使用的代碼,
  • 輸入驗證,
  • 有用的錯誤處理,
  • 最小重複,
  • 封裝和其他不錯的面向對象的東西(但僅當它對眼前的情況確實有用時)。

獎勵是:

  • 文檔,
  • UI(以及命令行),
  • 支持f或調試,
  • 詳細輸出超出了請求的特定值。
Andrew Berry
2017-03-13 16:43:40 UTC
view on stackexchange narkive permalink

一些大型組織面臨著技術挑戰,而不僅僅是獲得免費工作。我知道英國的Sky對開發人員構成了挑戰(就像我經歷他們的過程一樣)。

通常,有一個截止日期(儘管比較寬鬆)。我被要求將代碼放在github上,然後他們檢查了代碼,並在採訪中對這項工作進行了廣泛的審查。該任務大約花費了8個小時左右的時間(但這主要是因為我添加了風鈴使我看起來更好)。

從命名,項目結構到簽到註釋以及其他所有內容(UI等) )進行了評論。

您必須考慮“他們為什麼要讓我這樣做?”。可能是一家希望免費工作的2位公司,但也可能是一家希望了解您如何解決問題以及如何進行工作的公司。

您需要確保您提交自己滿意的代碼(因此需要理解)並反映出您的工作方式。提交代碼時,添加註釋,甚至發送簡短的方法說明,以及為什麼使用X而不是Y進行解釋。這(對您而言)是一種很好的方式來展示知識,而無需承受面試的壓力,因此您應該認為它是積極的。



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