早在來MSRA 之前,我們就從上屆的師兄師姐那里聽說了高級軟件工程這門“神課”。說它神,是因為這門課將是我們接下來兩三個月里最重要,同時也是比較艱苦的一項任務;上過這門課的師兄師姐都表示這門課使他(她)們受益匪淺。具體來說,通過這門課的學習,我們將體驗到完整的軟件工程開發流程,並通過Pair Work以及Group Work開發一個完整的產品,並最終發布。
這將是我第一次接觸軟件工程的課程,躍躍欲試之際,不禁也有一些忐忑。作為一個EE專業的學生,我們接觸的編程知識相對計算機專業的同學仍然比較有限,學校的課程除了基本的編程知識,以及簡單的數據結構和數據庫就沒有后續了。盡管我本人一直對編程有着較為濃厚的興趣,也通過自學在學校的課程之外額外掌握了一些皮毛,但對於一個完整的軟件工程開發過程,仍然是知之甚少。
為了更好的做好准備,我訪問並閱讀了前兩屆師兄師姐的博客。在閱讀了師兄師姐們的軟件工程課程全記錄后,我對這門課的授課方式,難度有了進一步的了解,同時也更加期待這門課的到來。
通過閱讀學長們的記錄,我整理出了若干成功的經驗/失敗的教訓:
(1) 合理分配時間。在軟件工程這門課中,我們要經歷個人項目,結對項目和集體項目三個不同的項目,總體來說任務還是比較重的,再加上我們又分別在不同的組進行實習,因此有效的分配好時間就顯得十分重要;畢竟不管是Coding還是Debugging都要耗費不少的精力。
(2) 前期的調研和考察十分重要。看了不少師兄師姐的博客,有一個共同的教訓就是在進行項目編程時,一定要在Coding之前對整個項目計划有一個十分清晰的把握,盡量避免做到中途發現之前的想法不現實只能推倒重來,或是和用戶的需求嚴重不符之類的情況。這也是我最需要提高的地方,以前自己基本沒有編過什么特別完整的項目,經常就是稍微想一下就馬上投入coding,有時也會出現到了中途又重新改設計的情況,希望能夠通過這次的軟件工程課,在這方面有所提高吧。
(3) 團隊合作。一個 優秀的項目一定是建立在一個優秀的團隊的基礎上的。在我們團隊里,有來自三所學校(科大,哈工大,西電)的同學,分屬在不同的研究組;每個成員都有自己的個性和風格,可能有人比較依賴他人,也有人獨行俠,所以每個成員都必須一方面避免令隊友不適,另一方面也得改善自己的個性以適合團隊合作,這樣才能達到1+1>2的效果。
最后,在軟件工程開始之際,我想用MSRA里著名的一句話來勉勵自己,希望自己能在接下來三個月的軟件工程中有好的表現,並能真正學到軟件開發的精髓:
Work Hard, Play Harder!
