題:
如何處理實習生的不專業行為?
Scramjet
2017-07-11 21:05:54 UTC
view on stackexchange narkive permalink

我是一家小公司(幾十名員工)的軟件開發人員。我們正在進行暑期實習。實習生是沒有專業經驗並且具有相當編程語言基礎知識的大學生。 (我沒有參與實習生的選擇)。將來,根據他們的表現,一些實習生將在公司聘用。

實習生正在開發一個簡單的應用程序(不適用於公司,而不是生產代碼),只是為了了解一些基本原理並相互了解,然後再進行更複雜的工作。

我每天都在幫助他們進行開發(快速會議以解決他們自己無法解決的問題),並進行代碼審查。他們遇到的主要問題之一是它們不遵循命名約定,並為方法創建了較差的簡稱(例如 convert )。當然,我向他們解釋了正確的命名非常重要,他們不應該害怕使用更長的描述性方法名稱(例如 convertGallonsToMilliliters )。不幸的是,其中一些人(我知道是誰,因為他們正在使用版本控制)顯然決定找點樂子(或嘲笑我),並開始創建諸如 convertToMillilitersBecauseIAmUsingSuchCleanCode 之類的愚蠢的方法名稱-並非一次,但很少。

我應該如何應對?我知道這不是生產代碼,但是我花了大量的時間進行審查,並且我會盡力而為-幫助實習生學習並讓他們學習有關乾淨代碼的最佳做法。

我應該以

  • 笑出來(“是的,這很有趣,但是請刪除它”)
  • 只是禮貌地要求刪除它
  • 告訴我當某人浪費我的時間時我不喜歡,他們應該更認真地進行代碼審查

我知道這可能沒什麼大不了的,但這是我第一次幫助實習生,我想知道如何正確處理這種情況。儘管如此,他們在實習期間的表現仍會影響他們被錄用的機會,以後這種情況可能會發揮作用。或者我應該按照這些思路告訴他們一些東西,以使他們更有動力去實際學習一些東西?


編輯:謝謝您的出色回答。我與經理討論了這個問題,並與實習生進行了交談。我在白板上寫下了方法名稱,並詢問他們是否認為這是一個好名字。我還與他們簡短地討論了代碼審查的目的。我告訴他們,在實際項目中,我們有外部公司進行代碼審查審計-這種笑話可能會在以後給他們帶來麻煩。因此,對他們來說,在實習期間學習本課實際上更好。

我們進行了交談之後,他們承認不應提交此類代碼。他們還告訴我,他們感謝我花時間審查代碼並感謝我的幫助。但最棒的是,此後他們的工作質量得到了真正的改善。實際上,開玩笑的那個人已經開始提供小組中最好的代碼-我現在看到他(和其他實習生)更加認真地對待我的代碼審查筆記。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/62045/discussion-on-question-by-scramjet-how-to-handle-interns-unprofessional-behavio)。
一個可能很有趣的選擇:對他們的代碼運行混淆,並告訴他們,當重新訪問6個月前編寫的代碼時,簡短的變量名是什麼樣的。
您見過Linux內核代碼嗎?例如,仔細查看[this](https://github.com/torvalds/linux/blob/master/lib/vsprintf.c)。出人意料的是,它行之有效,並且行之有效,以至於在全球範圍內都得到了使用。我不知道他們正在從事的項目的詳細信息,但總的來說,駱駝案並不是唯一有效的命名方式,如果您試圖在編碼風格中施加自己的個人喜好而又不解釋的話,我可以理解他們的無奈。_為什麼_您建議的風格將客觀上適合他們的項目。
請注意,這就是為什麼您沒有新員工來編寫新代碼的原因。您可以讓他們維護代碼,這就是他們真正了解為何認真對待編碼標準的地方。
考慮一下您至少和實習生一樣錯誤的可能性,並且試圖將本應包含在註釋中的信息填充到倍半數變量名中可能對可讀性同樣有害。
值得的是,我實際上發現您的示例很有趣。如果他們是這樣的話,我想讓他們知道您很喜歡幽默,這可能會減輕告訴他們這種不專業和將來需要避免這種幽默的打擊。它還會給您一些涼意/涼意,這可能有助於使他們真正地聽您的話。(請明確說明您不會再喜歡這種幽默了。)
沒有話題,但我注意到了一些事情:“將來,根據他們的表現,一些實習生將在公司中被雇用。”不,您會給一些實習生提供在公司工作的機會。您不應該假設他們會接受您的報價。
題外話……但是,我是唯一一個感覺“轉換”比“ convertGallonsToMilliliters”更適合這種方法的人(當然,要提供正確的類和上下文)。
@jamesqf註釋中應該*的唯一信息是*原因*,而不是*內容*。如果您的代碼不能清楚地顯示出它的作用,那麼它就是錯誤的代碼,並且無法通過向其添加註釋來修復錯誤的代碼,特別是因為更新註釋的機會甚至小於更新代碼的機會。
@PriiduNeemre如果您的代碼中有數十個“轉換”方法(是的,當您啟動時從來沒有...但是很快就會擁有),這將變得很難立即看到。通過清楚地命名或使用其他方式使其清晰可見,可以降低閱讀的複雜度。當然,也可能出現類似“ Gallons.of(x).convertTo(Unit.Milliliters)”的情況。僅當您有110%的把握這將僅是代碼中曾經進行過的轉換時……但是即使那樣,即使圍繞它的上下文清楚了,這種轉換是關於什麼的。
-1
向項目添加新方法進行演示。FireEmployee(字符串employeeName,字符串原因),並添加一個單元測試,調用帶有問題僱員姓名和原因的方法來說明方法做錯了。證明此測試已通過並準備就緒;)
-1
@undercat應該在Linux源代碼中看到什麼?
@undercat在這裡很重要。源代碼中隱藏著漫長的幽默風俗,這是很長的傳統。聲稱這樣做是不專業的,是本地標準,而不是通用標準。
我不同意Mehrdad。我們在談論專業精神?您為什麼要花時間獲得實習生的尊重,以便他們聽您的話?這是試驗場,他們應該得到您的尊重。我知道身為頑固主義者絕對會破壞溝通,但我認為給予指導並不適用。如果他們沒有接受您的指導,或者他們沒有響應代碼審查,那將不是專業人士。如果幽默不是屈尊的話,那麼幽默並不重要。
此外,您不必激勵他們學習。他們的野心是他們的責任。如果您想要什麼,就去拿。僅僅因為您上了某所大學而獲得了學位,獲得了實習機會,職業生涯的時間無關緊要,除非您自己採取主動。您不必擔心自己在其中的地位,您應該明確表示他們正在選擇自己的命運。
@CodeSeeker可能是第9行的註釋
這個問題不是“方法應該使用長名稱還是短名稱?”。這是“我如何對待同事將愚蠢的笑話放入源代碼中?”
那真的是一個很好的例子嗎?單獨的動詞`convert` *應該是函數名稱,並且詳細信息是參數類型的一部分。也許`auto result = convert (原始);其中“原始”的類型為“加侖”。IAC單位應為強類型,並且操作應針對特定於特定單位的底層抽像數量。
您怎麼知道他們這樣做是無禮的?也許實習生這樣做是為了向您明確地表明,他聽了您說的話並理解了您為什麼這麼說。
我是一位擁有十多年專業經驗的開發人員。當我需要在代碼中開玩笑時,我會在數據中進行單元測試。我為單元測試客戶提供了風趣的街道或姓氏,我為測試選擇了域外產品,例如電鋸或月球火箭。我的最後一名實習生選擇了男性Marvel和DC角色作為其項目的單元測試用戶,並附帶電子郵件地址和密碼是其女友的名字。他經歷了那個計劃。我以為這很聰明又搞笑,所以我鼓勵它。有一個娛樂的地方,但不像他們在問題中那樣
簡單的答案:安排代碼審查。在大多數軟件商店中,正常軟件開發週期的一部分。
將`convertToMillilitersBecauseImUsingSuchCleanCode`更改為`convertToMillilitersBecauseImUsingSuchCleanCode`並等待NoMethodError。
可接受的答案,以及對該答案的註釋中對@inappropriateCode進行的調整,是解決之道。最重要的是,不要雇用表現出這種方式的實習生。
舉行小組會議,然後說“看,你個小鼻涕-這不再是大學了,它是真實世界。而在現實世界中,像這樣的胡話使人們被開除。再做一次,你就走了。”
@Florian Schaetz:如果您的代碼清楚地表明了它的作用,則您不是在處理非常複雜的問題:-)嘗試實現說一個可以從代碼中理解的eikonal方程求解器。使用非常長的變量名將無濟於事。確實,當您回頭引用原始論文中的方程式時,它將很痛苦。
@jamesqf編寫一個精巧的方程式求解器,在此處文檔可以很好地適合代碼。不會的在這種情況下,無論如何您只需要參考原始紙張即可。但是,您可以做的是包裝整個求解器,這樣就可以清楚地知道它的作用,即使通過代碼本身只是“數學”可以回答“如何”。
拒絕PR,並簡短說明原因。請勿接受包含此類問題的未來PR。
簡而言之,這些就是您不會僱用的人。故事結局。
我不知道,我個人覺得這很有趣。厚臉皮的幽默感我沒有發現任何問題。這說明他們沒有真正理解適當的函數/變量名稱的好處-這是預期的實習生。我認為以個人身份而不是以此為基礎聘請他們的判斷力很差。
如果這對他們的代碼來說是最糟糕的事情,那麼您會有一些很棒的實習生;)。
他們可能看不出使用專有名稱的意義。這樣做通常需要很多時間,並且要有經驗。如果這個項目沒有意義,請讓他們開心。如果項目確實很重要,請招募參與該項目的人員,並就團隊成員將來如何維護該代碼進行“對話”。
-1
@EdmundReed我完全同意不以個人為己任。不用了在此頁面上查看我的答案和評論。
-1
@PriiduNeemre我確實讀過它,儘管在評論時還沒有。我確實同意你的意思,但是在某些情況下,不必過度設計軟件。有時,您只需要ConvertGallonsToMilliliters,就沒有空間創建整個上下文,在該上下文中可以將轉換提升為適當的域級關注。我的觀點是,僅僅斷然稱呼這種名稱是錯誤的。在特定情況下可能是正確的。
@CodeSeeker:很好的論點,我可以接受:)。老實說,我並不是真的想發表一個籠統的聲明……不過,我認為這確實在挑釁性方面有所作為。
我不明白為什麼實習生“彼此了解”是一個因素。他們不是去結識其他沒有聯繫,沒有經驗的大學年齡的孩子的;他們在那裡“了解”專業開發人員。同樣,實習生主要或全部從事一個項目意味著他們不是在學習和學習(好的,壞的和醜陋的)真實代碼,而是彼此學習,盲人領先盲人。如果您有多個團隊,則為每個團隊分配一個或兩個實習生,或者為志願導師分配更有意義。
我認真地認為這個問題不屬於這裡。它屬於“ programmers”堆棧交換。OP是一名工程師,他正在嘗試對實習生進行人員管理,並且他已經吸取了教訓,就是這樣!
@FlorianSchaetz *如果您的代碼未清楚顯示其功能,則為錯誤代碼*-取決於語言:-/
告訴他永遠不會通過代碼審查,因為convertToMillilitersBecauseIAmUsingSuchCleanCode模棱兩可。應該將其轉換為***加侖***為毫升,因為IAm使用SuchCleanCode
22 答案:
SaggingRufus
2017-07-11 21:13:04 UTC
view on stackexchange narkive permalink

我不認為嘲笑是正確的方法。他們需要知道自己不再上學了。話雖如此,我也不認為您應該採取其他措施。

我建議您對他/她保持堅定,並說出以下幾點:

之所以使用命名約定,是因為它們非常重要。此代碼將來需要維護。這裡周圍的很多人都在努力地找到自己的位置,他們可能不喜歡這些笑話。將來請不要使用這些類型的名稱,因為它會引起人們對您的專業精神的質疑。

這似乎是通常正確的方法。就個人而言,我會使用不太正式的語言來與他們保持一致。我會叫他們到我的辦公室,說:“嘿,我注意到您為您的方法使用了一些愚蠢的名字。這有什麼關係?”我認為以這種方式親自叫他們出來,更可能引起羞恥和re悔。過於正式的書面責罵可能只會給他們更多的嘲弄意味。
Joe S
2017-07-11 22:06:09 UTC
view on stackexchange narkive permalink

首先,這似乎是一個玩笑,它們被植入代碼中,他們很清楚它們不會被用於任何用途或再次讀取。我認為您對此事件的了解過多。重要的是,您向他們介紹了命名約定,他們並沒有忽略您,他們使用了更長和更具描述性的名稱(儘管諷刺地)。

觀看完此視頻 後,我看到員工渴望做三件事:

  1. 自治
  2. 精通
  3. 目的
  4. ol>

    您要他們做的事情不是自主的,對他們中的某些人來說可能是微不足道的困難,並且對他們而言毫無用處。

    完成任務後,工作人員將繼續進行。

    一些示例:

    1. 這是這裡項目,一起工作並由____完成,讓我知道您是否遇到困難。

    2. 我知道這似乎並不重要,但是為了評估您的技能並分配您認為有助於您成長的工作,我們需要您完成此任務。

    3. ol>
同意他們知道自己正在做的事情完全沒有意義,這可能會令人沮喪。幽默是釋放精力的好方法。
我真的很喜歡這個答案,因為它與管理層共同歸咎於實習生的不專業行為。作為直到最近一直堅持以卑鄙的角色完成瑣碎任務的人,我了解微觀管理和缺乏自主權會對我自己的生產力產生負面影響。雖然紀律可能會導致短期解決,但它並不能解決潛在的問題。
我看過視頻,我喜歡這些觀點。但是,這顯然是顛覆性的和無禮的。問題是為什麼。在扔進游泳池深處之前要對玩具進行操作並不是微管理。雖然實習生可能不明白這一點。對此做出反應的最佳方法是問為什麼。他們是在取笑練習,標準,管理,還是只是在鍵盤上花了很多時間而沒有拿著Nerf槍的時間呢?
在沒有任何處理之前,請不要閱讀任何內容。這甚至不是管理層的事。這是一個代碼審查問題。您不這樣做的原因不是因為管理層會解僱您。這是因為您的同事知道您將咖啡杯放在哪裡。
同意他們是從未在專業環境中工作過的孩子,他們的目標之一是教他們如何在專業環境中工作。因為不專業而解僱他們似乎沒有抓住重點。
@JaguarWong“他們是以前從未在專業環境中工作過的孩子,他們的目標之一是教他們如何在專業環境中工作。”他們大概是20多歲,不久之後就需要這樣做或繼續讓父母為他們付款。坦率地說,“不要嘲笑您的導師”是他們應該已經知道的事情。
@CandiedOrange重新“顛覆/不尊重”:不一定正確。我們只有經理的帳戶。就我們所知,“ convertToMillilitersBecauseIAMusingSuchCleanCode”是一個“誇大”的例子。實習生不是“嘲笑”,而是“捆綁”了,經理不安全,做了最壞的解釋。也許實習生很自豪地把它放在那裡,表明他們不僅聽了,而且很享受,並且設法從中獲得了一些樂趣。當實習生可能沒有躲藏並且只是想減輕精神時,經理假設他“巧妙地找出了誰”。
AnoE
2017-07-12 02:49:12 UTC
view on stackexchange narkive permalink

TL; DR 我反對方法名稱,因為它對老闆和/或“規則”(此處為:樣式準則)表示不滿(我認為!)。在工作場所中,我希望人們遵守“愛,更改或離開”的規則。在這種情況下,似乎認為該準則是不必要的實習生應該要么接受它,要么接受它。或繼續進行討論;或停下來做他的工作。不要在馬桶上抹一些污漬。我絕對不會反對一個真正有趣,富有創造力的方法名稱。如果您(OP)發現方法名像我一樣有趣而不是“不好”,那麼請忽略此答案。


作為背景,我監督了一些過去,他們是高度聰明和(自我)進修的實習生,從來沒有人問過他們是否會表現專業。將學校級別的愚蠢行為作為實習生帶入工作場所遠遠超出了可接受的範圍,我建議不要四處閒逛。為了您自己,尤其是為了他們自己。

我想知道如何正確處理這種情況。

首先,忘記編碼約定。該問題與計算機或編程無關。

  • 不要說謊。不要剁碎單詞,不要嘲笑它,因為這確實不是一件可笑的事情。
  • 不要變得個性。 您不是OP,也不是您與他們之間的關係。純粹是嚴格地關於他們的行為。
  • 按原樣解釋事物。您絕對可以告訴罪犯,您有點理解他是怎麼想到這個想法去做他所做的事情的,您個人並不對他或其他任何事情生氣(保持情緒激動),但是您正在將實習視為對他的掩護。以後再接誰。

如果您希望傳達任何情感,請遠離憤怒。您可以表現出輕微的悲傷(坦率地說,這正是我的真實感受),並向他們表明您感到非常失望。被錄用,這種情況以後可能會起作用。

絕對!不要為“以後可以扮演角色”而煩惱。這樣的行為可以,應該並且將使他們有機會在實習期為零之後獲得錄取通知。您可以用平時清楚地與他們交談的任何方式說出來。

嘗試找到根本原因。如果您發現...

  • ...他們在這裡違反了他們的自由意志(也許是他們的父母,他們的學校或其他任何一種,使他們選擇了一些實習機會,他們就這樣發生了。來選擇您的公司)...
  • ...他們對“商業”風格的軟件開發完全不感興趣...

...然後提供中止實習並不是你能做的最糟糕的事情。問題不是您的時間浪費了(無論如何您都分配了很多時間來監督他們,實際上並沒有使您的情況變得更糟),問題在於他們的時間被浪費了。

或者我應該按照這些原則告訴他們一些東西,以使他們更有動力去實際學習一些東西?

我會打趣地說:“每個人都可以學習,但沒有人可以教。”我想您會發現,很難激勵該人學習編碼約定的用處,因為它們已經表明對這些約定的興趣為零。您可以教那些對您所說的話感興趣的人。但是,如果某人不感興趣,那您真的無能為力。

如果您實際上真的想幫助那個人“看到光明”,然後請他們為自己的利益而努力,也許他們以後會體會到您所能提供的幫助。實習是對他們可以提供的有限服務的交換,與實際工作場所的經驗交換。如果他們對吸收經驗不感興趣,那麼那真的沒有意義。大概,您的公司不依賴於某些實際項目的“人力”。

_首先,忘記編碼約定。該問題與計算機或編程無關。_這是一個很好的觀點!
抱歉,我發現您的答案是苛刻和反應過度,因此為-1。我發現諸如“遠遠超出可接受範圍”,“它們已經證明他們對這些東西的興趣為零”和“使他們後來加入的機會為零”之類的短語不適用於這種情況。他們只是為不相關的代碼選擇了一些愚蠢的名字,這個動作可以在幾秒鐘內得到糾正(而且在許多嚴肅的應用程序中,使用某些愚蠢的名字很常見)。他們沒有謀殺他們的老闆!
不必後悔,您的@dirkk,與其他人一樣有效。我想這可能有助於了解這些人的年齡和/或背景,以及實習的背景。
“因為這確實不是一件笑事”。這是方法名稱,而不是醫療急症。是的,它*應該*是完美的,無菌的和戰艦灰色,但是如果您真的根據該標準選擇人員,請準備在不久的將來讓腳本和AI接管您的完美,無菌和灰色的商店。所有人類都會犯錯誤,如果他們唯一的錯誤是找到符合規則但幽默的方法名稱,那麼我肯定會僱用他們。
@nvoigt完全有可能在沒有學齡前愚蠢的情況下,以良好的編程能力編寫出色的代碼。(並且不,這不符合規則。)他們的錯誤是將OP視作在我們這種情況下的另一位老師,而不是試圖幫助他們的同事。如果他們保持這種幼稚的態度,您為什麼要雇用他們?如果有大量的實習生,而全職工作較少,那麼*他們*需要給*您*一個讓他們與您一起工作的理由,否則,您最好與其他人一起去。
-1
@nvoigt,的問題(對我而言)不是他們使用了一個有趣的方法名稱。例如,我們的一位開發人員將程序包稱為“ I”,導致方法名稱如“ I.run()”等。沒關係,這很有趣,等等。在這個問題中,這個人選擇的方法名稱大致翻譯為“myBossSucksButIDo他所說的話,因為他這樣說”。是的,*當然*這只是我的意見,但是我們在Workplace.SE中,這裡應該允許一點意見,尤其是因為投票機制會處理它。
@nvoigt:添加了一個TL; DR以更好地解釋我回答的精神。
-1
-1
@Lilienthal:感謝您的反饋,似乎偶爾對我來說(成為重點)是一個問題。我會盡力而為。;)
@AnoE我知道這種感覺,只有600個字符的限制可以使我的評論保持檢查。如果您想清除其中的這一部分,請繼續在上面標記我的評論。
“問題與編程無關。”這是一個奇妙的觀點,並且是問題的核心。我認為大多數其他答案都暗示了這一點,但對於將其明確拼寫出來表示讚揚。
Masked Man
2017-07-11 21:50:41 UTC
view on stackexchange narkive permalink

我們都討厭這樣做,但是有時您只需要使用權限來解決問題。召集實習生開會,要求知道為什麼不遵循命名約定。

我解釋了上次會議要遵循的命名約定。我遇到了許多未遵循命名約定的情況。例如, convertToMillilitersBecauseIAmUsingSuchCleanCode 。您能解釋一下為什麼選擇這個名字的原因嗎?

他們的“答案”無關緊要,這應該足以作為“第一次警告”,違背其主管的指示(我假設您是),並且在專業環境中以他為代價開玩笑是不可接受的。這甚至很適合實習的一個目標,即向學生展示如何在專業的環境中工作。

如果他們繼續幼稚的行為,那麼,我想您已經得出結論:

將來,根據他們的表現,一些實習生將在公司被雇用。

這裡的問題是它們確實遵循了命名約定
@JoeS如何?“ convertToMillilitersBecauseIAM”未遵循“不應該害怕使用更長的描述性方法名稱”的指示。它很長,但不是描述性的。
他們在@Cheshire玩了“精確單詞”遊戲。這不是要用蠻力解決的問題。
@JoeS不,他們沒有。顯然,他們的行為是消極的積極進取,他們選擇長名只是為了嘲笑主管。我很想看到一個成熟的工作專業人士也表現出同樣的行為,並且沒有受到強烈的譴責(如果不是更糟的話)。選擇名稱的時間超過其需要的時間是沒有道理的,他們沒有在玩“最佳漏洞濫用”遊戲,即使規則有問題,他們也應該建設性地提出來,而不要表現得令人討厭。PS:老實說,我希望你在開玩笑。
如果他們的答案無關緊要,那麼您為什麼要召開會議提出問題?第一個警告應該是實際警告,而不是反問。
@mwbl因為將其作為問題的目的是使他們處於他們考慮過的不舒服的位置,並當場給出“一些”答案。他已經告訴過他們有關命名約定的信息,但他們沒有“得到”。告訴他們“您不要在您的代碼中使用愚蠢的名字”會被“是的,我們正在談論的代碼如此乾淨”。實習生需要意識到大學和專業環境之間的差異。
“你能解釋為什麼選擇這個名字嗎?”當您清楚地看到這是個玩笑時,這是一種相當消極的攻擊行為。我希望您的目標是更好的編碼約定,而不是炫耀您的權威。
-1
@Lilienthal,好,那麼您可以說例如“在命名約定中開玩笑是不合適的”。如果您假裝不明白,您只是在說“我是老闆,您應該學習您的位置”。這與社會角色無關,與您的自我無關,與工作慣例有關,老闆應該能夠以建設性的方式進行溝通。僅僅因為實習生表現得幼稚,並不意味著您必須這樣做。
@Lilienthal我會在發現時間的時候在這些電話上做出回應,但是您的表達肯定比我說的要好得多!
@Boat在這裡,讓實習生解釋為什麼他們不遵守規則到底是什麼幼稚?實習生不在幼兒園,您不應該讓他們給人以為他們會在專業領域受到寵愛的印象。主管已經告訴過他們一次要遵循命名約定。他沒有這樣的義務“讓他們第一次開玩笑,並再次解釋規則直到他們不再開玩笑”。老闆告訴他的下屬去做他們的工作並沒有什麼破壞性的,他不需要照顧他們就可以完成工作。
@MaskedMan-仮面の男錶示開玩笑是不行的,這是完全可以的。但是問一個假裝您對答案感興趣的解釋並不可行,因為實際上您只希望他們回答“因為我很愚蠢”。這與要求對每個書寫錯誤都做出解釋是一樣的:您知道它並沒有在那兒的原因,因為他們認為這是正確的,但您卻假裝自己不這樣做。只是告訴他們開玩笑/寫錯是不好的,如果他們不改變自己的行為,但不要假裝將他們踢出去。
@Boat嗯,這可能歸結為工作文化的差異。在我熟悉的工作文化中,實習生在那裡做的事情叫做不服從。我*他們*因為*他們是實習生,因此減少了很多空餘,並建議要求他們準確地解釋原因是因為他們應該考慮這一點,而不僅僅是得出結論:“我們不應該因為老闆這樣說而違抗老闆”。這裡的問題不是他們本身“開玩笑”,而是他們完全無視主管的指示。
@boat“我是老闆,你應該學習你的位置”。實際上,我認為這是實習生需要學習的課程之一。
Xavier J
2017-07-12 00:30:46 UTC
view on stackexchange narkive permalink

哦,一堆螺絲釘,是嗎?

採取一些有效的代碼並做一些故意破壞它的事情。然後通過混淆器運行它,將所有類,變量和方法名稱更改為諸如“ a___1318798_”和“ xy23_7a963”之類的東西;或更糟糕的是,變量名稱中包含很多字母O,字母I,數字0和數字1。將其分配給他們,以記錄代碼在做什麼,並修復它。

這將消除這種玩笑。

不知道為什麼這個答案被否決了。我很確定,這個“任務”在頭上釘住了命名約定的問題。但是,專業水平……太糟糕了,“我對某個影響我是否會被錄用的人真是個混蛋”沒有回退
@TBear這可能浪費的時間比已經浪費的時間還多,可能沒有教一個非常有用的課程,或者最好不要教一個可以通過快速解釋更輕鬆地教的課程。儘管我沒有親自投票,但我相信這就是為什麼其他人有投票的理由。
我也有同樣的想法,但由於可能不是解決問題的好方法,因此將其作為評論發布。在很大程度上取決於開發團隊的文化以及您是否將實習生稱呼為“痛楚”的大痛苦風格。
幾乎可以肯定,這是一堆壓倒性的選票(我保證不是從我這裡來的),因為這只會*增加*實習生對這項運動的重視。
借助版本控制,只需一次回滾即可在30秒內解決此問題。
@DmitryGrigoryev您不必通過git給予他們;)
@BlackThorn承擔責任,為自己辯解並明顯地嘗試做得更好,可以作為對此的回滾。
Joe Strazzere
2017-07-11 22:48:50 UTC
view on stackexchange narkive permalink

我知道這可能沒什麼大不了的,但這是我第一次幫助實習生,我想知道如何正確處理這種情況。儘管如此,他們在實習期間的表現仍會影響他們被錄用的機會,以後這種情況可能會發揮作用。還是我應該按照這些原則告訴他們一些東西,以使他們更有動力去真正學習一些東西?

我假設他們並不愚蠢,並且已經知道過長的名字是不合適的,即使他們從中笑出來也是如此。如果沒有,請解釋原因。

希望您能跟踪他們的表現,並記下這種情況發生的頻率。

CodeSeeker
2017-07-12 02:42:40 UTC
view on stackexchange narkive permalink

我會以坦誠而認真但不嚴厲的態度私下對待他們每個人,像這樣:

”實習生,我看到了你的笑話方法名稱。我知道您為什麼這麼做,但我自己並不覺得這很有趣。所以我想到問您,您在這裡做什麼?您想完成什麼?” p>

如果實習生說他只是在那兒扭來扭去,那就和管理層談談以結束實習。您是在浪費時間。

如果他說他在那裡學習,那就說這樣的話:

“我意識到很難認真對待某些東西知道您不會在生產中使用它,但是請意識到,您不僅在花時間,還在在花我的時間。從本質上講,公司提供的實習是一種阻止我們成為慈善機構的唯一一件事就是希望找到優秀的候選人。因此,這是我的時間,但前提是您認真對待。”

”“如果可以”不能認真對待它,就好像您正在編寫重要的生產代碼一樣,我們如何才能正確評估您並決定是否為您提供工作?即使我們不為您提供工作,如果您仍然不採取工作,認真地說,您還將如何獲得這些技能,並能夠在比您有更多經驗的人的寶貴指導下進行練習?“

”如果我是您,我將盡我所能來遵循佛的領導指導您的人,他們有些慈善,正在從工作中抽出無利可圖的時間來投資您。考慮到無論我們是否僱用您,您都將從此實習中受益!如果您更認真地對待這一點,我個人將不勝感激。自己動手!如果您不想自己做,請出於敬意或出於感激之情,在我從正常的生產工作中抽出時間來為您和您的未來投資時。”

引用>

在某種程度上直接解決該行為本身以及為什麼要從中做出很多事情可能是適當的。您可能會考慮這樣的事情:

”“對於它的價值,這種行為在企業界被認為是不尊重甚至嘲笑的。我敢肯定您不是故意的這樣[即使您不相信,也可以說],但是請在將來遵循我的指示,而不要在代碼中添加麻煩的內容。“

實習生說“哦,是的,我的意思是不尊重”,讓他以最輕鬆的方式挽救了面子並修復了戀愛關係。無需提取供認他確實是無禮的意思或招致很多道歉。這裡的重點不是權力過渡,而是成功的實習。

如果畢竟,負面行為仍然存在,那麼您可以正面解決。您沒有理由不能像實習生那樣給問題實習生一個績效目標,也不能使用其他任何與普通僱員一樣的策略。但是請記住,實習生沒有工作環境的經驗,應該在您溫和而堅定地使他們適應專業工作環境的標準時休息一兩次。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/62240/discussion-on-answer-by-codeseeker-how-to-handle-interns-unprofessional-behavio)。
user27051
2017-07-12 00:15:51 UTC
view on stackexchange narkive permalink

我和剛畢業的幾個人一起工作。他們做這種事情不是故意的,而是因為他們覺得沒有必要太學究。代碼可讀性或可重用性對他們根本沒有意義。因此,我很沮喪,但是由於我不是他們的老闆,所以我不能責罵他們。

程序員通常都是聰明的人,“因為我這樣說”很少是一個足夠好的理由即使是最佳編程實踐,也要實現一些東西。

我將檢查代碼,確保告訴他們幽默風格錯了,並且他們奇怪的命名約定浪費了很多時間。對於下一個任務,我將其分為兩個部分:一側的是有趣的傢伙,另一側是其餘的傢伙。他們會執行相同的任務,但是有趣的小組應該花更長的時間,因為他們沒有遵循最佳實踐。我會確保該任務足夠複雜,如果他們遵守約定,會使他們浪費大量時間。

您還可以分配一個有趣的人來調試另一個有趣的人的代碼。我認為 functionThatDudeToldMetoDefine 不會使它成為具有此名稱的最終版本。

無論如何,提高權限的唯一方法是在證明他們的情況下獲得它們對自己說你所說的是真的。

我覺得這句話是一個很好的建議:“增加您的權威的唯一方法是讓他們在自己證明您主張的事實的情況下獲得他們。”如果他們不遵守約定,那是因為他們不了解約定的價值。讓他們自己看到價值可能會幫助他們使用約定。
你不能責備他們。但是,如果您正在執行代碼審查,則可以將其發送回去,再發送回去,然後再發送回去。如果它繼續下去,請升級它。當然,您的老闆*應該*對代碼的可讀性和重用性有意見,因為這直接影響到團隊的時間表。如果他們不能遵循編碼標準,那就擺脫它們。剛離開學校的孩子只有一分錢10便士,如果他們不學習,則可以開除他們並找一個可以的人。
-1
“程序員通常很聰明,並且“因為我這麼說”很少是一個足夠好的理由”,從理論上講可能是正確的,但實際上,與程序員練習“ Emacs vs Vim”,“ Chrome vs Firefox”這樣愚蠢的偏執完全相反。“,“ C ++ vs Java”,“ Windows vs Linux”等。在許多情況下,合理的做法是學習盡可能多的工具,並為工作選擇合適的工具,但是程序員堅持使用他們的“首選”工具,即使可以使用其他工具更好地*並且他們知道*。
@user27051再說一遍,如果其他人聽到您遵守適當的標準並擺脫那些妨礙您工作的人,他們將會來...
user73663
2017-07-11 23:52:55 UTC
view on stackexchange narkive permalink

有問題的實習生正在浪費您的時間和耐心。您的時間和耐心對於公司而言是昂貴且有限的資源,而實習生將從公司對公司的投資中獲利,而這項投資受公司資源的限制。

他們是否願意浪費公司的資源是相關的績效評估的一部分,可能會導致他們的實習提前終止,以便僅將公司資源用於那些真正有興趣學習如何成為工作場所的寶貴,負責和可靠的部分的實習生,他們既可以承擔任務又可以承擔任務

我會告訴所有實習生,展示一些示例代碼,不要提及其作者,不要花費超過2分鐘的時間,並且如果代碼隨後得到修復並且類似事件不會重複一遍,不再贅述。

如果警告鏡頭沒有引起注意,則下一步是不限成員名額的談話,只涉及有問題的實習生,也可能是您的上級實習生(確保他在您的船上)雖然)。然後,您需要確定是否欠其他實習生,以免破壞成功實習的機會。

僱用實習生的重點是,您將教他們一些有經驗的人所使用的工作場所規範。我認為,這還應涉及明確和直接的反饋。放棄暗示絕不是一個好的管理策略,我認為這些實習生尤其容易失敗。儘管這應該被視為一個嚴重的問題,但實習生還是會犯此類錯誤。判斷失誤與不願意學習不同。
Pak
2017-07-11 22:58:26 UTC
view on stackexchange narkive permalink

聽起來這裡有兩個主要問題:1)它們變得不禮貌; 2)函數名稱仍然很爛,儘管它現在更長了。

譴責它們以便開玩笑可能不是將使他們更加尊重您的權限,因此我將把重點放在該問題上,就好像它是其他任何命名不當的函數一樣。我不一定會像我不知道這是在開玩笑那樣裝傻,但我會問他們為什麼選擇他們的名字:

”該函數名稱中的多餘單詞無法幫助解釋該函數的功能。“

這樣,對於他們來說,這是一個學習機會,使他們知道一個好的函數名稱,而您卻不是直接面對他們。作為額外的獎勵,他們可能會覺得自己只是在四處閒逛,可能會因為浪費每個人的時間而感到羞恥。

“我不一定會像我沒意識到這是個玩笑一樣裝作愚蠢和假裝,”我認為這部分需要進一步說明,因為在這裡看來“不敬虔”的部分非常重要。
_“此函數名稱中似乎有些多餘的單詞無法幫助解釋該函數的功能。” _似乎這是實習生試圖針對“ convertGallonsToMilliliters”提出的要點。我建議您*解釋*為什麼`convert`尚不清楚,而較長的一個值得*具有*冗長的含義,而不是試圖“處理其行為”。(而且,如果您主張精度,而他們主張簡潔,則您甚至可能會以結合了兩個方面的優點的“ gal_to_ml”之類的函數名稱結尾。)
steve
2017-07-12 01:35:16 UTC
view on stackexchange narkive permalink

如果您必須提醒人們您是負責人,那麼您就從來沒有。

最好進行代碼演練,使開發人員必須解釋他們的職責。

  1. 這會灌輸對項目成果的個人責任
  2. 提供即時的專業反饋
  3. 使開發人員具有開發性完成項目的緊迫性
  4. ol>

    利用團隊中的領導力來維護組織的標準。然後,幫助年輕員工達到這些標準,避免出現不合格工作的尷尬。

第一句話似乎並沒有真正為您的其餘帖子增加任何內容。我想念什麼嗎?
Lord Farquaad
2017-07-11 22:57:49 UTC
view on stackexchange narkive permalink

很顯然,您需要使它們停止運行,但僅告訴他們可能無法演示原因。

無論如何,我都知道每行80個字符的指導方針不是硬性規定,但是嘗試堅持下去是一個好習慣,因此擁有48個字符的變量名是非常愚蠢。

我建議告訴他們從現在開始嘗試遵循此準則,但是也不允許他們更改他們選擇的變量名稱。有點像“您已經整理好床,現在躺在其中”。

您將嘗試在他們的腦海中嘗試一種新的做法(假設他們還沒有保持簡短的行),不了解為什麼長變量名不好的實習生將會發現,“聰明的”實習生很快就會發現自己沒有想像中的聰明。

對於更有經驗的編碼人員來說, convertToMillilitersBecauseIAAmUsingSuchCleanCode 尤其糟糕的原因很明顯,但是與其告訴他們“不好”,而是迫使他們找出原因。我敢打賭,您遇到的冗長名稱會少得多,如果運氣好的話,將來也不太會出現時髦的情況。

不幸的是,在現代IDE中,長名稱幾乎不再像以前那樣困擾他們。
TOOGAM
2017-07-12 11:17:32 UTC
view on stackexchange narkive permalink

這不一定是“一種尺寸適合所有”。很好,根據情況可能是最好的方法。這是我對所問每種方法的回答:

我該如何應對

  • 大笑它(“是的,這很有趣,但是請刪除它”)

在以下情況下,這是一個好主意:與這些同事的融洽關係已經成為

  • 禮貌地要求將其刪除

在以下情況下,這是個好主意:您想直接表達自己的想法,以免造成誤會

  • 告訴我當某人浪費我的時間時我不喜歡,他們應該更認真地檢查代碼

在以下情況下,這是一個好主意:您希望交流煩惱,並堅持威權主義的方法。

(我傾向於認為您可能能夠將所有這些方法組合成一種不冒犯,禮貌而有趣的方式來傳達自己的觀點,實際的煩惱。“這種事情必須停止,因為它只會讓我走 [嘲笑]

個人而言,我喜歡友好的方法。我是那種做事的信徒。但是,我很容易承認,有時候這種方法不太有效。

但是什麼是最好的?
您的基本問題是:“我應該如何應對? ?

基本上,這個問題可以歸結為:“我需要去某個地方。我應該使用單輪腳踏車,蹺蹺板,自行車還是公共汽車?”

任何這些運輸方法之一可能是最好的。同樣,回答您應該如何反應的問題:您最好的反應可能不是我最好的反應。

這是一個關鍵原因,即使不同的答案似乎都同意實習生的行為不適合生產結果,但不同的答案似乎卻傾向於採用不同的方法。如前所述,我們可能沒有一種單一的“一刀切”的方法普遍適用於每個人。

我們在這裡與人們打交道,因此在某些情況下最有效的方法可能不是在其他情況下也很好。關鍵因素之一就是你。您能在不燒橋樑的情況下嚴厲嗎?您可以輕鬆地與他們成為朋友,同時又確保足夠的依從性和靈感來獲得期望的結果嗎?對我而言最有效的方法可能對您造成可怕的影響。最終,您需要對採用哪種方法進行判斷。

靈活的教學方式:不要只局限於一種方法。

只需選擇您最喜歡的方法即可。確保不要太過分(壞/令人反感的幽默,或者為了嚴格而營造一個不舒適的威脅環境)。

無論您決定選擇哪種出色的建議繼續前進,請密切注意結果。

您很有可能做出無法如願以償的判斷。只要您沒有造成任何重大問題,如果積極且迅速地進行處理,這可能是非常可恢復的。這就是為什麼您不必過多擔心嘗試做出最完美決定的原因之一。如果事情進展不順利,您的情況就可以解決。人是不同的,學習可能是不可預測的,並且在第一種需要修改的方法中不會有任何恥辱。只要您恢復得很快,這可能就不是問題。

關鍵是要在發現不良結果後立即進行更改。期望需要快速適應。當某些方法不起作用時,請準備好快速修改該方法,甚至完全將其扔出窗外。如果您正在做的事情不起作用,請確定您是處於突破的邊緣,還是需要嘗試其他嘗試。 (獲得反饋將有助於確定此決定。)如果您需要嘗試其他嘗試,請這樣做。繼續這樣做,直到獲得可行的結果。

只要您迅速採取行動(在長期的苦澀之感開始發揚光大之前),輕而易舉的缺陷就可以輕易抹去,因為與積極的結果相比微不足道您實現了總體目標。 (只要確保事情進展不順利,問題就不大了。主要的瑣事可能更難忘記。例如,幽默嘗試可能很危險。)

例如,如果您發現他們開始討厭您,恐懼環境等,請確保消除任何誤解。向他們保證你站在他們一邊。鼓勵期望的行為。等

Dmitry Grigoryev
2017-07-12 19:49:30 UTC
view on stackexchange narkive permalink

只需告訴罪犯(個人或通過電子郵件),就很難將這種實習作為開玩笑的地方,而且,如果他們想開始職業,就必須認真對待。

詢問他們來修復代碼,或者(如果您想顯示一些權限)只需回滾他們在版本控件中的更改。

xvk3
2017-07-11 21:23:12 UTC
view on stackexchange narkive permalink

兩年前,我與貴公司的實習生處於相似的職位。我可以想像一個我可能會做類似事情的情況。學究和/或不專業。這主要是由於我們這一代人對長輩和較高職位的人缺乏尊重。我將嘗試以下方法來解決這種情況。 >

將腳踏函數名稱用作每個人的課程,最佳函數名稱長度:goldilock的區域。重命名為適當的名稱(/含義)

  • 無需注意,請忽略函數名稱;將時間集中在想要學習的人上。

  • 我會注意非專業實習生的姓名,以防萬一。

    有趣。實際上,我可能只比實習生大3-4歲,所以他們不尊重我(儘管我有很多經驗)。做那個的人實際上是那裡的一個“ alpha”,所以我可能只是在白板上寫一個函數的名字,然後問實習生他們是否認為這是一個好名字以及如何命名它。該實習生的名字將被註明。
    @Scramjet我有點像白板的想法。我要寫答案,在這裡您應該問一些荒謬的修辭性問題,以使正確的命名點成為現實。有點像,“哇!由於您的“乾淨代碼”,您可以將任何內容轉換為毫米嗎?我真的很好奇您如何將“ Hello World”轉換為毫米!`詢問其他人他們認為該功能基於名稱的作用肯定會顯示出重要性
    “問別人他們認為函數的功能是基於名稱的” xD我很喜歡。
    @Scramjet我認為問題的一部分是他們“肯定”將您視為同行而不是權威。尋求更積極,最重要的**幽默**方法。他正試圖嘲笑您的費用,讓他有所作為。
    這些似乎是可怕的想法。坦率地說,作為非實習生,實習生的作用是贏得實際謀生人員的尊重,而不是相反。如果OP可以,我建議解僱提交不當行為代碼的實習生。
    我認為您是將一群成年人(OP擁有管理權限)與一群狼混為一談...
    kolsyra
    2017-07-13 17:57:23 UTC
    view on stackexchange narkive permalink

    我該怎麼做

    • 大聲笑(“是的,很有趣,但是請刪除它”)
    • 只是禮貌地要求刪除
    • 告訴我當某人浪費我的時間時我不喜歡,他們應該更加認真地檢查代碼

    了解他們為什麼這樣做這個?

    無論何時有人做了您不希望或期望他們做的事,您都可以對它做出反應,以使他們做您想要的事情,或者您可以嘗試了解為什麼他們會那樣做。

    了解原因可能很有用。如果他們天性好玩,但又不想對某些事情感到沮喪,這就是有人可以引導它的方式。我們都可以同意,這不是引導它的積極方法。

    另一種方法

    那麼什麼是 消除挫折感和嬉戲的積極方式?我曾在一些公司有時會花10%的時間來做項目的公司工作,例如為微控制器編程以使用dslr拍照。他們不僅有自由統治權,而且有責任將其轉變為可運輸的產品。從一天的黑客馬拉松到現在在公司網站上發布的代碼示例。人們可以以該示例為例,並將其變成可通過單擊按鈕打開的深海攝像機的遙控器。

    我的意思是,像這樣的惡作劇可能是 指示尚未開發的潛力。如果您想要符合公司標準的實習生,那麼這種潛力就不適合您了,在這種情況下,請考慮放手。但是,如果您看到將事情搖晃的價值,請讓這些惡作劇者創建一些有用的惡作劇。最終,這取決於您。 您希望這些實習生成為誰?

    T.E.D.
    2017-07-13 20:06:48 UTC
    view on stackexchange narkive permalink

    作為一名將近30年的專業人士,我想說最受好評的答案大多是對的。

    但是,作為近30年的專業軟件開發人員,我會說編碼準則幾乎總是過度說明。更糟糕的是,人們通常更關注其權威而不是產生可讀代碼,從而抓住了這一點。初級工程師通常會看到這種被動攻擊性行為。

    在代碼註釋甚至標識符命名中添加愚蠢的東西實際上是軟件開發人員的悠久歷史。這是我自己的初中時代(獲得48次投票)中由標準引起的抗議命名的示例。

    如果這裡有問題,則應該是您的環境中其源代碼存在合法的可讀性/可維護性問題。我並不是說這裡的最佳答案是錯誤的。他們不是。但是,當您從多位初級工程師那裡看到這種行為時,那麼在清理屍體之後,您應該真正調查金絲雀是否垂死的根本原因。最終目標必須是代碼質量。編碼指南應該只是它們的工具,可以幫助他們到達那裡,由開發人員為開發人員構建,而不是某種用於編寫程序的獨裁程序。

    讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/62235/discussion-between-lilienthal-and-t-e-d)。
    Zibbobz
    2017-07-15 01:41:27 UTC
    view on stackexchange narkive permalink

    聽起來您有一個很好的例子,向他們展示了為什麼即使對於像這樣的小型項目,使用這種編碼約定也不適合。

    看到了。

    即使公司沒有直接使用他們的項目,它也應作為對他們技能的評估,並在一定程度上作為這些實習生的學習經驗,以尋求他們的進入你的公司。

    我不會對它們太苛刻-畢竟,這 只是對他們的試用-但我肯定會指出,將來,這種編碼做法可能會給他們帶來麻煩,尤其是如果他們的下一個老闆對他們的耐心不如您。

    wberry
    2017-07-12 07:31:19 UTC
    view on stackexchange narkive permalink

    首先我要秉承誠實的原則,告訴我實習生這樣做是因為他們真的看不到 convert 這樣的名字有任何問題。我敢打賭,諷刺的名字不是出於叛逆的願望,而是因為他們不知道如何提出一個更好的名字而感到沮喪,而只是一個 >更長的名稱。那是你告訴他們的 ,對吧?短暫的不好,長期的好。

    如果您希望這些人有所進步,您只需要在日常會議中討論確切原因 轉換較差的名稱,而 convertInchesToCentimeters 是更好的名稱。如果您有一個因名字選擇不當而導致問題的經驗的示例,那將對他們有幫助。這種“為什麼”將允許他們從現在開始選擇好名字-不管這些好名字是長還是短。

    也要讓他們知道可以向您或他們的同伴尋求幫助或諮詢他們之所以這樣做,是因為這不是每個人都必須獨自工作的考驗,這是一種協作。 (我希望這是真的!)也許這將使他們能夠提問和互相交談,及早解決挫敗感,而不是等待這樣的被動攻擊性內容出現在代碼審查中。

    只有這種行為繼續下去,我才有必要解釋,是的,這不是真正的應用程序,但是出於多種原因,應該認真對待本練習和样式準則:

    • 值得當我可以在“真實的”應用程序上工作時,我會花時間與您一起努力,所以也請盡力而為。
    • 本練習為您準備了一個認真而又實際的項目。您必須遵循的風格指南
    • 通過本練習,我們可以決定在實習結束後,您中的哪一個(如果有的話)將工作機會擴展到

    雖然沒有完全錯,但我認為此時指責他們不尊重他人等可能會使行為沈默,但也不會幫助他們理解他們為什麼需要更好的名字或舉止名字更好。如果您走這條路,您可能會發現它們只是帶有更長的惡名而迴避了您的鋼鐵般凝視。

    我也不擅長命名,但是OP中的名稱是我永遠不會選擇的名稱。這個答案是對實習生的最後一擊。他們正在上大學,大概有20多歲,他們非常了解自己在做什麼。
    +1表示他們很可能沒有掌握描述性名稱的概念,而只是理解“較長名稱”。但是,它們並沒有給他們帶來亮光。
    Ángel
    2017-07-13 05:40:21 UTC
    view on stackexchange narkive permalink

    首先,我認為這不是不好。他們在代碼中開了一個玩笑,他們可能沒有完全理解一個主題(名稱約定)。在代碼中放置一些內部笑話並不是什麼新鮮事。此外,他們可能會將代碼視為“內部工作表”。

    我也不同意他們在此浪費您的時間的觀點。如果他們只是為了重命名方法而提交,那麼是的,他們在浪費您的時間,應該拒絕更改。但是,如果他們需要一種新方法並選擇了一個較差的名稱,則審查的時間將與這兩個名稱都差不多。我不知道您是在審查提交前還是提交後,但是當有人想要批准代碼/合併後,他們正在做的事情實際上是在對自己不利,因為他們只是在添加往返次數以使代碼真正被接受。

    對於您錯誤地使用錯誤的名稱進行評分,而無需實際查看其內容也很瑣碎。該代碼。問題是您對這些名稱感到惱火。

    現在,在回答實際問題時,我建議提出他們在名稱約定方面存在一些問題,並請他們從中審查工作。上週,看看他們是否一直使用專有名稱,並考慮他們是否會在幾年內輕鬆理解它(如果他們是該項目的新手)。讓他們準備一份關於他們在該周中添加的功能的簡短報告,並很快對其進行證明。

    理想情況下,每個功能大約需要一行代碼,例如。

    convertGalToml :將加侖轉換為毫升。為了避免與兆升混淆,不使用Camel case縮寫(毫升)來避免混淆。將 convertGalToml 重命名為 convertGal2ml

    我懷疑您的小丑會說出重點並默默地對其進行重命名。

    重點是,函數名稱是文檔。儘管比例如,它是更多的技術讀者。在用戶手冊中,他們應該習慣於在同行面前證明自己的選擇。

    sandun dhammika
    2017-07-15 20:01:55 UTC
    view on stackexchange narkive permalink

    您不是他們的經理,甚至與您面試也沒關係。您是像我這樣的工程師,

    所以您知道該怎麼做,與您的經理交談,然後提出建議代碼審查。然後建議他們不要通過諸如代碼協作者之類的系統編寫類似的代碼。您甚至不需要給他們發送電子郵件或與他們互動或親自處理這些東西。介紹基於該代碼審查的評分系統。不要試圖控制他們或成為他們的經理,也不要嘗試人員管理。這不關您的事。

    與您的經理交談,並保留對自己進行審核後拒絕或批准提交的特權。假設每個實習生都有10分,並且他/她應該通過您的評分獲得100分,如果他們真的想加入您的團隊,他們會被激勵得分。不要失去任何積分。

    如果我是一名實習生,並且在您的陪伴下工作,而您只是一名高級工程師,那麼即使您討厭我進行人事管理,我也非常討厭。這不是你的工作。

    在我看來,您走得太遠了,它已經失控了。作為工程師學習該課程。您是工程師,而不是管理人員的經理。

    代碼審查不是人管理。不要混淆兩者。
    不,我從沒打算讓人們通過代碼審查來進行管理。在OP的問題中,他提到他正在幫助實習生並參與代碼審查。因此,這與人員管理無關。這不是進行代碼審查的正確方法。我強烈認為,關於如何進行適當的代碼審查的問題也不在這裡。
    代碼審查不是人員管理。不要混淆兩者。這是我的意思。那麼為什麼要投票呢?
    您是說OP不應管理任何人,但同時又要他告訴他建立一個遊戲化的績效評估系統。但是我猜想,您不贊成投票的最大原因是關於技術簡介無法管理或不應該管理的可疑建議。
    這是一個正確的建議,人力資源經理應在必要時進行人員管理。
    R.. GitHub STOP HELPING ICE
    2017-07-15 06:10:02 UTC
    view on stackexchange narkive permalink

    儘管實習生的行為可能不專業,但管理人員不認為他們可能是錯的也是不專業的。顯然,在許多情況下, convert 可能不夠明確,但是對於標識符名稱而言, convertGallonsToMilliliters 太長了。您應該挑戰實習生,以證明他們選擇的名字確實含糊不清(他們無法做到),而不是一味地強加任何冗長的命名冗長要求,並提出合理的建議以提高程序的可讀性而不是阻礙

    在我看來,這確實是一種常見模式的案例:“為什麼我的下屬不尊重我?”真的是“我的態度如何使人們不尊重我的立場?”

    命名約定非常主觀。與其說“ OP,您錯了”,不如說這樣的答案,您可能只想關注以下事實,即這是一個主觀的話題,並且可以從雙方的立場出發讓他們自己提出更好的建議(儘管其他答案已經對此進行了介紹)。但是,任何人都在猜測OP是否真的能夠說服他們遵守公司標準(最終,任何給定的員工如果與公司標準相衝突,都應該能夠忽略他們的個人風格偏好)。
    命名約定應遵循現有項目中的規則。
    我認為`convertGallonsToMilliliters`沒錯。如果它是通用轉換例程,我*也*不會發現`convert`有什麼問題。我*確實*看到例如很多錯誤cvtGtoM,cvtGals2Millis和其他各種縮寫名稱。我喜歡很好的長名稱,這些長名稱說明了例程的功能-因為我從痛苦的經歷中知道開發僅發生一次,但是維護會永遠持續下去,並且您維護的代碼可能是您自己的。:-)


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