如果去問我的同學以后打算做什么,不少人會說不知道。而正因為不清楚,我們都會努力地學好每項知識,把基礎(chǔ)知識學得扎實些。一些人可能會從事科研工作,但更多人還是要走進企業(yè),成為軟件開發(fā)人員。奇怪的是,在這樣一個應用性較強的專業(yè)中,我很少看到有同學到企業(yè)中去了解或?qū)嵙暎@樣就很難知道企業(yè)到底需要什么樣的人才。有人簡單地相信學好主線課程就是正確的,有人則對基礎(chǔ)知識重視不足,這些都是因為他們不知道這些知識到底有什么用。沒有大目標的學習一定會是疲憊的。
獨立操作,卻沒學會共事
北大的同學都喜歡用一款叫Maze的P2P軟件下載資料,Maze正是我院的幾個研究生合作開發(fā)的。從創(chuàng)意到實現(xiàn),他們僅用了3個月,從這里我們可以看到團隊協(xié)作的力量,然而這樣的學生團隊卻并不多見。
在我們的學習環(huán)境里,更多講究個人能力的培養(yǎng),也就是面對問題能否通過個人力量獨立解決,最多也不過是鼓勵同學通過討論獲得思路,然后獨立實現(xiàn)。在這樣的氛圍中,幾個人在一起共同完成一個程序似乎是被嚴格禁止的。在實習中我了解到,工作后的軟件開發(fā)幾乎都是團隊協(xié)作的過程,這不僅需要個人編程能力,更需要與同事的溝通能力以及管理、組織能力。
不實戰(zhàn)就不知道差距
在幾段實習工作中,我發(fā)現(xiàn):這些企業(yè)架設(shè)的服務(wù)器是Linux或FreeBSD平臺的,使用的程序設(shè)計語言大多是Java;他們用JSP做網(wǎng)頁,要求軟件附有完整的幫助文檔;要求程序不光性能好,界面也要美觀……很多要求都與我們在校進行的“編程”有著明顯差異。
在學校方面,老師已經(jīng)開始有意識地強化訓練我們的說明文檔編制能力,也要求我們將程序?qū)懙每勺x性更好。但學校單方面的努力還遠遠不夠,站在自身的角度,如果希望能更加適應未來的工作環(huán)境,最好多去接觸社會,在鍛煉中擴展知識面。
Part3
走向優(yōu)秀路有多遠
——為程序員成長指路
John Kaster
Borland 軟件公司 (美國)首席工程師
擁有高水平的開發(fā)技術(shù),需要保持好奇心,而與此相關(guān)的超強吸收能力和創(chuàng)新精神也是必不可少。
Borland公司在軟件行業(yè)中耕耘了20 多年,對軟件開發(fā)行業(yè)有著深入了解。我們認為,作為軟件開發(fā)從業(yè)人員,要想實現(xiàn)個人成功,兩方面的素質(zhì)是不可或缺的:一方面,是對開發(fā)人員個人專業(yè)技術(shù)方面的要求。另一方面,是開發(fā)人員適應整個行業(yè)的發(fā)展特點,在團隊協(xié)作、整體軟件開發(fā)質(zhì)量管理和交付方面具備更高的認識和能力。
軟件開發(fā)是一個腦力非常集中的工作,這個行業(yè)的技術(shù)更新和發(fā)展非常迅速,開發(fā)人員想要了解技術(shù)的發(fā)展,跟上技術(shù)變化,擁有高水平的開發(fā)技術(shù),這當中要保持好奇心,而與此相關(guān)的超強吸收能力和創(chuàng)新精神也是必不可少。這會是在就業(yè)市場和未來的職業(yè)生涯中保持強勢競爭力的最佳手段。參加各種技術(shù)大會是一個很好的學習途徑,Borland 每年舉辦的 BorCon 大會就是這樣的平臺,讓大家進行技術(shù)交流、激發(fā)創(chuàng)新、把握新的技術(shù)方向。這個大會的技術(shù)性很強,內(nèi)容也非常深入。同時我們作為一個獨立的平臺廠商,能夠得到不同陣營的合作伙伴支持,在以往的 BorCon 大會上,像微軟、SUN 這些廠商都能走到臺前,與大家共同交流技術(shù)發(fā)展方向,這對開發(fā)人員來講是不可多得的學習機會。
對于第二方面的素質(zhì),我們認為,在目前的市場環(huán)境下,軟件要成為完整產(chǎn)品,技術(shù)只是一方面,同時還要求更高的大團隊協(xié)作能力,整體項目過程管理等考慮。而這些能力需要具備相應功能的產(chǎn)品和技術(shù)來支持,只有這些都具備了,軟件開發(fā)才能真正有效。Borland已經(jīng)形成了從產(chǎn)品技術(shù)到咨詢服務(wù)的完整系統(tǒng),使得很多軟件公司大大提升整體運作方式。
對軟件開發(fā)人員來講,有一套完整的管理體系,或者管理平臺是對軟件項目的一個質(zhì)量保障,是按照時間表及時完成項目的一個保證,同時不會超預算,對于項目的方方面面的風險控制都是一個有效的保證。
程勇中國科學院計算機研究所
項目參與是能否把知識用到實處的重要環(huán)節(jié),從程序員開始,一直到更高層次,毫不例外,我們都是從實際項目中成長起來的。
成為合格的程序員顯然是軟件人才的最基本要求,很難想象連程序都寫不好還能開發(fā)出高質(zhì)量的軟件產(chǎn)品。對于程序員來說,要求一定能夠精通一門或兩門程序設(shè)計語言,請注意,要求是精通。對于在校學生來說,學習C/C++或Java這些開發(fā)語言較多,這都是比較基礎(chǔ)又必須熟練掌握的語言,但卻能夠利用這些語言開發(fā)出高質(zhì)量的方法和類;一般而言,學校也會開數(shù)據(jù)庫查詢語言SQL這門課,這在實際中應用很多,也是應該熟練掌握;如果學有余力,還能自學使用某種開發(fā)環(huán)境(如Visual Studio、Eclipse),學會調(diào)試程序、版本控制的話,當然就更好了??梢哉f這些是程序員入門的最基本要求。對于大學生來說,做到這些并不難。
如何提高編程能力呢?途徑無非只有兩個,多實踐,親自編寫程序,現(xiàn)在大學校園里程序抄襲成風,這就對自己很不負責任了;充分利用現(xiàn)有資源,包括書籍和網(wǎng)絡(luò)資源,《C++ Primer》、《The C programming Language》、《Java編程思想》、《Introduction to Algorithm》這幾本書都是我很喜歡的,而且也是很多同行證明的優(yōu)秀書籍,值得仔細閱讀,對快速提高編程水平一定會大有助益;此外,網(wǎng)上有很多程序員在一起交流學習的論壇,這些都是幫助自己快速成長的好去處。
系統(tǒng)分析和設(shè)計員作為更高層次的軟件人才,還要求對客觀世界及其關(guān)系具有深刻理解,并能統(tǒng)觀全局。系統(tǒng)分析員成長初期,理論學習極為重要,深入研讀《面向?qū)ο蟮南到y(tǒng)分析和設(shè)計》、《UML手冊》這些書籍有助于提升看待軟件系統(tǒng)的視角。而培養(yǎng)系統(tǒng)分析和設(shè)計員最有效的方式還是參與實際項目,畢竟沒有兩個系統(tǒng)完全相同,分析和設(shè)計經(jīng)驗具有更突出的作用。(n101)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。