'前谷歌技術主管親述:程序員請避開這幾大雷區'

"
全文共1827字,預計學習時長4分鐘


"
全文共1827字,預計學習時長4分鐘


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:Unsplash/攝影NESA by Makers


軟件工程師的技能發展都會經歷一個自然的過程——經驗從無到有,最後變成老手。而一旦到了經驗豐富的階段,他們對代碼就不那麼感興趣了。恰恰相反,他們會把更多的精力放在文件設計和代碼重構上。


奇怪的是,不管任職於哪家公司,大多數經驗豐富的工程師都會表現出同樣的特點。他們缺乏對代碼的關注,和其他工程師相比,他們寫代碼的速度較慢。這是因為和僅僅編寫代碼相比,他們會將更多的時間花在設計上面。


從一個新手到經驗豐富,這個轉變過程不是一蹴而就的。但一般而言,這些工程師會用幾年甚至幾十年的時間,逐漸成為領域內資歷很高的人。


他們似乎在每個公司都是一樣的——不斷地處理新出現的需求,進行不必要的繁忙工作——這無疑會讓他們感到沮喪。本文將指出工程師們可能表現出的一些抑制其發展的特徵。


1. 在代碼重構上浪費時間


@techleadhd作為目前在世的經驗最豐富的工程師之一,在推特上透露了他關於編寫代碼的真實想法。

他顯然不相信編寫代碼的意義。相反,他暗示稱刪除和重構代碼是有價值的。

但這項工作並不是軟件清理,而是做軟件工程。


"
全文共1827字,預計學習時長4分鐘


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:Unsplash/攝影NESA by Makers


軟件工程師的技能發展都會經歷一個自然的過程——經驗從無到有,最後變成老手。而一旦到了經驗豐富的階段,他們對代碼就不那麼感興趣了。恰恰相反,他們會把更多的精力放在文件設計和代碼重構上。


奇怪的是,不管任職於哪家公司,大多數經驗豐富的工程師都會表現出同樣的特點。他們缺乏對代碼的關注,和其他工程師相比,他們寫代碼的速度較慢。這是因為和僅僅編寫代碼相比,他們會將更多的時間花在設計上面。


從一個新手到經驗豐富,這個轉變過程不是一蹴而就的。但一般而言,這些工程師會用幾年甚至幾十年的時間,逐漸成為領域內資歷很高的人。


他們似乎在每個公司都是一樣的——不斷地處理新出現的需求,進行不必要的繁忙工作——這無疑會讓他們感到沮喪。本文將指出工程師們可能表現出的一些抑制其發展的特徵。


1. 在代碼重構上浪費時間


@techleadhd作為目前在世的經驗最豐富的工程師之一,在推特上透露了他關於編寫代碼的真實想法。

他顯然不相信編寫代碼的意義。相反,他暗示稱刪除和重構代碼是有價值的。

但這項工作並不是軟件清理,而是做軟件工程。


前谷歌技術主管親述:程序員請避開這幾大雷區


這就意味著工程師需要設計代碼,而不是維護代碼。維護代碼是其他人的工作,興許實習生就能做到。


軟件工程師們應該花時間對那些陳舊低效的代碼進行編程,而不是試圖改進舊的基礎結構。只要工作正常運作,就還可以用尚有不足的代碼。然而,不少經驗豐富的工程師似乎認為維護舊代碼具有很重要的意義。


2. 關注整體情況而不是代碼


值得明確的一點是,整體情況和業務方面的事情並不重要,重要的是代碼!

經驗豐富的軟件工程師有一個壞習慣,就是把注意力集中在整體情況而不是代碼本身。他們喜歡提出這樣的問題,比如“這個項目將對誰產生影響”“最終用戶將如何與代碼交互”以及“工程師將如何維護代碼”。

他們花費很多時間試圖去了解項目的範圍以及它對於公司的影響。有時,他們甚至會用他們認為的“更好的解決方案”來挑戰領導階層。那麼,當他們專注於諸如“影響”和“優先次序”之類的瑣事時,他們如何抽出時間來完成所有代碼?


把所有的時間都花在會議、鞏固、度量跟蹤和代碼審查上,會導致代碼編寫不再純粹。


優秀的程序員不應該質疑他們正在做的事情。相反,無論是什麼請求,他們都應該低下頭來編碼。在任何時候,企業都確切清楚什麼樣的行為將會對公司產生影響。作為程序員的工作職責,就是做好本職工作,而不是弄清楚他們做的事情是否值得,或者是否符合公司的戰略。


希望經驗豐富的工程師們記住:你是程序員,而不是領導者。

3. 總是想要一個設計文檔

出於某種原因,經驗豐富的軟件工程師們總是想要一個設計文檔。其實,在不考慮設計文檔的情況下,無論項目規格多大,直接開始編寫都要快得多。


人們不會用一個稍微不同的對象或任何東西去重複功能。那麼,為什麼經驗豐富的軟件工程師偏要如此在意呢?


最後,如果不需要花時間考慮設計文檔,工程師很可能將以快十倍的速度編寫代碼。


4. 不喜歡“複雜性”和“設計過度的工程”


"
全文共1827字,預計學習時長4分鐘


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:Unsplash/攝影NESA by Makers


軟件工程師的技能發展都會經歷一個自然的過程——經驗從無到有,最後變成老手。而一旦到了經驗豐富的階段,他們對代碼就不那麼感興趣了。恰恰相反,他們會把更多的精力放在文件設計和代碼重構上。


奇怪的是,不管任職於哪家公司,大多數經驗豐富的工程師都會表現出同樣的特點。他們缺乏對代碼的關注,和其他工程師相比,他們寫代碼的速度較慢。這是因為和僅僅編寫代碼相比,他們會將更多的時間花在設計上面。


從一個新手到經驗豐富,這個轉變過程不是一蹴而就的。但一般而言,這些工程師會用幾年甚至幾十年的時間,逐漸成為領域內資歷很高的人。


他們似乎在每個公司都是一樣的——不斷地處理新出現的需求,進行不必要的繁忙工作——這無疑會讓他們感到沮喪。本文將指出工程師們可能表現出的一些抑制其發展的特徵。


1. 在代碼重構上浪費時間


@techleadhd作為目前在世的經驗最豐富的工程師之一,在推特上透露了他關於編寫代碼的真實想法。

他顯然不相信編寫代碼的意義。相反,他暗示稱刪除和重構代碼是有價值的。

但這項工作並不是軟件清理,而是做軟件工程。


前谷歌技術主管親述:程序員請避開這幾大雷區


這就意味著工程師需要設計代碼,而不是維護代碼。維護代碼是其他人的工作,興許實習生就能做到。


軟件工程師們應該花時間對那些陳舊低效的代碼進行編程,而不是試圖改進舊的基礎結構。只要工作正常運作,就還可以用尚有不足的代碼。然而,不少經驗豐富的工程師似乎認為維護舊代碼具有很重要的意義。


2. 關注整體情況而不是代碼


值得明確的一點是,整體情況和業務方面的事情並不重要,重要的是代碼!

經驗豐富的軟件工程師有一個壞習慣,就是把注意力集中在整體情況而不是代碼本身。他們喜歡提出這樣的問題,比如“這個項目將對誰產生影響”“最終用戶將如何與代碼交互”以及“工程師將如何維護代碼”。

他們花費很多時間試圖去了解項目的範圍以及它對於公司的影響。有時,他們甚至會用他們認為的“更好的解決方案”來挑戰領導階層。那麼,當他們專注於諸如“影響”和“優先次序”之類的瑣事時,他們如何抽出時間來完成所有代碼?


把所有的時間都花在會議、鞏固、度量跟蹤和代碼審查上,會導致代碼編寫不再純粹。


優秀的程序員不應該質疑他們正在做的事情。相反,無論是什麼請求,他們都應該低下頭來編碼。在任何時候,企業都確切清楚什麼樣的行為將會對公司產生影響。作為程序員的工作職責,就是做好本職工作,而不是弄清楚他們做的事情是否值得,或者是否符合公司的戰略。


希望經驗豐富的工程師們記住:你是程序員,而不是領導者。

3. 總是想要一個設計文檔

出於某種原因,經驗豐富的軟件工程師們總是想要一個設計文檔。其實,在不考慮設計文檔的情況下,無論項目規格多大,直接開始編寫都要快得多。


人們不會用一個稍微不同的對象或任何東西去重複功能。那麼,為什麼經驗豐富的軟件工程師偏要如此在意呢?


最後,如果不需要花時間考慮設計文檔,工程師很可能將以快十倍的速度編寫代碼。


4. 不喜歡“複雜性”和“設計過度的工程”


前谷歌技術主管親述:程序員請避開這幾大雷區


在某種程度上,有些資歷頗深的工程師不再願意深思其他人的代碼。


因此,當創建一個模塊時,他往往把在學校學到的所有知識都融合到一個面向對象記憶體中,並通常聲稱這是過度設計的代碼。


其實他們只是不想深思別人的傑作。


花時間去理解如何從對象B中得到對象A,然後調用函數C,調用函數D,有時選項F和選項G從配置文件E提取,配置文件E用函數F從數據庫G中來解析數據,然後將日誌存儲在Hadoop、 CouchDB和S3中,這會很困難。


人們開始抱怨,說代碼太簡單,或者設計太複雜。懶惰使得精心設計的代碼很容易停產。


5. 他們都被困在未來


事實上,我們現在所瞭解的框架往往是一生中所需要了解的唯一框架。


然而,經驗豐富的工程師似乎花費了大量的時間去學習新的框架和語言,最起碼去研究新的設計原則,但這往往並非是必須要做的事情——很多事情並非是越多越好的。


"
全文共1827字,預計學習時長4分鐘


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:Unsplash/攝影NESA by Makers


軟件工程師的技能發展都會經歷一個自然的過程——經驗從無到有,最後變成老手。而一旦到了經驗豐富的階段,他們對代碼就不那麼感興趣了。恰恰相反,他們會把更多的精力放在文件設計和代碼重構上。


奇怪的是,不管任職於哪家公司,大多數經驗豐富的工程師都會表現出同樣的特點。他們缺乏對代碼的關注,和其他工程師相比,他們寫代碼的速度較慢。這是因為和僅僅編寫代碼相比,他們會將更多的時間花在設計上面。


從一個新手到經驗豐富,這個轉變過程不是一蹴而就的。但一般而言,這些工程師會用幾年甚至幾十年的時間,逐漸成為領域內資歷很高的人。


他們似乎在每個公司都是一樣的——不斷地處理新出現的需求,進行不必要的繁忙工作——這無疑會讓他們感到沮喪。本文將指出工程師們可能表現出的一些抑制其發展的特徵。


1. 在代碼重構上浪費時間


@techleadhd作為目前在世的經驗最豐富的工程師之一,在推特上透露了他關於編寫代碼的真實想法。

他顯然不相信編寫代碼的意義。相反,他暗示稱刪除和重構代碼是有價值的。

但這項工作並不是軟件清理,而是做軟件工程。


前谷歌技術主管親述:程序員請避開這幾大雷區


這就意味著工程師需要設計代碼,而不是維護代碼。維護代碼是其他人的工作,興許實習生就能做到。


軟件工程師們應該花時間對那些陳舊低效的代碼進行編程,而不是試圖改進舊的基礎結構。只要工作正常運作,就還可以用尚有不足的代碼。然而,不少經驗豐富的工程師似乎認為維護舊代碼具有很重要的意義。


2. 關注整體情況而不是代碼


值得明確的一點是,整體情況和業務方面的事情並不重要,重要的是代碼!

經驗豐富的軟件工程師有一個壞習慣,就是把注意力集中在整體情況而不是代碼本身。他們喜歡提出這樣的問題,比如“這個項目將對誰產生影響”“最終用戶將如何與代碼交互”以及“工程師將如何維護代碼”。

他們花費很多時間試圖去了解項目的範圍以及它對於公司的影響。有時,他們甚至會用他們認為的“更好的解決方案”來挑戰領導階層。那麼,當他們專注於諸如“影響”和“優先次序”之類的瑣事時,他們如何抽出時間來完成所有代碼?


把所有的時間都花在會議、鞏固、度量跟蹤和代碼審查上,會導致代碼編寫不再純粹。


優秀的程序員不應該質疑他們正在做的事情。相反,無論是什麼請求,他們都應該低下頭來編碼。在任何時候,企業都確切清楚什麼樣的行為將會對公司產生影響。作為程序員的工作職責,就是做好本職工作,而不是弄清楚他們做的事情是否值得,或者是否符合公司的戰略。


希望經驗豐富的工程師們記住:你是程序員,而不是領導者。

3. 總是想要一個設計文檔

出於某種原因,經驗豐富的軟件工程師們總是想要一個設計文檔。其實,在不考慮設計文檔的情況下,無論項目規格多大,直接開始編寫都要快得多。


人們不會用一個稍微不同的對象或任何東西去重複功能。那麼,為什麼經驗豐富的軟件工程師偏要如此在意呢?


最後,如果不需要花時間考慮設計文檔,工程師很可能將以快十倍的速度編寫代碼。


4. 不喜歡“複雜性”和“設計過度的工程”


前谷歌技術主管親述:程序員請避開這幾大雷區


在某種程度上,有些資歷頗深的工程師不再願意深思其他人的代碼。


因此,當創建一個模塊時,他往往把在學校學到的所有知識都融合到一個面向對象記憶體中,並通常聲稱這是過度設計的代碼。


其實他們只是不想深思別人的傑作。


花時間去理解如何從對象B中得到對象A,然後調用函數C,調用函數D,有時選項F和選項G從配置文件E提取,配置文件E用函數F從數據庫G中來解析數據,然後將日誌存儲在Hadoop、 CouchDB和S3中,這會很困難。


人們開始抱怨,說代碼太簡單,或者設計太複雜。懶惰使得精心設計的代碼很容易停產。


5. 他們都被困在未來


事實上,我們現在所瞭解的框架往往是一生中所需要了解的唯一框架。


然而,經驗豐富的工程師似乎花費了大量的時間去學習新的框架和語言,最起碼去研究新的設計原則,但這往往並非是必須要做的事情——很多事情並非是越多越好的。


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:unsplash.com/@k8_iv


事實上,從這一點來考慮的話,經驗豐富的軟件工程師可能正是阻礙社會發展的因素之一。


隨著對代碼重構、設計文檔和學習所提出的源源不斷的需求,他們不斷地推進著軟件的迭代。我們甚至可以這麼想:如果沒有那些經驗過度豐富的工程師,現在說不定已經出現比我們更智能的飛行汽車和機器人了!

"
全文共1827字,預計學習時長4分鐘


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:Unsplash/攝影NESA by Makers


軟件工程師的技能發展都會經歷一個自然的過程——經驗從無到有,最後變成老手。而一旦到了經驗豐富的階段,他們對代碼就不那麼感興趣了。恰恰相反,他們會把更多的精力放在文件設計和代碼重構上。


奇怪的是,不管任職於哪家公司,大多數經驗豐富的工程師都會表現出同樣的特點。他們缺乏對代碼的關注,和其他工程師相比,他們寫代碼的速度較慢。這是因為和僅僅編寫代碼相比,他們會將更多的時間花在設計上面。


從一個新手到經驗豐富,這個轉變過程不是一蹴而就的。但一般而言,這些工程師會用幾年甚至幾十年的時間,逐漸成為領域內資歷很高的人。


他們似乎在每個公司都是一樣的——不斷地處理新出現的需求,進行不必要的繁忙工作——這無疑會讓他們感到沮喪。本文將指出工程師們可能表現出的一些抑制其發展的特徵。


1. 在代碼重構上浪費時間


@techleadhd作為目前在世的經驗最豐富的工程師之一,在推特上透露了他關於編寫代碼的真實想法。

他顯然不相信編寫代碼的意義。相反,他暗示稱刪除和重構代碼是有價值的。

但這項工作並不是軟件清理,而是做軟件工程。


前谷歌技術主管親述:程序員請避開這幾大雷區


這就意味著工程師需要設計代碼,而不是維護代碼。維護代碼是其他人的工作,興許實習生就能做到。


軟件工程師們應該花時間對那些陳舊低效的代碼進行編程,而不是試圖改進舊的基礎結構。只要工作正常運作,就還可以用尚有不足的代碼。然而,不少經驗豐富的工程師似乎認為維護舊代碼具有很重要的意義。


2. 關注整體情況而不是代碼


值得明確的一點是,整體情況和業務方面的事情並不重要,重要的是代碼!

經驗豐富的軟件工程師有一個壞習慣,就是把注意力集中在整體情況而不是代碼本身。他們喜歡提出這樣的問題,比如“這個項目將對誰產生影響”“最終用戶將如何與代碼交互”以及“工程師將如何維護代碼”。

他們花費很多時間試圖去了解項目的範圍以及它對於公司的影響。有時,他們甚至會用他們認為的“更好的解決方案”來挑戰領導階層。那麼,當他們專注於諸如“影響”和“優先次序”之類的瑣事時,他們如何抽出時間來完成所有代碼?


把所有的時間都花在會議、鞏固、度量跟蹤和代碼審查上,會導致代碼編寫不再純粹。


優秀的程序員不應該質疑他們正在做的事情。相反,無論是什麼請求,他們都應該低下頭來編碼。在任何時候,企業都確切清楚什麼樣的行為將會對公司產生影響。作為程序員的工作職責,就是做好本職工作,而不是弄清楚他們做的事情是否值得,或者是否符合公司的戰略。


希望經驗豐富的工程師們記住:你是程序員,而不是領導者。

3. 總是想要一個設計文檔

出於某種原因,經驗豐富的軟件工程師們總是想要一個設計文檔。其實,在不考慮設計文檔的情況下,無論項目規格多大,直接開始編寫都要快得多。


人們不會用一個稍微不同的對象或任何東西去重複功能。那麼,為什麼經驗豐富的軟件工程師偏要如此在意呢?


最後,如果不需要花時間考慮設計文檔,工程師很可能將以快十倍的速度編寫代碼。


4. 不喜歡“複雜性”和“設計過度的工程”


前谷歌技術主管親述:程序員請避開這幾大雷區


在某種程度上,有些資歷頗深的工程師不再願意深思其他人的代碼。


因此,當創建一個模塊時,他往往把在學校學到的所有知識都融合到一個面向對象記憶體中,並通常聲稱這是過度設計的代碼。


其實他們只是不想深思別人的傑作。


花時間去理解如何從對象B中得到對象A,然後調用函數C,調用函數D,有時選項F和選項G從配置文件E提取,配置文件E用函數F從數據庫G中來解析數據,然後將日誌存儲在Hadoop、 CouchDB和S3中,這會很困難。


人們開始抱怨,說代碼太簡單,或者設計太複雜。懶惰使得精心設計的代碼很容易停產。


5. 他們都被困在未來


事實上,我們現在所瞭解的框架往往是一生中所需要了解的唯一框架。


然而,經驗豐富的工程師似乎花費了大量的時間去學習新的框架和語言,最起碼去研究新的設計原則,但這往往並非是必須要做的事情——很多事情並非是越多越好的。


前谷歌技術主管親述:程序員請避開這幾大雷區

圖片來源:unsplash.com/@k8_iv


事實上,從這一點來考慮的話,經驗豐富的軟件工程師可能正是阻礙社會發展的因素之一。


隨著對代碼重構、設計文檔和學習所提出的源源不斷的需求,他們不斷地推進著軟件的迭代。我們甚至可以這麼想:如果沒有那些經驗過度豐富的工程師,現在說不定已經出現比我們更智能的飛行汽車和機器人了!

前谷歌技術主管親述:程序員請避開這幾大雷區

留言 點贊 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 “讀芯術”

"

相關推薦

推薦中...