'前Google技術主管:程序員五大雷區,請你一定要避開'

"


"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

5. 他們都被困在未來

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

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

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

5. 他們都被困在未來

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

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

前Google技術主管:程序員五大雷區,請你一定要避開

圖片來源:unsplash.com/@k8_iv

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

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


最後

漫漫Android開發之路,你我只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!

這邊我整理了一些資料,把它拿出來分享給大家,一方面是希望能夠幫助大家提高,一方面也是警醒自己,要不斷學習、不斷提升,進階才是王道!

分享給大家的資料包括高級架構技術進階腦圖Android開發面試專題資料,還有高級進階架構資料包括但不限於【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】希望能幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也是可以分享給身邊好友一起學習的!

資料免費領取方式:轉發+轉發+轉發關注後,私信關鍵詞【資料】即可獲取免費領取方式!

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到並且領到資料!

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

5. 他們都被困在未來

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

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

前Google技術主管:程序員五大雷區,請你一定要避開

圖片來源:unsplash.com/@k8_iv

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

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


最後

漫漫Android開發之路,你我只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!

這邊我整理了一些資料,把它拿出來分享給大家,一方面是希望能夠幫助大家提高,一方面也是警醒自己,要不斷學習、不斷提升,進階才是王道!

分享給大家的資料包括高級架構技術進階腦圖Android開發面試專題資料,還有高級進階架構資料包括但不限於【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】希望能幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也是可以分享給身邊好友一起學習的!

資料免費領取方式:轉發+轉發+轉發關注後,私信關鍵詞【資料】即可獲取免費領取方式!

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到並且領到資料!

前Google技術主管:程序員五大雷區,請你一定要避開

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

5. 他們都被困在未來

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

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

前Google技術主管:程序員五大雷區,請你一定要避開

圖片來源:unsplash.com/@k8_iv

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

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


最後

漫漫Android開發之路,你我只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!

這邊我整理了一些資料,把它拿出來分享給大家,一方面是希望能夠幫助大家提高,一方面也是警醒自己,要不斷學習、不斷提升,進階才是王道!

分享給大家的資料包括高級架構技術進階腦圖Android開發面試專題資料,還有高級進階架構資料包括但不限於【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】希望能幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也是可以分享給身邊好友一起學習的!

資料免費領取方式:轉發+轉發+轉發關注後,私信關鍵詞【資料】即可獲取免費領取方式!

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到並且領到資料!

前Google技術主管:程序員五大雷區,請你一定要避開

前Google技術主管:程序員五大雷區,請你一定要避開

"


前Google技術主管:程序員五大雷區,請你一定要避開

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

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

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

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

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

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

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

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

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

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

前Google技術主管:程序員五大雷區,請你一定要避開


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

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

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

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

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

5. 他們都被困在未來

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

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

前Google技術主管:程序員五大雷區,請你一定要避開

圖片來源:unsplash.com/@k8_iv

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

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


最後

漫漫Android開發之路,你我只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!

這邊我整理了一些資料,把它拿出來分享給大家,一方面是希望能夠幫助大家提高,一方面也是警醒自己,要不斷學習、不斷提升,進階才是王道!

分享給大家的資料包括高級架構技術進階腦圖Android開發面試專題資料,還有高級進階架構資料包括但不限於【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】希望能幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也是可以分享給身邊好友一起學習的!

資料免費領取方式:轉發+轉發+轉發關注後,私信關鍵詞【資料】即可獲取免費領取方式!

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到並且領到資料!

前Google技術主管:程序員五大雷區,請你一定要避開

前Google技術主管:程序員五大雷區,請你一定要避開

前Google技術主管:程序員五大雷區,請你一定要避開

"

相關推薦

推薦中...