拒絕經驗過剩,“程序員的工作只能是代碼”?

拒絕經驗過剩,“程序員的工作只能是代碼”?

似乎軟件工程師都有一個自然而然的成長過程:從缺乏經驗的新手,發展到中級工程師,進而成為經驗過剩的工程師。一旦軟件工程師進入經驗過剩階段,他們對代碼的興趣就會降低!那麼哪些跡象表明你已經經驗過剩了呢?

拒絕經驗過剩,“程序員的工作只能是代碼”?

作者 | SeattleDataGu

譯者 | 彎月,責編 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下為譯文:

奇怪的是,無論你在哪家公司工作,大多數經驗豐富的工程師都會體驗出一些相同的特徵。由於他們缺乏對代碼的關注,在設計上浪費的時間比寫代碼的時間還長,因此會拖累每位工程師編寫代碼的速度。

從新手工程師到經驗過剩的工程師的轉變並非一蹴而就。然而,經過多年甚至幾十年的磨練,這些工程師都會逐漸轉變成經驗過剩的工程師。幾乎每一家公司都是如此,而且不斷應對這些人的需求和不必要的忙碌工作真的很令人沮喪。

無論你是新手工程師還是經驗過剩的工程師,本文都可以指出經驗過剩的工程師的特徵,從而幫助你避免這種發展趨勢。

拒絕經驗過剩,“程序員的工作只能是代碼”?

浪費時間重構

@techleadhd(https://twitter.com/techleadhd)是目前最活躍的工程師之一,他在最近的一篇Twitter帖子中表達了他對編寫代碼的真實看法。

很明顯,他不相信寫代碼,相反,他暗示刪除和重構代碼很有價值。他認為這種工作不應該被稱為軟件清理,而是應該叫做軟件工程。

拒絕經驗過剩,“程序員的工作只能是代碼”?

我們應該設計代碼而不是維護代碼。

維護代碼的工作可以由別人勝任,就連實習生都可以勝任。

軟件工程師應該花時間編寫舊的低效代碼,而不是嘗試改進舊的基礎架構。為了保證系統正常工作,你甚至可以通過“膠帶”把這些代碼組織到一起,將來必然有別的工程師接管我們的代碼,在現階段我們無能為力。然而,經驗過剩的工程師總是覺得有必要維護舊代碼。

拒絕經驗過剩,“程序員的工作只能是代碼”?

他們的重心放在了顧全大局而非代碼

在這裡,我只想澄清一點:顧全大局和業務並不軟件工程師的工作,我們的工作只有代碼!

經驗過剩的工程師習慣於重視大局勝過代碼本身。他們喜歡提出的問題包括:“誰會受到這個項目的影響?”,“最終用戶將如何與代碼交互”以及“我們將如何維護這些代碼?”等等。

他們浪費了大量時間來了解項目的範圍以及對公司的影響。有時,他們甚至會挑戰領導,認為自己有“卓越的解決方案”。如果他們一味地專注於“影響”和“優先級劃分”等諸如此類微不足道的事情,怎麼可能有時間寫完所有的代碼呢?

將所有時間都花在各種會議、統計指標和代碼審查上,我們只能眼睜睜看著寫代碼的時間一分一秒流逝。

經驗過剩的工程師對缺乏經驗的工程師沒有信心,對此我們一點也不會感到驚訝。缺乏經驗的工程師只會全力以赴寫代碼,並按照吩咐做事,即便範圍可能過於複雜。

這是因為優秀的程序員不會質疑他們的工作。相反,無論面對何種請求,他們都會低下頭寫代碼。無論何時,對公司產生的影響都應該留給業務去評判。我們作為程序員的工作就是實現代碼,而不是設法搞清楚哪些工作有價值,或如何適應公司的戰略。

我們需要提醒經驗過剩的工程師:你們是程序員,不是領導。

拒絕經驗過剩,“程序員的工作只能是代碼”?

對他們來說,設計文檔不可或缺

出於某種原因,經驗過剩的工程師總是想要設計文檔。

無論項目的規模大小,不考慮設計文檔,全神貫注寫代碼可以快速推進項目。你大可不必糾結你需要哪些對象,或代碼需要實現哪些操作場景。

從我們的角度來看,我們發現將一切記在腦海中要容易得多。即使擁有數千行代碼,也並非難以管理。

我們不會用略微不同的對象或其他東西重複創建同一個功能。

我們不會使用多個對象創建重複的功能。

為什麼經驗過剩的工程師如此關心這些問題呢?

最後,如果我們不需要花時間思考設計文檔,那麼就可以將寫代碼的速度提高十倍,而且能夠更有效地工作。

拒絕經驗過剩,“程序員的工作只能是代碼”?

他們不喜歡“過於複雜”和“過度設計”

拒絕經驗過剩,“程序員的工作只能是代碼”?

有時,我認為有些工程師不會考慮其他人的代碼。

因此,在創建一個模塊的時候,你可以利用在學校學到的所有技術,將所有面向對象的概念都融合到一起,然而他們認為這種代碼屬於過度設計。

就個人而言,我認為他們只是不願認真思考別人出色的工作。

花點時間理解對象A繼承了對象B,而B調用函數C,而C又調用函數D,有時選項F或G會從配置文件E中獲取信息,而E會通過函數F解析來自數據庫G的數據,然後將日誌存儲在Hadoop,CouchDB和S3中,這很難嗎?

他們會抱怨說,這些代碼太優雅或過度設計。保留精心設計的代碼,易於維護的生產環境,這些不過是掩蓋他們懶惰的託辭。他們只想讓年輕的工程師編寫過於簡單的代碼。

雖然,簡單的代碼方便閱讀和理解。但作為工程師,我們面對的不僅僅是簡單的工作,我們需要面對複雜的問題,創建複雜的解決方案。

拒絕經驗過剩,“程序員的工作只能是代碼”?

他們永遠在追逐未來

我只知道目前使用過的幾個框架,而且我只需要知道這幾個框架。

然而,經驗過剩的工程師花了大把時間學習新的框架和語言,或者新的設計原則。

這一切似乎都在浪費時間。作為一名工程師,在大學畢業後你就應該掌握所有的技術,之後的技術都不重要。有些人甚至還在leet code上做練習和學習,好像他們要去參加面試一樣。軟件工程師又不需要擔心失業。

難道不是每個人都會在大學學習編程語言嗎?

拒絕經驗過剩,“程序員的工作只能是代碼”?

寫在最後

經驗過剩的工程師阻礙了整個社會的發展。

他們通過堅持重構代碼、追求設計文檔並不斷的學習,不斷推進軟件的進步。如果沒有經驗過剩的工程師,如今的世界肯定已經發明瞭飛行汽車,還有智力超越人類的機器人。然而,如今我們還在堅持使用280個字符的推文,還不斷被亞馬遜的廣告騷擾——自從上週從網上購買了一個馬桶蓋以後,這些廣告就一直在向我推銷同類的馬桶蓋。

原文:https://medium.com/better-programming/top-signs-of-an-over-experienced-programmer-22bbe0b57663

本文為 CSDN 翻譯,轉載請註明來源出處。

【END】

拒絕經驗過剩,“程序員的工作只能是代碼”?

相關推薦

推薦中...