讓我們假設在面試時他們問我“如果代碼不起作用,您會怎麼做?”。
我告訴他們,我閱讀了文檔以查找錯誤,然後隔離了無效的代碼段並嘗試對其進行更改以使其正常運行。但是最後如果我找不到我在Stack Overflow上問的答案。
這會自欺欺人嗎?
讓我們假設在面試時他們問我“如果代碼不起作用,您會怎麼做?”。
我告訴他們,我閱讀了文檔以查找錯誤,然後隔離了無效的代碼段並嘗試對其進行更改以使其正常運行。但是最後如果我找不到我在Stack Overflow上問的答案。
這會自欺欺人嗎?
他們正在尋找的是,除了簡單地盯著代碼之外,您還擁有一種合理的系統方法來定位和解決問題,並且可以使用各種熟悉的技術和資源。其中可能包括以下任何一項:
一個糟糕的答案可能只是四處亂竄,直到代碼神奇地起作用為止,或者將SO用作第一道防線。因此,SO只是工具箱中的一種工具,請證明您知道何時該使用該工具。
(順便說一句,如果他們出於看似隨意的原因不喜歡使用SO,請當心! )
這取決於。如果您正在採訪像我這樣的人,那可能是對您不利的標誌,但是我一直追溯到互聯網是基於文本的時代,如果您想做任何事情,就必須通過telnet進入BBS。
如果我在採訪您,我可能會問一些後續問題,例如:
我會擔心您不會編寫自己的代碼,而是剪切並粘貼其他人的代碼片段,因此不知道如何維護該代碼。這些天,我越來越經常遇到這種情況。最糟糕的情況是,我們最終遇到了弗蘭肯斯坦(Frankenstein)笨拙的意大利麵條代碼怪物,沒人知道如何維護。
因此,更好的答案是:
我隔離一段無效的代碼,嘗試進行更改以使其正常工作,然後逐步執行代碼。如果到那時,它仍然不起作用,我將在線檢查是否可以找到討論該問題的文章。否則,我會請教同事,因為一雙新鮮的眼睛通常會幫助您
或類似的事情。
關鍵是您想展示自己的思想處理。這樣的回答將向我表明您具有解決問題的能力,並在外出尋找答案之前嘗試自己解決問題,然後作為最後的選擇與他人進行協商。
告訴我你們倆都是獨立的,但不要太驕傲。
在這種情況下沒有對與錯,這只是一個角度問題。
我看不到提到已知的在線社區是一個問題,但是,您可能希望保留它更具通用性(不要把自己描繪成沒有任何知識,並且完全依賴Stack Overflow或其他社區進行編碼,測試,調試或故障排除的人。)
不要直接說“我張貼/ on ask on site”,因為它涉及可能的數據/代碼洩漏的風險,因此您可以說
之類的話,“如果我遇到了我無法解決的障礙在我看來,在進行初步調試後似乎已經克服了。我尋找在線技術社區和論壇中可用的答案,例如Stack Overflow”。
最好為stackoverflow編寫一個問題,以準確描述問題。那是因為準確地描述問題經常會直接帶您找到解決方案。顯然,您不會發布該問題。
當涉及到第三方代碼但您不理解並且記錄不佳,並且需要了解它的人的幫助時,這是個好主意。
要查找代碼中的錯誤?我會嚴重懷疑您作為軟件開發人員的素質。
如果他們要面試的素質包括誠實和實用主義,那麼告訴他們這將對您有利。
您顯然必須衡量這是否是“ 您的實際工作流程是什麼工作”或“ 出於面試目的以某種人為的方式展示您的技能和知識”。
但是,如果這是前者,那是您真正要做的,那麼就告訴他們。
在採訪中,我發現對雙方最好都是誠實的。這意味著,如果您同意,那麼它很可能很合適。面試官也常常欣賞坦率和謙遜,因為在通常不會鼓勵他們的情況下,他們很少見到。
也從您的角度考慮一下-如果這是您的方式工作,但由於某種原因,他們認為這是不可接受的做法,您真的很高興嗎?
根據我的經驗,在面試潛在候選人時,我總是提防那些不提Stackoverflow(或類似內容)的人。我傾向於僱用那些將SO放在問題解決方案列表末尾的人員,而不是那些將其放在第一位的人員。
正如其他人所述,SO是開發人員工具箱中的一種工具。它不應該是工具箱。但肯定應該存在。
作為高級開發人員,我每天至少要批評其他開發人員對SO的使用是虛偽的。對於我來說,一個相當尷尬的時刻是當我花了很長時間尋找解決方案的答案而只是找到答案時,這是我幾個月前在這裡寫的。
我希望看到您提出的一些問題,因為它們是公開記錄。在您的特定情況下,您的問題看起來結構合理且重點突出,而不是容易被谷歌搜索或同事必然知道的那種問題。我認為這樣的問題對您的工作申請是積極的(儘管我可能會有一些有關使用excel作為數據源的後續問題)。
但是,並非所有人都會付出努力,他們可能會不公平地將您在網站上看到的一些懶惰問題吸引您。另外,我想在您可以編寫StackOverflow問題之前,進一步了解您的故障排除過程。您如何縮小問題的範圍?您如何收集適當的上下文等。不要留下StackOverflow是您的第一個也是唯一手段的印象。
在一次採訪中,我正在尋找可以利用任何可用資源來更有效地實現其目標的人。
如果您對我說“當我遇到例外時,有時我會將其發佈到堆棧溢出中以查看問題是什麼”,在沒有其他上下文的情況下,我將其視為否定因素。相反,如果您要說“我經常使用SO進行交叉引用或研究潛在的替代方案”,那是肯定的-它表明您我已經了解了這個問題,並正在評估解決方案的多種選擇。
我不想要的一件事就是願意不斷改造輪子的人。如果已經解決了這個問題(並且許可證合適),請使用它!您只是節省了幾天/幾週的時間,並幫助確保了項目按時且在預算之內。
此外。.如果您提到SO ...您為自己的問題/答案歷史感到驕傲嗎?如果是這樣,請考慮在簡歷中包括指向您的個人資料的鏈接。
作為雇主,了解某人如何解決問題(並接受反饋/批評)對於全面了解候選人有很大幫助
我們有一名員工在面試中被炸毀。確實沒有顯示我們正在尋找的任何技能,但是他的SO簡介很周到,詳細,並且顯示了廣泛的知識。因此,我們又給了他一張鏡頭(和一些書面作品),他給了他一張照片(我們對他感到非常高興)。
我不能說我們會把他一個人帶走,但這足以讓我們停下來看看兩次。