發表一下自己的觀點:
首先,軟件工程是理的,所以理科的基礎絕對是非常重要的。這也是為什麽我一直強調數學/邏輯基礎一定要紮實。(具體的比如抽象思維,理解/分析能力)
如果符合以上條件,你就符合了具備一個SDE所需要的能力。
但是這是不夠的,如果要成為一個出色的SDE,而不是一個programing labor的話,你需要的是創造力。
有些人認為寫code久了,就是一個熟練活,這我是非常反對的。一個好的程序員,如果發現他需要重複的做同一件事情,他就會用他的創造力來減少重複勞動。這也是為什麽好的程序可以有大量的code或者pattern被reuse。很多時候debug也是需要程序員發揮想象力的。一個很複雜的bug出現,出色的程序員往往會提出一些假設,一步一步的排除自己的假設,isolate problem,最終確定問題並把他解決。另一方麵,一個business requirment 出現,如果設計出有效的係統來解決business/technical chanllenging,這些都需要creativity。
具備了以上的條件,我覺得你就具備了一個出色的SDE所需要的能力。
但是這還是不夠的,如果你把SDE作為一個career來發展,有一個最關鍵的因素:passion(激情)
在software develope當中,很多問題都不是一下能解決的。往往要耗費大量的時間進行分析,驗證。有時候會讓你覺得很枯燥很frustrated。一個充滿激情的程序員就不太會覺得枯燥,而且他會很enjoy當問題解決以後的那種成就感。沒有passion的,很可能就會放棄了。
所以,我認為,紮實的理科基礎+創造力+對coding的激情 是做SDE應該具備
我認為的software developer所應具備的: from jamesxu
所有跟帖:
• 說得很好。 理科基礎這裏是用算法來強調, 創造力和激情這些卻不容易考察。 -亂彈- ♂ (102 bytes) () 05/09/2009 postreply 09:09:42
• 俺倒覺得,需求分析,也就是做什麽最重要,然後是 -feicen- ♀ (109 bytes) () 05/09/2009 postreply 16:51:55
• Passion for find the best solution possible in a reasonable time -k19mliu- ♂ (0 bytes) () 05/10/2009 postreply 00:30:53
• 能不能解答這個問題,當計算機更升換代後以前辛辛苦苦寫的代碼 -bsmile- ♂ (115 bytes) () 05/13/2009 postreply 19:03:15
• 計算機更升換代,人也得換代更升。 -戲雨飛鷹- ♀ (252 bytes) () 05/14/2009 postreply 04:17:00
• 哈哈,去年的糧食今年都變大糞了,農民就不種地了? -liveincanada2- ♂ (576 bytes) () 10/15/2009 postreply 11:17:38
• I happen to read this, hehe, thanks! -Jamesxu- ♂ (0 bytes) () 08/14/2009 postreply 07:53:16