去年帶了幾個新人,越來越覺得軟件開發這行還是需要一定的"天份"的,其實每行都需要一定的"天份",每個人都有自己最為適合的行業,特別是技術行當而言,如果真的希望在軟件的技術領域有所發展的話,勤奮、吃苦的精神固然是必須的,但以下的幾點素質卻是基本的,而有些我覺得完全是靠天生的,或者后天小時候的努力才能培養出來的,如果不具備的話,我覺得這樣的人就不是很適合從事軟件技術行業:
1、邏輯思維能力
????? 這點非常非常的重要,而且我覺得這點在等到大學畢業后再培養真的非常難,從這點上去看就會發現數學對于軟件行業的人來說是非常重要的,為什么這么說呢,數學正是能表現出一個人邏輯思維和舉一反三能力的最好的考試,而邏輯思維和舉一反三剛好是軟件技術行業最為基礎和重要的兩點基本素質,為什么這么說呢?
??????軟件的開發其實和數學的解方程是個非常類似的過程,都是對某個問題求解,有些問題甚至完全不懂軟件開發其實也應該是能解決的,如果不懂具體的如何寫代碼的話頂多差的就是把解決問題的方法轉化為代碼而已,而這個培養起來我覺得并不是什么難事,這個只要多寫寫代碼就行了,舉一個簡單的例子,在培養新人的時候曾經出現過個這樣的問題:要生成一個九位的字符,字符由流水號構成,當不足九位的時候補足九位,例如1就形成000000001,9999就形成000009999,不需要寫代碼,只需能說明會怎么做就是了,我覺得具備了一定邏輯思維能力的人這樣的問題都是很簡單的。
??????在將來我自己面試新手的時候,這方面的面試需要重點加強,以前我忽略了對于這個方面的考量。
2、舉一反三能力
????? 舉一反三的能力對于軟件技術行業來說更是非常非常的重要,其實軟件開發日常的工作中通常你所做的東西都是有類似的東西的,只是會稍有變化,這個時候就需要具備舉一反三的能力。
??????這項能力在將來的面試中也需要重視,需要讓面試的人當時學習一個以前的未知領域,首先給面試的人員一個解決方案,然后將問題稍加改變,看看面試的人是否可以做出解決方案來。
3、自學、獨立解決問題的能力
??????自學、獨立解決問題的能力我覺得這是為什么一定要讀大學的原因,讀大學就是培養自學、獨立解決問題的能力的。
??????在做軟件開發的過程中,不論是新手、老手都會碰到各種各樣的問題,這個時候一定要學會有效的解決問題,在perl界有一篇給新手寫的解決問題方法的建議的文章非常的不錯,
http://www.perlchina.org/archive/archive.php?action=archive&page=6,建議做軟件開發行業的人應該都讀讀。
????? 個人比較推崇的解決問題的方法:
?????? 3.1、在時間較為充裕的時候,google--->看原理---->問身邊的人---->問IM上的人--->找相關的專業論壇---->學習相關的知識
??????? 3.2、在時間緊張的時候,問身邊的人---->問IM上的人--->google--->找相關的專業論壇---->看原理---->學習相關的知識
??????? 不過即使在時間緊張的時候,當時間閑下來后,都應該整理下問題的解決方案和學會隱藏在問題后的本質。
4、對軟件開發的興趣
????? 這點呢,還比較難說,因為新手來說無法判斷自己是否有興趣,很多人也許是向著軟件行業所謂的高薪而進入這個行業的,興趣而言,我覺得判斷的標準就是能否為了一個開發上的問題廢寢忘食,:)
??????另外一個方面來說,做軟件開發必然會面臨很多重復性質的工作,這個時候只有有興趣的人才會繼續的對技術堅持下去,才會繼續的去鉆研相關的技術,從而提升工作的效率、質量。
當然,除了上面說的幾點外,其實象承受壓力的能力、溝通交流能力、團隊合作能力、責任心、上進心等等都非常的重要,但這些能力我覺得相對而言是可以培養或用公司制度等方式來控制的,但以上說的4點基本素質我覺得非常的難培養,尤其是1、2、4這三種能力,對于希望一直從事軟件技術行業的人來說我覺得是否具備以上幾點非常的重要,否則還是早點轉行比較好,哈哈。