題:
被解僱是因為您的技能遠遠超出您的同事
Mik378
2016-11-18 20:19:22 UTC
view on stackexchange narkive permalink

我已經在一家大型法國公司工作了五個月,這家公司生產出色的東西,具有趨勢方法的好產品。

我剛剛從內部同事(技術專家)那裡了解到,放手,因為在編程知識/實踐方面,我和其他開發人員之間的差距太大。

他向我展示了團隊經理經常問他:

“ Mik的代碼是否易於閱讀和理解?”

他回答:

”是的,但是應該有一個很好的理解水平

團隊經理回應:

“但是他假裝真的很好嗎?”

他回答:

“是的,是的,我曾經讀過他的代碼,在家學習TypeScript / Node.js。”

團隊經理回應:

”“但是,如果團隊不理解他的代碼,這是一個真正的問題……即使喝茶, m的知識較少。我們不能長期依靠他。”

我很沮喪。

我對此感到懷疑,但我發現了這個

這是我第三次遇到這種情況;當您生成非常好的代碼時,卻無緣無故被開除。

這不是在開玩笑,我無法忍受這是第四次發生,並且在精神上影響著我。

將來如何避免這種情況?

自大不是我的本性。我想分享我的知識。

更新

很多答案都涉及我應該為團隊而不是僅為我工作的事實。

我只是指出我不希望與團隊合作。

在我的合同中,我必須獨自工作,以便按照自己的編程原則單獨構建完整的軟件。

我被招募是因為該團隊在苛刻的領域根本沒有技能。

該團隊只是一天內(出於好奇)只花了不到5分鐘的時間查看代碼,然後直接與我的經理進行了交談。

5分鐘,實際上,經過4分鐘,大約有10,000行代碼

是的,這兩家公司是相似的,因為我被期望降低技能水平以適應我的團隊,而我絕對不想要。我喜歡IT領域,因為它對大腦具有挑戰性。我需要挑戰。

三倍足以證明我,與那些挑戰自我的熱情員工相比,那些期望挑戰自我的普通員工感覺要好得多。我只是注意到他們的工作方式並不成功,所以為什麼要改變主意以適應他們的想法,以免失敗。那些不是IT生存的主要原因的典型大公司不適合我。

評論不作進一步討論;此對話已[移至聊天狀態](http://chat.stackexchange.com/rooms/48767/discussion-on-question-by-mik378-fired-因為您的技能-太遠了-您)。
將評論移至聊天后,*另外發布了33條評論*。這些內容無法自動添加到聊天室中,並且這些註釋中的廣泛討論肯定不屬於此處,因此現在消失了。如果您想討論此帖子,請使用聊天室。評論只是要求澄清或建議對該帖子進行改進,而不是聊天。
關於更新,您說這已經發生過多次了。但是你也說你被招募是因為團隊沒有這個領域的技能。那是其他時候發生的嗎?還是只有最近的?
您可以張貼20到30行嗎?編程語言是什麼?
嗨,@RobertHarvey,與Stack Overflow不同,在Workplace SE上,註釋很容易導致討論和來回擴展,我們希望在Q&A網站上不鼓勵這樣做。為了平息廣泛的討論,我們通常將其移至聊天並鼓勵人們發布任何有價值的內容作為答案。將材料發佈為答案後,可以對其進行投票,從搜索引擎進行搜索並根據投票進行排名。有關更多詳細信息,請參閱Robert Cartaino的文章[什麼“註釋”不是...”(http://meta.workplace.stackexchange.com/q/72/98)。希望這可以幫助。
標記您正在*工作*的國家/地區可能會很有用。您注意到您正在為一家法國公司工作,但是您*在*法國還是在國外工作?
您為什麼不在促進尖端技術的環境中工作?例如,學術界可能會使用正在嘗試新的前沿技術和實踐的人,但是在商業環境中,這通常是有害的,因此您會被解僱。
-1
您需要找到這個人:http://workplace.stackexchange.com/questions/22559/how-to-deal-with-a-manager-who-believes-the-more-difficult-solution-is-always-th
可能重複[當簡歷受到智商歧視時我該如何處理聘用預訂?](http://workplace.stackexchange.com/questions/13593/how-do-i-deal-with-hiring-reservations-when簡歷受iq區分影響)
問題的答案有很多假設,這有點可笑。Cort有一個很好的答案,可以從經理的角度解釋事情。但是我懷疑您需要尋找另一種業務來工作。我曾為組織內部的“企業”開發人員工作,也曾為產品製造公司工作,而這些公司的實際工作是“工程”。在這兩種公司中工作的開發人員類型之間似乎存在*大量*的技能差距,我懷疑您在後者中會做得更好。
您有任何更新嗎?
23 答案:
Lilienthal
2016-11-18 20:56:28 UTC
view on stackexchange narkive permalink

我不願意破滅你的泡沫,但是如果這是第三次發生,那幾乎可以排除“不是你,而是他們”。您的頭銜說您因“不可或缺”而被解僱,但除了那是矛盾之詞外,這也沒有發生。您因編寫同事無法理解的代碼而被解僱,這對於程序員而言是一個關鍵的性能問題。

好的代碼是可讀代碼,也就是說,即使對於新手來說,它們也是易於理解的代碼, 。如今,您很少需要由真正的專家編寫和維護的複雜且緊密編寫的代碼,這種情況非常罕見,而且顯然您沒有為這些類型的公司工作。您所描述的聽起來更像是“花哨的”代碼,通常過於復雜,充滿深奧的編程技巧,需要花費很多時間才能弄清楚和調試。對於受過經典訓練的人來說,這是一個普遍的失敗,一旦進入生產環境,他們通常會被粗魯地喚醒。

好的代碼是可讀的代碼,但是當差距太大時就不是。例如,他們不知道繼承和組合有什麼區別。您無法在數週/數月的時間內解決這種深層次的知識匱乏,它們僅在代碼中很多地方都用DELL破壞了,否則只會在其他情況下使用。
@Mik378是的,但是我的回答基於這樣一個事實,即您之前已經發生過兩次,這使得您的編碼風格根本沒有任何問題,即使最近的這種解雇主要是由於不稱職同事。這也是您問題中唯一可以得到真正回答的方面,因為我們無法真正確定您是否只是在向錯誤的公司提出申請。
@Mik378,所有支持的答案都圍繞同一主題。正如我更有效地說的那樣,這類似於我的回答,甚至更好。您必須問自己做錯了什麼。大多數評論都指向同一件事,尤其是那些被讚成的評論。
@Mik378:您是否考慮過培訓同事?如果您指導他們(例如,通過代碼審查),那麼它們不僅可以快速發展,而且最重要的是,您的代碼不再對他們感到陌生。
是的,我花了很多時間解釋概念,與他們一起練習代碼Kata等,在自己的代碼中幫助他們,同時詳細說明了實現解決方案的每個步驟。
@Mik378:編譯器不是您的聽眾,而是您的隊友。如果您無法根據聽眾調整自己的作品,那麼您就無法交流。這已經發生了不止一次,似乎表明您沒有能力給聽眾寫信。
“因不可或缺而被解僱”當然不是矛盾的。溫伯格的經典著作《計算機編程心理學》(1972年出版!)已經提出了極好的管理建議,“如果團隊中必不可少的人,那麼您的首要任務就是盡快消除它們”。當然,*有時*將他們重新部署到公司中的其他位置是一個很好的方法-只要您不只是給另一個團隊負責人同樣的問題即可。
-1
``即使對於新手來說,好的代碼也很容易理解...''-事實並非如此。實際上,這是荒謬的,使此答案大大貶值。對於該領域沒有任何背景知識的新手來說,一篇寫得很好的有關量子統計力學的論文將是無聊的。描述複雜系統的代碼也是如此。我不確定通過假裝這是不正確的來達到什麼目的(可惜最近似乎是一個普遍的誤解)。
最重要的是,作為從事IT工作已有25年之久的人,平均團隊技能水平下降了。在某些公司達到同等水平的公司中-15年前的高級開發人員將被開除為見習生。這個問題很可能是一個文化問題。
@KonradRudolph您是否已閱讀其餘答案?我在第二段中提到了這些類型的環境。不管喜歡與否,這種編程在當今已經非常罕見了,並且從OP的描述中可以很明顯地看出,這不是他所期望的工作類型。儘管這裡不是進行技術討論的地方,但我還要指出,完全有可能為易於理解和閱讀的複雜系統創建模型。
最好這樣說:“編寫好的代碼是為了……讓同事(在公司中,您從事的領域)易於理解。”無論您的同事是否是專家,這都應該是正確的,因為您將以團隊形式維護該代碼。
@Mik378繼承和組成是兩個非常相似的概念,開發人員是否真的有必要知道區別以便滿足業務需求?如果僱用知道這一點的開發人員要花費10%以上的費用,那麼與編寫濫用語言功能但滿足業務目的的軟件相比,企業是否會從投資中獲得回報?
@thelem真的嗎?我要說的是,從長遠來看,不了解這些基本概念會導致更多問題。我們不是在談論某些深奧的語言功能,而是要在任何開發人員(至少是面向OO語言的開發人員)所學知識中包含的基本概念。
懂得基本原理的人都可以閱讀良好的代碼。聽起來他可能正在嘗試為只知道過程代碼的恐龍編寫適當的面向對象的代碼。如果這不是根本的事情,那麼他可能變得太可愛了。
@Mik378,“您不能與如此深厚的知識作鬥爭”-是的,您不能。找到更好的工作或創辦自己的公司。
真相就在對利連塔爾和康拉德的評論“極端”解釋的中間。我與許多人一起工作過,他們認為他們是優秀的開發人員,有寫複雜軟件的訣竅。畢竟,問題很複雜。這些人從來沒有給我留下深刻的印象。最令人印象深刻的開發人員是使復雜,簡單的開發人員。我懷疑OP屬於第一組,而不是第二組。IMO盲目地遵循當前的最佳實踐“軟件原理”幾乎總是會導致創建複雜的代碼。也許,這是OP的問題。
“繼承和組成是兩個相當相似的概念,開發人員是否真的必須了解差異才能滿足業務需求?如果僱用知道這一點的開發人員要花費10%以上的費用……– thelem如此基礎的知識,不知道差異的程序員將擁有可怕的生產力。由於不知道自己在做什麼,僱用該程序員的成本很容易超過10%。
@KonradRudolph兩個詞為您“費曼演講”。
@Aron您是否真的只是將介紹性論述與研究論文混為一談了?
@KonradRudolph:好的代碼盡可能容易理解。我舉一個例子:我在有關線性代數的教科書中閱讀了線性編程的描述,但一無所知。我從一開始就讀過Dantzig的書,他設法用一種絕對顯而易見的方式描述了一切。喬治·丹齊格(George Dantzig)=英雄。未知教科書作者=零。解決一個複雜的問題並將其安排好,這樣您就可以得到一個簡單而又顯而易見的解決方案,這就是優秀的程序員的原因。
內在困難的軟件問題極為罕見。簡單但龐大的軟件問題並不少見。您可以通過編寫_simple_的代碼來解決它們。
@industry7也可能是程序員知道如何應用該概念,但不熟悉特定術語的情況。
Cort Ammon
2016-11-19 02:26:16 UTC
view on stackexchange narkive permalink

這不是在開玩笑,我不能忍受這是第四次發生,它在精神上影響著我。

這一行很重要,因為它表明您感到現在該改變了。它表明您將其識別為一種模式,並且希望該模式停止。這種願望可能是解決方案中最重要的部分。解決這類問題通常涉及改變您自己的思維方式。某人無法為您做到這一點,因此您對變更的渴望將是使變更發生的一件事。

在某些背景下,我一直都在“太擅長為我的代碼編碼工作”之前的情況,儘管從未達到您描述的程度。我可以使用C ++中的模板元編程來治愈癌症,但是與我一起工作的許多人都不熟悉面向對象設計的基礎知識。我編寫的代碼濫用了 SFINAE,並完全違反了C ++規範的措辭,當時我從事的許多項目仍在使用過時且錯誤的gcc版本。我的方法只是向他們展示這些工具的驚人之處以及它可以解決的所有問題。我喜歡向人們解釋一些編程技巧,他們對此非常滿意。

聽起來很熟悉嗎?

“是的,但是應該有一個很好的水平來理解[ Mik的代碼],因為組件可以智能地分離。“

請從基於風險的角度考慮此聲明。無論如何,老闆都需要繼續前進。如果您要去追求一些很棒的工作機會,您的老闆仍然必須確保代碼得到維護。您的同事剛才說的是,如果必須替換您,他們 會找到一個非常熟練的編碼器,因為任何不好的人都無法維護它。這是一個風險。如果他們找不到足夠好的開發商,或者負擔不起他們足夠的薪水,怎麼辦?

您可能已經製作了所謂的“好代碼”,但“好代碼”的定義非常取決於上下文。谷歌的“好的代碼”,以其先進的思維方式,對於在FAA工作的人來說可能是非常糟糕的代碼,他們主要關注可靠性而不是緊跟前沿技術。老闆對“好的代碼”的定義包括在各種情況下都可以維護它的能力,包括在沒有您的情況下。如果您的同事不習慣維護您的代碼,那麼您突然對公司負有責任,因為如果您決定去其他地方,則生產的產品是他們無法維護的。

來自從這個角度來看,可能有人爭辯說您是在強迫他們接受您對“好的代碼”的定義。本能地看似好事,但卻充滿困難,例如您可能從未想過的基於風險的思維方式。

我們有一個短語,“把馬車前。”與之相關的眾多含義之一就是將您最關心的內容(能夠使用您的先進技術)置於應該推動其前進的力量(您的同事對這些技術的理解)上。您已經以這種高級樣式編寫了代碼,然後鼓勵其他開發人員“趕上”這種樣式。這可能是有效的,但是如果您在“趕上”之前發生任何事情,則該公司突然面臨風險,因為沒有人可以維護該代碼。

將來如何避免這種情況?

解決此問題可能非常困難,因為它涉及到的解決問題的方式與通常情況下不一樣。與其首先以這種高級風格編寫代碼,然後教同事如何思考,不如將其改寫。教您的同事喜歡這種編碼風格,然後開始以這種風格編寫代碼。它可能看起來是倒退的,但更加穩定。從老闆的角度來看,團隊學習更好的編碼幾乎沒有風險。一旦他們編寫了更好的代碼,您想要開發的樣式就會突然冒著更少的風險。 。您的代碼不是這裡的唯一產品。您的其他產品正在幫助教其他開發人員,其價值很容易超過編寫“完美代碼”的價值。

當然,很難說出何時安全地編寫代碼您想要編寫的樣式。如果說起來容易,那麼您現在肯定已經知道了!您可以使用的一種強大技術是讓其他人使用高級編碼樣式,而不是自己使用。教別人繼承與構築之間的區別是一回事。足夠好地教會他們是完全不同的事情,以至於他們主張更改現有代碼庫以使其在使用時更加清晰。後一種情況確實讓您知道,他們不僅獲得了概念,而且真正接受了它。讓學生髮現一些東西,然後將他們指向可以發現的方向。也許其中之一發現了關於繼承的巧妙內容,您可以根據他們發現的內容將其指向“訪客”設計模式。不要只給他們訪客,而要給他們方向感,以便他們可以出去尋找訪客自己。

這是一個困難得多的方法,您當然希望在該方法和您當前的方法之間找到一個快樂的中介,但這可能會非常有益。更重要的是,它可以為公司提供價值而無風險。如果您正在為公司提供價值,而不會使公司面臨風險,那麼您將永遠下崗。而且在少數情況下您仍然會被解僱,管理層會為此提供理由(例如經濟低迷或公司方向轉變)。如果做得很好,您會發現管理層反而會開始塑造您的道路,就像塑造您的同事一樣,您會發現一種好奇的趨勢,使您學會了 just 他們最需要的技能 just

我非常喜歡閱讀您的答案。一方面,我花了很多時間從世界各地真正熟練的人那裡讀取代碼。我的願望是不斷嘗試使他們看起來“像”,每天改善自己,掌握快速實踐的觀念。很難停止這種持續不斷的競賽,以尋找“完美的編碼方式”(同時保持實用主義),同時回歸以適應沒有激情的(完全)同事。我有一個很大的野心。
@Mik378我一生中從未見過有人需要進行代碼審查。看起來代碼審查不僅僅與批准有關(實際上,它不應該與批准有關)。這是一個機會,讓人們看到人們閱讀您的代碼並進行討論。這是成為一名社交程序員的一部分。如果您想在編程上走得更遠,請不要僅僅編程。和這些傢伙坐下來一起編碼。這就是所謂的配對。您可能還會發現從他們那裡學到了一些東西。
誰說我從不密集編程?不是我
-1
你的句子沒有一個字嗎?
因此,您的聯繫人說您必須獨自工作,但是您正在進行大量的配對編程?
@Mik378從來沒有這樣的經驗,但是我同意這個答案,因為:您無法控制經理的觀點。您只能擁有等式的一半。(即使管理錯誤,這仍然適用。)證明您是團隊合作者(對於管理人員而言)顯然是個勝利。這可能意味著在短期到中期,申請具有單獨開發項目的工作(結合您的地理位置,技能和技能水平等)對您來說太冒險了。
有沒有人發現我的同事無法閱讀代碼的假設?我的同事欺騙經理關於他們的虛擬技巧嗎?相信我,如果我能寫出世界上可讀性最好的代碼,我自己的母親仍然無法閱讀,因為她從未學會過如何閱讀代碼。這些同事缺乏編程方面的大量知識。例如,Java中的HashMap,他們嚴格不知道它的用途……(他們有6年的“經驗”)。我不想為這個現實而戰。
@Mik378:這是完全可能的。有一些“經驗豐富”的開發人員團隊,他們的技能非常狹窄,不願自我推崇,對於那些想要更多東西的人來說,他們是很難工作的地方。您可能正在經歷其中的一些。但是您仍然可以學習如何與這類開發人員合作,甚至可以從中受益。如果感到沮喪,請從這些答案中找到一兩個有用的指針,這樣您就可以繼續工作,直到**您準備好繼續從事純技術意義上的更具挑戰性的工作。
我要補充一點,那裡也有一些商店,他們希望代碼猴子盡可能地便宜。我是第一個也是最後一個以市場價受聘的人之一。其他大多數人都被招募為實習生,然後在大學畢業後全職僱用。如果這是商店的目標,要擁有盡可能便宜的開發人員,您不能指望他們理解高級代碼。我只是想教給他們更好的可維護性實踐,並希望他們有學習的慾望。
@Mik378-如果這不是“第四次”發生,那麼您的假設是您的同事無法閱讀代碼,這將使我們陷入困境。老實說(我是作為開發團隊的一名工作經理這樣說的),您在這裡的評論和回應都表達了一種態度:“我是開發人員中的上帝。我編寫了很棒的尖端代碼。沒有人理解它,因為它們很愚蠢和/或懶惰。”這就是我在閱讀您的問題以及您對後續答案/評論的10分鐘之內想到的事情。
@Mik378如果您的代碼很複雜,並且您是公司中只有_熟練_的程序員,我強烈建議您找一份工作,找其他比您更聰明/更熟練的程序員。然後,您可以向他們學習(您說自己喜歡改進),他們可以理解您的複雜代碼。
@JohnP我從Mik在工作場所堆棧交換上發表的早期帖子中認出了Mik的名字。您的假設可能是正確的,例如*“我應該如何說服負責人(非程序員),最終要擁有一個真正好的軟件,這需要我嘗試施加的所有方法以及優秀的開發人員(我不敢透露對他們來說,我對其他開發人員技能欠佳的想法)?“ *
@JohnP您說得對。警告標誌非常明顯。但是,由於我沒有看過他的代碼也沒有見過他的同事,所以我傾向於採用在所有情況下都有效的解決方案。如果他確實如他所說的那樣出色,那麼這種方法將有助於他帶領公司前進。如果您的直覺是正確的,那麼這種方法將幫助他遵循。兩者都是通過傾聽並試圖理解同事的願望來實現的。因此,無論任何人對他的技能(包括他自己,你的和我的)的看法如何,我們都能找到一條前進的道路。
“ [他們必須替換您,他們需要找到一個非常熟練的編碼器,因為任何不好的人都無法維護它。”那不是它的工作原理。由熟練的編碼人員編寫的代碼對於熟練的和不熟練的編碼人員而言都更容易維護。由非熟練編碼員編寫的代碼對於熟練和非熟練編碼員而言都更難維護。
@Mik378您在這裡的回答非常好,所以我不想創建新的答案。我將添加到它。我曾在捷克共和國最大的社交網絡之一工作,我們還有一個開發人員,其水平比我們其他人更高。他使用自己的技術(mono,c)編寫了大多數後端,而沒有諮詢管理人員。當他離開時(沒有任何邏輯上的原因),事情陷入了困境,因為我們無法弄清平台的構建方式。現在我認為您也正在這樣做。您應該始終與至少1位開發人員合作,他們可以接手工作。
我想我上了這節課:)謝謝您的意見@Marakoss
@TheMerryMisanthrope:有“熟練”編碼器和“聰明”編碼器。我記得曾經看過一個由“聰明”編碼器編寫的C ++代碼,只是說“ WTF就是這個”,然後將它展示給另一位熟練的編碼器,後者看著它並說出了我剛才所說的內容。作為高技能的人,我們每個人都可以輕鬆解決完全相同的問題,而無需做任何使人難以理解的“聰明”的事情。
確實是@gnasher729。聰明很少真正地熟練。
Old_Lamplighter
2016-11-18 20:54:26 UTC
view on stackexchange narkive permalink

總是有原因的。

以前的雇主是和我的一個同事一起做的。他的技術水平遠遠超出了我們的水平。所以,他被放開了。

這為什麼有意義?

  1. 他是唯一可以維護其代碼的人
  2. 他不合作
  3. 他不遵守商店標準
  4. 雖然他提供了超出需求的東西,但這不是一件好事
  5. 簡單,需要解決方案而不是複雜的解決方案。
  6. ol>

    經常被說到幾乎是這是陳詞濫調,但您必須適合團隊。

    編碼只是等式的一部分。您必須要風度翩翩,善於溝通,謙虛,需要時保持自大,遵守商店標準,與同事相處,平易近人並在需要時迅速提供幫助。

    所有這些軟技能很重要,擁有它們會給您帶來麻煩。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/48768/discussion-on-answer-by-richard-u-fired-因為您的技能-太遠了-以上)。
gazzz0x2z
2016-11-18 20:41:17 UTC
view on stackexchange narkive permalink

即使對於糟糕的工程師,好的代碼也易於理解。我經常收到的一個建議是:“程序就像維護您代碼的人是普通的程序員一樣,並且是一個知道您的住所的危險心理變態者。”

這是事實。太聰明的編程是不好的,因為在您不知道代碼的情況下維護時間更長。在維護中,經常到處都是大火,成千上萬的客戶受阻,而且更聰明,更有效的解決方案很可能會使維護人員的工作時間比充滿重複的無聊腳本式代碼更長。

當然,完全啞的代碼也是不好的。在愚蠢和天才之間可以找到一個很好的平衡:有效且仍然可讀。它更是一門藝術,而不是一門科學。這就是為什麼通常不建議使用諸如多重繼承之類的聰明概念的原因。。即使它們搖擺不定。

您也必須考慮上下文。如果您在一家只僱用最優秀人才的小型邊緣公司工作,您可能會負擔得起一些奇特的,出色的工作。如果您在一家僅依賴錯誤,隨機質量的顧問的法國銀行工作(有時他們很幸運,有時卻不幸運),並且每個顧問都有數百萬個LOC的領域可以維護,那麼就一定要使其足夠簡單平庸的人一見鍾情。沒有指針,沒有多重繼承,沒有聰明的技巧,等等。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/48769/discussion-on-answer-by-gazzz0x2z-fired-cause-your-skills-are-to-far-far-above-喲)。
“即使是糟糕的工程師,好的代碼也易於理解。”我認為工作場所不是談論軟件工程的好地方。我一直看到這樣的幼稚評論,但這還不是全部。這是一個模糊的概括,聽起來像是TED演講之類的東西,但在現實生活中沒有任何用。
@Cypher:上下文是“法國大公司”。我碰巧知道那些。這些公司的大多數工作都已完成,但顧問的質量很差。這就是可讀性如此重要的原因。無論您在這種情況下做什麼,下一個無能為力的傢伙都必須能夠理解,而這個笨拙的傢伙將在不超過3年的時間內就位。 其他上下文可能具有其他規則。我說的是OP的上下文。(是的,法國大型公司的IT平均而言非常糟糕-他們從不聘用和始終聘用顧問的做法是災難性的-但這是事實)。
Peter
2016-11-18 20:47:02 UTC
view on stackexchange narkive permalink

您不太可能因為自己太優秀而被解僱。我想那隻是一個藉口。

很有可能是行為問題,或者老闆只是不喜歡你,原因是他沒有為訴訟打下基礎就無法告訴你。您可能也是最昂貴的,他們相信FTE(即每個工人都一樣)。 >

您是否閱讀了我在OP中鏈接的文章?對於某些經理來說,這似乎是一種“習慣”。
就像我上面說的,我計劃每個會議大約2個小時的8次會議,教他們一些良好的代碼實踐。沒有效果。
@Mik378在2小時的講座時段內進行輔導和教學是非常不同的事情。關於這篇文章,這實際上是一個崇拜貨物的例子-有很好的理由解僱一個使自己不可或缺的人,但這與解僱一個技術水平較高的人非常不同
什麼是“ FTE”?“全職員工”在那句話中沒有任何意義。
@EsotericScreenName代表全職僱員,但該術語用於描述工作量(或有時是工資)。如果使用它,則假定每個工人都相同。在軟件開發中,這種假設通常是垃圾。
@Peter我相信在您使用它的上下文中,它是“全時*等效*”-也就是說,如果您有一個只在星期一和星期二工作的人,而另一個只在星期三和星期五工作的人,他們一起賺了1 FTE。但是,這是一個糟糕的組織,期望兩個這樣的開發人員獲得與一個專職開發人員相同的性能,這就是您要提出的重點。
Cronax
2016-11-18 21:43:06 UTC
view on stackexchange narkive permalink

解僱必不可少的人實際上是合理的管理策略。當您的公司依靠一個人繼續工作,而公司中沒有其他人擁有知識和/或能力時,這將產生巨大的責任:如果該人被公共汽車撞死而死亡(因此,術語“公共汽車”因素”)還是選擇離開公司接受新挑戰?現在,您的公司陷入了“嚴重”困境,因為沒人能立即替換必不可少的員工,而且您無法控制時間!

為避免這種情況,公司有兩種選擇。他們可以嘗試傳播必不可少的人的知識和/或提高不可或缺的同事的能力,或者他們可以在他們的時間解僱不可或缺的人,一次性撤消創可貼。 >為這些員工做好準備,從他們的損失中選擇並從他們的損失中恢復過來。

作為一名員工,您應該始終預防成為必不可少的。與您的同事分享您的知識,並確保當您不在時,有人可以勝任您的工作。確保您的實踐適合您公司平均水平的工人。如果您認為平均水平太低,請與管理層一起嘗試提高該水平。確保您創建的所有內容都記錄在案,並且該文檔的標準足夠高,以使您的任何同事都可以使用它來繼續您的工作。

有意義的答案
+1故意在您的同事之上表現的部落知識只會帶來麻煩。“別無選擇,如果不能被替換,就不能被提升”
不,解僱某個不可或缺的人不是一個好策略。真?您會因為員工做得太好而甩掉他/她嗎?促進或應對其他挑戰,從而使其他人有機會填補空白並減輕對個人的依賴(這就是本文所指),這是一個很好的策略。相反,真正的問題是,因為某人似乎不可或缺而將其開除。
在評論中也提到了這一點,我不得不質疑認為這是合理管理的人們的理智。到底有什麼可能使您認為這是個“擺脫困境”並砍掉對公司目標至關重要的人的好計劃?幾乎可以肯定,他們是優秀而有價值的員工。撇開“控制時間”是一種愚蠢的想法,更不用說要權衡取捨了,您將向其他員工發送什麼樣的信息?
是的,您應該努力防止低總線係數。是的,您應該確保已經成長的人分享他們的知識和技能。您的建議類似於切斷手臂,因為手上的划痕可能會被感染。
如果有“必不可少的編碼員”,則解僱經理。沒有人會因為高素質成為不可或缺的人才而解僱高素質的工人。
-1
John Feltz
2016-11-18 20:30:25 UTC
view on stackexchange narkive permalink

如果這三種情況中唯一的共同點是您,那麼您需要考慮自己正在做的事情是一個問題。

您是否曾與您的前同事交談並請他們批評你嗎?不是您的代碼,而是您在辦公室的行為。與同事溝通的方式,與老闆溝通的方式,記錄的方式,在會議中的舉止等等。

您是否已將自己置於主管的位置?真正考慮過他們要做的事情,他們的職責是什麼,什麼使他們在關閉辦公室燈回家後感覺良好?有很多例子,有人從其他軟件工程師的角度寫出了驚人的代碼,但該公司倒閉了。

確實,我經常建議一些策略,禮貌地批評現有的不良策略。也許他們將其解釋為“傲慢”或“授課者”。但是批評是我作為工程師的一部分工作。
層次結構並不總是希望聽到這些批評。您說“我們應該用X代替Y”;老闆聽到的是“您很愚蠢,因為您過去決定做Y。如果我當時在這裡,我們會選擇X”。不管它多麼有禮貌。
批評殺死人際關係。期。
缺乏“建設性”批評會殺死公司。
SteveJ
2016-11-19 00:12:04 UTC
view on stackexchange narkive permalink

人們經常因為不可或缺而被解僱(為什麼被解僱);這是一個荒謬的主張。您所引用的文章清楚地表明,“解僱”並不一定意味著放開它們,而是使它們不是必不可少的(通過移動它們,迫使它們不參與特定項目等)。

雖然資歷過高有時不會讓您被錄用-但也很少會讓您被解僱。好的員工很難找到。沒有一家合理的公司會因為它們太好而放棄它(除非您只是為一個白痴工作-然後他們會幫您一個忙)。

人們之所以會被解僱,是因為他們認為自己比同齡人不可或缺,並且比同齡人更好,因此他們拒絕為鏡中人做出改變,以使其在團隊中發揮良好的作用。 (為態度惡劣而開除

如果您與一群當地人建起一座橋,並在其餘人綁繩子時拿出一台筆記本電腦,那麼您可能會更聰明或更受教育但是您已經成為對團隊的不利因素,而問題是您。

如果您真的像自己一樣出色,那麼您將足夠聰明,可以調整自己的行動以盡可能提高生產力,而不是教條地推動自己的議程(這很可能是在做)。如果您這樣做的話,您可能會從事很長時間的工作。

作為經常參與招聘過程的人,我將每天挑選一位優秀且風度翩翩的人,而不是一位出色且有潛在癌症的人。

Brad Thomas
2016-11-19 12:54:55 UTC
view on stackexchange narkive permalink

我查看了您的個人資料,上面寫著“您的代碼應比您的代碼乾淨”。同樣從您的評論中,您“花了很多時間解釋概念”,以及“批評是我作為工程師的工作的一部分”……我認為您熱衷於提供建議,而您的建議根本就不被您的讚賞

這可能是由於您所說的話或您所說的方式,可能是兩者兼而有之。

編寫高效且可維護的代碼不會導致你被解雇了。如果您不能與團隊相處,您將被解僱。這是您的問題,而不是(如您想像的那樣)您的代碼太好了。您的代碼可能真的很好-但很有可能這是人格衝突問題。

我對您的建議是,不要成為試圖ag狗的尾巴。保持低調,停止告訴別人如何編碼,遵循指示,與他人合作良好,編寫可維護的代碼。然後您就不會被解僱。

我也很感興趣地註意到您的經理在講這個話:

“但是他假裝真的很好嗎?”

這說明您您的經理不信任您,您的經理認為您是不真實的,並認為您自負和/或高度重視自己的能力比實際能力高。關係取決於信任才能生存。請注意,您的問題不是技術問題。您的問題與代碼質量幾乎沒有關係。您與同事和經理之間的聯繫方式有問題。

Patricia Shanahan
2016-11-18 20:51:33 UTC
view on stackexchange narkive permalink

每個程序都是兩個受眾的交流:一個使程序執行的編譯器或解釋器,以及一些閱讀和理解該程序的人。您可能與編譯器進行的交流非常好,但仍在編寫錯誤的代碼,因為涉及的其他人員無法輕易理解該代碼。

通常,編程團隊擁有一組語言,框架,技術等,這些語言,框架,技術等都是團隊中每個人都知道的。缺少其中一部分的新員工會很快吸收它們,因為團隊中的任何人都可以解釋它們。

使用超出規定範圍的內容會給雇主帶來成本。例如,假設您是該組中唯一一個熟悉框架X的程序員,而其他所有人都熟悉一個較舊的框架Y,該框架用於某些現有代碼並且幾乎與X一樣好。

使用框架X將是一個錯誤,除非它比Y更好,以至於管理層一致認為使用框架X可獲得的技術收益足以證明培訓工作可以使每個人都熟悉X。

可以使用的方法是,讓一些經驗最弱的人來審查您的代碼,這些人需要能夠閱讀它。看看他們有什麼要問的問題,並考慮如何重寫這些部分以使他們更清楚。您越是將無法理解代碼的錯誤視為缺陷,而不是讀者的缺陷,您得到的反饋就越好。

我認為您做得還不夠,我建議人們將程序視為一群恰好是機器可執行程序的編碼器之間的對話。機器執行代碼的能力僅次於維護代碼的能力-甚至您可以說可以修復多蟲的可維護代碼,而最終無法替換團隊無法理解/維護的“完美”代碼。請注意,不同的情況有不同的要求-twitter的原始體系結構是死胡同,但它使他們獲得了市場份額和完全重寫,成功的時間!
對我來說,這是我欣賞的獨特角度。我收到了有關“反射速度不是很慢”或“使用本機結構更理想”的反饋。對我來說,理想的答案是“讓我們組裝起來”,因為如果他們的批評確實是關於效率和性能的,那麼我們應該停止測量“鞋碼”,並把它寫得最接近金屬。
如今,對於大多數開發工作(大數據除外),針對性能的優化被高估了。可維護性和可讀性更為重要。
Ethan The Brave
2016-11-18 22:00:01 UTC
view on stackexchange narkive permalink

決定將我的評論升級為答案:

很好地記錄您的代碼。

正確的代碼文檔會變成初級開發人員沉迷的糟糕經驗他們的腦袋在無法理解的牆壁上花費了數小時才能獲得潛在的學習經驗。

記住,好的代碼應該是自我記錄的:)
具有有意義名稱的BDD /單元測試是有史以來最好的文檔。
@Mik378假設您的同事實際上要去做,閱讀單元測試並理解它們-從我收集的信息來看,情況並非如此。好的代碼是自記錄的,但是假定對所使用的約定有一定的了解。您應該總是問自己“我的同事會理解此代碼嗎?”。如果沒有,請對其進行評論,直到他們這樣做為止。切斷你的聲音,“好吧,如果……他們會的。”並沒有切斷它。您正在為當前的同事(現有的文檔)記錄它,而不是為某些具有理想行為和知識的假想同事記錄。
@Mik378:不要以為足夠。當然,您應該針對不需要註釋的代碼。並發表評論。對於不需要文檔的代碼。並無論如何記錄。這就是此類商店所需的可讀性級別。
自我記錄有其局限性。記錄模塊之間接口的規則非常重要。我曾經不得不遍歷大約7層調用層次,以找出是否允許使用null參數。
-1
最佳答案。廣泛的評論將解決大多數問題。寫評論作為敘述。想像一下坐在新員工旁邊,然後帶領該人員完成您的代碼。或想像一下,在宿醉和睡眠很少的情況下閱讀自己的代碼。在頂部給出總體概述,總結給定的問題和您的策略。在逐步涵蓋每個想法和每個步驟時,請使用對話語調。使用“我們”和“我們的”:“我們將袋熊按照AdèleMercier博士的定義歸類為生物學類別。”&“我們選擇了ArrayList而不是LinkedList,因為我們的集合被凍結了,沒有被修改。”
-1
@RichardU但是,我敢肯定,您看到的實際示例中,文檔的幫助沒有沒有文檔的幫助。;)
@Petertouché。我最近的一場噩夢就是一個很好的例子。我假設有4位業餘編碼員,每個人都看了一本編程書,或者至少讀過本書的封面,這種怪誕的現像在最近幾個月一直是我生存的禍根。
bobbym
2016-11-20 13:51:15 UTC
view on stackexchange narkive permalink

從您的代碼是否可讀或與您說的一樣好的角度來看,大多數答案都對您的帖子有幫助。但是這種情況可以而且確實發生在各行各業。我在拉斯維加斯大道上當了21位經銷商和地板工。我的技術和速度遠遠領先於其他人員,以至於被指派觀看我的人們無法跟上。換句話說,他們不能聽從我的決定。由於幾分鐘之內就完成了大筆交易,他們常常感到困惑,並向我的上級報告稱我犯錯了。我總是會向那個人證明自己的行為,但是對我的不信任態度會加深。

我的自我和我懷疑你的自我沒有看到警告的跡象,確實我陶醉於我的優越感,將其傾倒於此說話。我被解雇了,失去了一個非常不錯的薪水職位。

這一課很簡單,您必須將自己的水平降低到其他水平。如果他們每小時只拿出15隻手,而您拿出100只,那並不是在鼓舞人心。您鼓舞著嫉妒甚至仇恨。如果您的驕傲不能做到這一點,那麼您必須找到其他謀生手段,因為所有地方基本上都是一樣的。人是人,你不能改變他們。最終,我適應了其他同樣平庸的工作,因此沒有脫穎而出。希望您能解決這個問題。

極好的建議。我本人很難學。一個小警告。您不必總是愚蠢無事,但確實需要一個合適的人。
非常適合-我喜歡。我需要遵守規則。我認為規則已經到位,以便他們可以僱用平庸的人來觀看其他平庸的人。看起來像qwerty鍵盤最初是為防止人們為機器輸入太快而實施的。
您的經歷非常有趣。您沒有提到您在房屋削減方面的表現。您的收入是否高於平均水平?賭場是一家公司,任何決定都會受到收入指標的很大影響。
@bobbym,但規則已設置為讓medicore觀看平庸。聘用最好的人才要比僱傭超級人才更好,這要付出高昂的代價。
@ joojaa,足夠真實。但是,當一個比普通人更好的人錯誤地落入這樣的地方時,他們應該養育他而不是解僱他。我是一家賭場經紀人,從事最低工資工作。21歲的發牌人必須使用一組固定的規則進行遊戲。
@bobbym也許但務實地說,從業務角度來看,此技能並不一定更好。我們常常將技術技巧誤認為是更好的技巧,但是將這種技巧轉化為對企業有形的好處並不是很大。因此,從業務的角度來看,您並沒有變得更好。
@bobbym的最低工資或高薪工作?我覺得這些很少相等。無論如何,是的,這是二十一點的規則,但Cyberfonic的觀點仍然有效。如果平均而言,您的速度在一小時內使您比他們的“平庸僱員”損失更多的錢(或獲得更少的收入。賭場往往不經常損失錢,儘管對管理收入而言可能被視為損失了錢),那麼所有您出色的技術無濟於事。如果您出色的技術使您賺到了更多的錢,我會為他們解僱您感到驚訝。
我也對@Patrice:感到驚訝。當然,更多的工作可以為他們帶來更多的利潤,數學上的期望可以保證這一點。如果管理層能夠理解其中的任何一個,那麼他們就不會變得平庸。是的,最低工資是而且很低,但是我們提出的建議卻不是。
wberry
2016-11-21 06:54:41 UTC
view on stackexchange narkive permalink

我的理解是,從工作的第一天起,您就得到了 注定 。您說您被錄用是因為您擁有組織中其他人沒有的技能(TypeScript,Node)。現在,您已經很辛苦地獨自製作出一種優雅,專業,複雜的解決方案 ,沒有人知道您所做的一切,因此管理層將您視為責任。

如果所有這一切都是真的,那麼真的沒有其他辦法可以解決這個問題。

在我看來,問題是結構性的,而不是個人的,因此,責任在於情況和過程,而不是人員:

  • 該組織僱用了一個具有與其他人完全不同的技能的單個人,並且以這些技能的高級水平來執行關鍵功能。這樣可以保證,如果表現出色,那麼您將是唯一理解對組織的使命至關重要的代碼的人。 (期望高級資源生成對不懂所使用語言的人立即有意義的代碼是完全不合理的。)
  • 該組織沒有使您定期接受代碼審查過程。如果有,您的代碼將被拒絕,直到您使其符合可讀性標準。由於您是代碼的唯一貢獻者,擁有自己的風格,並使用不同的技術堆棧,因此實際上可以保證,隨著時間的流逝,代碼將變得越來越難以為他人所理解。防止這種情況的唯一方法是不斷要求他人進行代碼審查,這可能會導致人們浪費時間。缺乏代碼審查流程會導致失敗。

我的背景也有類似的經歷。我曾被錄用一次以填補技術空白。公司中沒有其他人具備他們突然需要的技能。我幹得很好,幾個月後衝突就開始了。我是唯一可以使用該應用程序某些組件的人。隨著工作量的堆積,我成了瓶頸,只有我才能做到。有一天,我決定在公司決定用全新的代碼替換我生產的所有內容的時候,我被淘汰。當時我的自尊心受到了傷害,但回想起來,這對公司而言是正確的決定。過了一會兒,我該繼續前進了,我做到了。

如果聽起來很熟悉,也許是時候繼續前進了。如果他們繼續重視您的技能,也許管理層甚至會將您重新分配給其他人員。或者,如果您可以忍受,也許可以幫助您重寫在企業標準技術堆棧中所做的一切。如果那不可能,那就走。無論哪種方式,您的代碼都可能正在進入垃圾箱。如果沒有其他人理解,那對他們來說可能是正確的事情。

請確保在您的下一份工作中,團隊中的其他人正在應用與您基本相同的技能,尤其是他們具有代碼審閱過程。當他們要求您以某些方式更改代碼時,請執行此操作。在代碼通過代碼審查之前,不要考慮交付代碼,您的同伴會告訴管理層(如果要求),是的,代碼是好的。那就沒有問題了。在技​​術面試中問諸如此類的問題是完全可以的。我做了很多次。希望其他研究您的代碼的開發人員可以為您提供良好的參考。

作為腳註,如果您對獨自工作的情況至少負有部分責任,而沒有其他團隊成員的支持,那麼您也應為此承擔至少部分責任。 (您是否曾在其他人想要使用其他東西時推動使用TypeScript / Node?即使使用更基本的東西也可以,但您是否使用了最新,最酷的庫或技術?我對此也感到內once。 )如果是,請確保從此結果中吸取教訓。但是,如果沒有的話,請抬起頭將這種體驗帶到下一個位置。

真是個答案!完全與現實保持同步,太棒了!
psr
2016-11-18 23:29:11 UTC
view on stackexchange narkive permalink

很多聰明人認為高技能的開發人員是不可替代的,這就是為什麼要做想要他們。但是您已經看到了問題的其他答案-大多數經理都不想處理技能水平差異很大的團隊的問題,也沒有選擇純粹的高技能的選擇。它們也不一定是錯誤的,問題是真實的,並且大大降低了高質量代碼所帶來的好處,這些好處超出了他們能夠僱用的大多數人的能力。

如果您的表現與您說的差不多,那麼您的工作就不匹配了。聽起來您應該在一個可以向同事學習並且同事可以理解您的代碼的地方努力工作。

如果您因此而失業,那麼對人力資源,招聘人員和管理人員來說將是相當糟糕的。希望您可以通過會見具有類似技能水平的開發人員來結交工作,他們可以保證問題確實出在您的技能水平過高。

最後,我要補充一點,您應該盡力誠實地評估您的技能水平是否真的很高。聽起來似乎有證據顯示,但大多數人認為它們比實際要好。同樣,許多開發人員經歷了他們在一種方法上非常擅長的階段,但仍未始終將所有內容整合到一個全球最佳解決方案中,並且仍然缺乏靈活性。例如,有時最好採用劣質的解決方案,您知道自己可以維持的人,如果您知道他們不能養成更老練的人,也不太可能僱用其他人。 / p>

具有高度不同技能水平的團隊所面臨的問題幾乎完全是人際關係和情感問題,而不是技術問題。
Daniel
2016-11-19 04:33:26 UTC
view on stackexchange narkive permalink

您可能根本不如您想像的那麼好,但是出於文明的考慮,我將假設您知道如何編寫正確數量的複雜代碼以減少整個過程的複雜性和時間要求代碼庫的數量級。甚至有可能做到這一點的事實使許多白痴措手不及。他們發現這是一個難以置信的主張,說服他們的唯一方法就是向他們展示。

但這需要技巧,勇氣和自我控制。您需要先關註三件事:證明您不是威脅,使白痴看起來聰明,永遠不要讓一個白痴意識到您知道他是個白痴。如果您不能讓自己去做這三件事,那您將失敗,這將是您的錯。務實是必須的,沒有驕傲的餘地。

儘管我不能向所有人推薦這種方法,但對我而言一直有效的是有時會忽略白痴告訴我要做的事情。取而代之的是,我找到了自己想做的方法,生產了許多人在很短的時間內就看到過的最好的軟件,並且以這種方式提出了建議,使老闆們對他們表示讚賞。即使他們沒有參與創建它。即使他們積極反對。

對嗎?我不應該為我的工作獲得全部榮譽嗎?我真的應該圍繞每個人的感受跳舞嗎?不相關。這是現實。如果我不適應它,那我就是白痴。

五個人可以理解和維護的代碼比僅一個人可以維護的代碼要好。(假設它符合要求。)
丹尼爾,看來您有兩個帳戶。您可以使用頁面底部的“聯繫我們”鏈接要求將它們合併,因此所有活動都將在一個帳戶上進行。
杜興怡
2016-11-19 03:48:03 UTC
view on stackexchange narkive permalink

要專門解決該問題,

將來如何避免這種情況?

  • 查找以下內容的本地章節主持人,積極參與並獲得成就。看起來像反饋這樣顯而易見的東西,將有望被讚賞並磨練為您最有價值的技能之一。

  • 實踐是學生,而不是專家。您是否看到過這個Jon Skeet的基礎知識談話?您能想像如果我們每個人都編寫這樣的文檔可以使他們獲得更多的了解,它將使團隊中各個階層的所有人受益!

  • 一個團隊不是一個團隊個人。您的團隊將共同成長和進步。你要幫忙如果每個成員都是一個朝著不同方向前進的單元(例如,您更高,而最新成員停滯不前),則不是團隊。 2小時會議是一個好的開始。我還要加上N天配對輪換。這是您禮物與隊友他們對您禮物的1:1時間。就您而言,傾向於導航員角色,讓您的伴侶開車。嘗試不要編寫聽起來很奇怪的代碼。

  • 在當地的Meetup和Hack-a-thons擔任志願者。

  • 在每個練習中,都可以嘗試這樣做,因為它的目的是進行協作,而不是構建容錯的能源公用事業網格,因此可能會迫使您精簡代碼。這個概念:通過服務領導。

  • 如所指出的,如何才能完成一項任務或完成某些事情來滿足另一個團隊成員的需求?為開源項目做出貢獻,以使您的代碼獲得更多的角度。他們可能會確認您的才華,但也可能會加強您從現任老闆那裡聽到的建議。充其量,有些評論會給您一個新的主意。

  • 找到比您更好的工程師。成為房間裡最聰明的人並不能提高自己。有一句名言(我的谷歌搜索在Olgivy / Ford / Sorkin之間分開)的措辭就像“如果你周圍的人才不好就無法學到更多”。

我更新了我的OP。
您是否認為可以通過將補丁發送到更大的FLOSS項目來實現相同目的?
主持人比其他任何人都更適合人群。對於不希望這樣做的人來說,這不是最好的主意。我也沒有發現反饋總是誠實的,例如他們為我的口味處理了太多的外交和小孩子手套。
我希望我記得@Nemo,是的!公開參與項目將使更多的人關注它,這是幫助我改善代碼的超級創意。
@RuiFRibeiro這是事實。學習過濾反饋也很重要。這不是一個小問題。我一直在努力寫這本書“ Stone&Heen,謝謝您的反饋”。我的建議是練習,無論是以TM之類的安全環境還是其他方式,請開始練習。
JimmyJames
2016-11-19 04:19:41 UTC
view on stackexchange narkive permalink

我要假設您對情況的描述與您所說的一樣。我不能說我曾經有過這種確切的經驗,但是我對這方面有一些熟悉的經驗。我不知道法國的情況如何,但是大型公司通常不重視內部開發人員的技能,尤其是如果它們不是專注於技術的公司。我將其主要歸因於這樣一個事實,即此類公司的經理通常不具備技術背景或離開開發,因為他們從來沒有那麼擅長。

供應商在銷售工具時也有其歷史性的一面。應該消除了對有才華的開發人員的需求。即使您的團隊沒有使用這些可怕的東西之一,公司的管理也有可能被反開發團隊的思想所灌輸。實際上,我曾經有一位經理告訴我,我很聰明,可以構建給定的解決方案,但是沒有其他人可以維護它,因此我們需要購買某些東西(貨架軟件)。 。

您可能需要尋找其他類型的公司。一個重視高技能開發人員的人。但是,您可能不得不爭先恐後地成為最佳開發者。如果您是一位有抱負的廚師,您可能會在麥當勞工作不滿意。他們不需要廚師。他們需要人們遵循食譜。您可能是廚師,而這家公司(和其他類似公司)是麥當勞。您需要問自己的問題是為什麼您還沒有做到這一點。

不錯的廚師/醫學博士比喻-是的,或者“太多的廚師破壞了湯汁”
您對法國的“大宗商品”(大魚,尤其是銀行)的假設是絕對正確的。我只有在別無選擇時才在那兒完成“聰明”的代碼。在大多數情況下,像其他人一樣做,只是做得更乾淨,就足以完成工作-並易於閱讀。我沒想到我的少數聰明程序會被其他人維護。
user45019
2016-11-19 05:48:47 UTC
view on stackexchange narkive permalink

TL; DR:找到一個更合適的工作場所,並對仍然需要學習的技能誠實。

您對我來說聽起來像是“軟件工藝”風格的開發人員-對最佳實踐感興趣,並且始終尋找並遵循良好的方法來執行代碼。也許您會在其他開發人員對這種事情更感興趣的環境中更加快樂-並且有很多這樣的工作場所。

但是,您所說的某些內容給人的印像是,您有時認為存在一種“最佳方法”來執行應始終遵循 的代碼。也許我在這裡是不正確的-但是,如果我是正確的話,那麼在探索替代選擇的利弊以及尋找代表企業最佳平衡的方式時,您可能需要學習一些知識。實際上,我會說您肯定需要在那裡進行改進-因為我們 all 都做到了!

anon
2016-11-19 09:53:49 UTC
view on stackexchange narkive permalink

有時候,與他人交談時,您必須“啞巴”下來,以免冒犯他人。尤其是如果您的工作水平遠高於其他工作人員,那麼當您談論他們可能應該知道但沒有的提示和事實時,他們可能會感到冒犯。

我想說您的工作非常好,以便人們檢查它可以理解它。您甚至可能需要“說明”為什麼在註釋內部的另一種方法上選擇該編碼方法。您可能是最好的編碼員,但是如果您在團隊中,則必須作為團隊工作。

如果團隊合作意味著一隻手在背後,(這意味著遵循他們的編碼偏好),那就去做。至少他們可以閱讀,理解它,團隊本身也會變得更好(即使那意味著您在內部大喊大叫)。

幾乎無論您去到哪裡,都屬於團隊的一部分有關他們如何編碼的內容-您需要遵循這些準則。

UmNyobe
2016-11-21 23:05:12 UTC
view on stackexchange narkive permalink

將來如何避免這種情況?

除非與您有合理的關係,確保他們的編碼標準與您相匹配,否則請勿與任何人合作。這意味著如果沒有以下任何一項情況,則拒絕任何工作:

  • 他們在面試過程中向您詢問編程問題
  • 他們有同級編程練習
  • 他們要求提供代碼示例,並且可以接受
  • 您可以看到他們生成的一些代碼

如何避免

這已經被其他答案覆蓋了。

如果你那麼好,請達到他們的水平並慢慢教會他們成為更好的程序員。 我第一次不得不管理實習生時,我幾乎消滅了他產生的全部代碼。當我看到發生的事情時,我真的氣死了(幸運的是,我沒有見證人:P)

您需要鼓勵對等編程,代碼審查。與另一位程序員坐在一起,嘗試一起編碼2或3個小時。刪除可能很難解釋的概念(例如,新的Java 8高級功能),並解釋那些更簡單的概念(繼承性)。

是的,問題是我建議了所有這些。答案是:“我們沒有時間學習”。
那麼他們的文化與您的文化不符。在其他地方,說“我沒有時間學習”是終止的好方法。
同意:)我下個星期五離開。
user8365
2016-11-19 00:16:35 UTC
view on stackexchange narkive permalink

您聽起來好像您是一個足夠好的程序員,能夠適應多種情況。查看其他人如何編碼並採取相應的行動。有時,請問您是否可以嘗試其他方法,並確保它不會超出其他所有人都能理解的範圍。

我通常不會提供此建議,但是無論您身在何處,這個問題似乎都會困擾您走吧,所以別吵了,直到找到沒有問題的工作為止。您可能會考慮參與一個項目,在該項目中您可以幫助其他少數開發人員,因此看起來好像不是您在“異常”地進行編程。

這太可惜了如果是這種情況,其他人就不會珍惜您的作品或想從中學習。別再把頭撞在牆上了。誰知道,您將只有一個項目/任務來實現它。如果您只是在沒有其他人能做到的情況下使代碼工作,那麼從長遠來看,沒人會擔心您的代碼有多複雜。

我們是團隊中的3個開發人員。
每天我都會向他們解釋一些編程技巧,他們對此非常滿意。問題是,雖然很高興聽到我在談論,但在他們的腦海中卻安裝了一種自卑感。那是我經理反應的開始。
@Mik378每天都很遙遠。選擇一個可以帶來巨大收益的簡單更改。演示團隊通常使用的代碼與您的建議之間的區別。在嘗試其他操作之前,先將其浸入一段時間。
“他們非常喜歡”-您確定嗎?也許他們只是禮貌。使某人感到自卑,“大享其成”。您的陳述不一致。
@Mik378如果您沒有從這個問題中獲得任何其他東西,則應該相信Brad Thomas的評論-這可能是您處境的關鍵。
CoffeDeveloper
2016-11-23 18:59:24 UTC
view on stackexchange narkive permalink

我們不能長期依靠他

這是主要問題。他們不想依賴您,但是您被錄用是因為他們實際上依賴您。

您可以使用以下方法使管理安靜下來:

  • 無論如何,您都不打算將其轉移到其他地方,因此它們可以長期依靠您。

我認為我面臨的挑戰是使我的技能不斷發揮作用,所以我認為我終於找到了可以長期享受的工作場所

  • 您願意為其他團隊成員提供培訓,以為團隊提供更多價值。

我注意到,其他人的代碼並不是與最新的軟件開發技術真正同步的,這不是問題,我可以完全停止使用該技術,但是如果每個人都逐漸開始使用該技術來改善團隊績效,那將是有益的。我可以為您提供幫助。

  • 您被要求實施XY功能,以確保在一定時間內交付的功能需要您的技能,本來可以用不同的方式來完成,但還有更多時間並帶有其他錯誤的風險。

我是否可以有額外的時間來完成下一個功能?我真的很努力地做好事情,我做到了,但是我擔心並不是每個人都能理解,相反,我想花點時間讓其他人可以理解。

成為老實說,如果某些說法不適用(我現在不討論您的工作),就永遠不要說謊。

如果他們要解僱您,那麼他們並不是真的依賴您。無論如何,團隊中至少有2個人了解您的工作:您和您的同事。而且將來有更多的人有可能理解它。基本上,您不是團隊的瓶頸,但是他們擔心您稍後會成為瓶頸。無論如何,他們應該花一些時間來訓練。

Christos Hayward
2016-11-26 23:15:51 UTC
view on stackexchange narkive permalink

閱讀 Wagon,Blackbird和Saab 它應該引起您的共鳴。

過去我有過類似的問題;我已經學到了一些有關如何應付警察的知識,但是我們都一直在使用拖把和水桶來清理消防水帶的輸出。

我在這裡並不是在建議您使用DSM, V心理健康診斷,但建議您最好找一位好的輔導員,並從事無威脅的行為和社交技能的工作。您可能還會閱讀 外星人思維理論



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