華文網

軟體發展人員如何提高自己的專業技術

閱讀優秀代碼是提高開發人員修為的一種捷徑。

1、“學歷代表過去、能力代表現在、學習力代表未來。”其實這是一個來自國外教育領域的一個研究結果。相信工作過幾年、十幾年的朋友對這個道理有些體會吧。但我相信這一點也很重要:“重要的道理明白太晚將抱憾終生!”所以放在每一條,讓剛剛畢業的朋友們早點看到哈!

2、軟體發展團隊中,技術不是萬能的,但沒有技術是萬萬不能的!在技術型團隊中,技術與人品同等重要,

當然長相也比較重要哈,尤其在MM比較多的團隊中。在軟體專案團隊中,技術水準是受人重視和尊重的重要砝碼。無論你是做管理、系統分析、設計、編碼,還是產品管理、測試、文檔、實施、維護,多少你都要有技術基礎。算我孤陋寡聞,我還真沒有親眼看到過一個外行帶領一個軟體發展團隊成功地完成過軟體發展項目,哪怕就一個,也沒有看到。倒是曾經看到過一個“高學歷的牛人”(非技術型)帶一堆人做完過一個項目,
項目交付的第二天,項目組成員扔下一句“再也受不了啦!”四分五裂、各奔東西。那個專案的“成功度”大家可想而知了。

3、詳細制定自己軟體發展專業知識學習計畫,並注意及時修正和調整(軟體發展技術變化實在太快)。請牢記:“如果一個軟體發展人員在1、2年內都沒有更新過自己的知識,那麼,其實他已經不再屬於這個行業了。”不要告訴自己沒有時間。

來自時間管理領域的著名的“三八原則”告誡我們:另外的那8小時如何使用將決定你的人生成敗!本人自畢業以來,平均每天實際學習時間超過2小時。

4、書籍是人類進步的階梯,對軟體發展人員尤其如此。書籍是學習知識的最有效途徑,不要過多地指望在工作中能遇到“世外高人”,並不厭其煩地教你。對於花錢買書,我個人經驗是:千萬別買國內那幫人出的書!我買的那些傢伙出的書,

100%全部後悔了,無一本例外。更氣憤的是,這些書在二手市場的地攤上都很難賣掉。“擁有書籍並不表示擁有知識;擁有知識並不表示擁有技能;擁有技能並不表示擁有文化;擁有文化並不表示擁有智慧。”只有將書本變成的自己智慧,才算是真正擁有了它。

5、儘量提高自己的表達和溝通能力。良好的表達和溝通能力能在客戶不能清楚表達需求時,融入到客戶組織內部,

瞭解客戶的工作流程,與客戶共同更好地、更準確地定義和分析需求。此次調查中60.90%的被訪者認為溝通能力是程式師應具備的基本能力,但只有28.85%的程式師認為“表達能力”是程式師必備的基本能力。溝通固然很重要,但我們更應該進一步認識到準確表達自己的觀點和意見也是成功溝通的基礎之一。如果只“溝”而不“通”仍然是在浪費方面寶貴的時間。

6、應用多種方式瞭解需求。常用的方法有:問題分析法和建模分析法以及幾種方法的結合。比如在問題分析法中應用物件導向的思想,與客戶的員工談話,訪談首先要面向工作流程,面向任務,面向角色,也就是用物件導向的思想説明客戶理清思路。

7、不臆測需求。如果有專門的需求工程師,有一點要特別強調,就是在編碼過程中當需求不明確時,必須與專案經理或需求工程師及時溝通,程式師不能自作主張地猜測客戶的需求。

8、不過度承諾。很多銷售人員拿到專案,向客戶大包大攬,甚至完全不顧公司的現有開發能力向客戶承諾很多功能。在定義需求階段,一定要向客戶說明“什麼是我們能做的,什麼是我們應該做的,什麼是我們不能做的”。很多時候過度承諾導致了新功能無法實現的同時,原有功能也受到影響。

9、盡力構建並運行代碼。 這通常是一個簡單的步驟,就像你在看可運行的代碼(這和隨機代碼相反)。 不過,並非總是如此。通過構建和執行代碼,你能從中學到很多上層代碼結構。 說到工作代碼,你是否非常熟悉如何構建你的當前專案? 雖然構建通常非常複雜,但通過構建並生成可執行的代碼,你能學到很多。

10、不要只注重細節。 你要做的第一件事是,在你正閱讀的代碼中,找到代碼結構和風格的。 首先流覽一下代碼,盡力理解不同程式碼片段要做什麼。這會讓你熟整個代碼的上層結構,你也能領會到你正處理的代碼的一些構思(良好架構和義大利麵條等)。 這時候,你可以找到切入點(不管它是什麼,主函數、servlet或控制器等),並查看代碼如何在那裡分支。 不要在這上面花過多的時間,隨著你愈加熟悉代碼,你可以隨時回來查看。

11、確信自己理解所有結構。 除非你碰巧是所用程式設計語言的首席專家,否則該語言有些它能做的事你可能還不知道。當你在流覽代碼時,記下所有你或許不熟悉的結構。 如果有很多不熟悉的結構,你要做的下一步非常明顯。 如果你不知道代碼要做什麼,那你就走不了很遠。 即便只有幾個你不熟悉的結構,你應當深入查看。 你現在是在探索你所用程式設計語言中你以前不知道的東西,為此花幾個小時來閱讀代碼,我也非常樂意。

12、既然你對大多數結構已有很好瞭解,那現在是該做些隨機深入研究了。 就像步驟2,開始流覽代碼,當這次要挑選一些隨機函數或類,並開始逐行詳細查看。 這是硬仗開始的地方,但也是你要取得主要成功的地方。 這裡的構想,會形成你正在查看的代碼庫的思維模式。 也不要在這上面花過長的時間,但在繼續前行之前,你要盡力並極大吸收一些有內容的代碼塊。 這個步驟,你也可以隨時反復回過頭來,每次你都會瞭解更多的背景,並收穫更多。

13、健康工作

要想工作好,身體先練好。一個健康的成員才可能高效地工作。在Y Combinator有個理論,在產品發佈前,你應該專注並只專注兩件半事情,1開發+1跟用戶聊天+0.5鍛煉身體。而在產品發佈後,你應該專注並只專 注三件事情,0.5開發+1跟用戶聊天+1運營+0.5鍛煉身體。可見鍛煉身體的重要。我們團隊每個人基本每天都會有專門的運動時間,跑步、游泳,或者健身房,已然成了我們工作的一部分。

另外還有一點可以通過自身的學習來獲取一大進步。

究竟有哪些乾貨呢?

常用的方法有:問題分析法和建模分析法以及幾種方法的結合。比如在問題分析法中應用物件導向的思想,與客戶的員工談話,訪談首先要面向工作流程,面向任務,面向角色,也就是用物件導向的思想説明客戶理清思路。

7、不臆測需求。如果有專門的需求工程師,有一點要特別強調,就是在編碼過程中當需求不明確時,必須與專案經理或需求工程師及時溝通,程式師不能自作主張地猜測客戶的需求。

8、不過度承諾。很多銷售人員拿到專案,向客戶大包大攬,甚至完全不顧公司的現有開發能力向客戶承諾很多功能。在定義需求階段,一定要向客戶說明“什麼是我們能做的,什麼是我們應該做的,什麼是我們不能做的”。很多時候過度承諾導致了新功能無法實現的同時,原有功能也受到影響。

9、盡力構建並運行代碼。 這通常是一個簡單的步驟,就像你在看可運行的代碼(這和隨機代碼相反)。 不過,並非總是如此。通過構建和執行代碼,你能從中學到很多上層代碼結構。 說到工作代碼,你是否非常熟悉如何構建你的當前專案? 雖然構建通常非常複雜,但通過構建並生成可執行的代碼,你能學到很多。

10、不要只注重細節。 你要做的第一件事是,在你正閱讀的代碼中,找到代碼結構和風格的。 首先流覽一下代碼,盡力理解不同程式碼片段要做什麼。這會讓你熟整個代碼的上層結構,你也能領會到你正處理的代碼的一些構思(良好架構和義大利麵條等)。 這時候,你可以找到切入點(不管它是什麼,主函數、servlet或控制器等),並查看代碼如何在那裡分支。 不要在這上面花過多的時間,隨著你愈加熟悉代碼,你可以隨時回來查看。

11、確信自己理解所有結構。 除非你碰巧是所用程式設計語言的首席專家,否則該語言有些它能做的事你可能還不知道。當你在流覽代碼時,記下所有你或許不熟悉的結構。 如果有很多不熟悉的結構,你要做的下一步非常明顯。 如果你不知道代碼要做什麼,那你就走不了很遠。 即便只有幾個你不熟悉的結構,你應當深入查看。 你現在是在探索你所用程式設計語言中你以前不知道的東西,為此花幾個小時來閱讀代碼,我也非常樂意。

12、既然你對大多數結構已有很好瞭解,那現在是該做些隨機深入研究了。 就像步驟2,開始流覽代碼,當這次要挑選一些隨機函數或類,並開始逐行詳細查看。 這是硬仗開始的地方,但也是你要取得主要成功的地方。 這裡的構想,會形成你正在查看的代碼庫的思維模式。 也不要在這上面花過長的時間,但在繼續前行之前,你要盡力並極大吸收一些有內容的代碼塊。 這個步驟,你也可以隨時反復回過頭來,每次你都會瞭解更多的背景,並收穫更多。

13、健康工作

要想工作好,身體先練好。一個健康的成員才可能高效地工作。在Y Combinator有個理論,在產品發佈前,你應該專注並只專注兩件半事情,1開發+1跟用戶聊天+0.5鍛煉身體。而在產品發佈後,你應該專注並只專 注三件事情,0.5開發+1跟用戶聊天+1運營+0.5鍛煉身體。可見鍛煉身體的重要。我們團隊每個人基本每天都會有專門的運動時間,跑步、游泳,或者健身房,已然成了我們工作的一部分。

另外還有一點可以通過自身的學習來獲取一大進步。

究竟有哪些乾貨呢?