標籤:style blog http color 2014 art
最近收到一位研究生朋友的郵件,讓我想到自己研究生畢業之前,也曾有過很多的疑惑,希望得到過來人的解答。互連網不僅是我們最好的老師,同時也是最好的橋樑。我們都要感謝並善於利用它。
閑話不說,言歸正傳。郵件原文如下:
周前輩,您好
我是XXX研究生,我叫XXX。專業是資訊與通訊工程。現在研二,過了暑假馬上就研三了。我在CSDN上無意間看到您的一些文章,寫的很好,感觸很多。所以就一直在關注您!
下面我簡單說下我的情況,我本科和研究生到目前,還沒有工作過,也沒有實習過。這個暑假,我找了一個實習,是XXX公司的軟體測試實習生,因為看到XXX這個公司是一個很不錯的公司,再加上自己沒有過實習經驗,所以自己想去實踐下。
因為之前自己一直想著自己畢業後的工作方向是軟體開發,然後現在是找了個軟體測試的工作,所以自己有點矛盾,我想問下您對軟體開發和軟體測試的看法,網上找的很多都是複製的。我想聽聽前輩您真實的看法。自己身邊缺少您這樣的人,有的時候在工作方面的迷茫不知向誰請教。
還有就是今天我跟我導師說了我去實習的事,我導師同意了。但是他也說我的畢業論文方面的進展不能落下,暑假過後的得看到一些成果。自己想想,去實習後,肯定會影響畢業論文方面的進度,一想到畢業論文和實習之間的矛盾,我就有點心煩,矛盾起來,心裡不是滋味。但是這種心情又不能對身邊的人說。我導師的學生不多,我畢業論文的方向是映像取證,就我一個人在搞,而且導師自己也不懂,沒有接觸過,然後自己身邊的人也沒有做這個方向的,所以在做這個的時候沒有人討論請教,弄的比較艱難。所以,加上這些因素,我就有點煩。以及馬上就秋季校招了,得複習工作方面的一些東西,所以時間還是很緊張。感覺自己有多的事情啊,忙不過來似的。
希望能得到您中肯的建議,謝謝您的閱讀,辛苦了!
我的回覆如下:
學弟,你好!
感謝你對我的信任。我寫部落格的宗旨就是分享自己的經驗,表達自己的看法。只要大家能夠從中學到哪怕是一丁點的東西,我的目的也就達到了。
你叫我“前輩”,我愧不敢當,我只不過是比你早幾年工作而已,我也是在工作中慢慢地學到了一些東西。建議你叫我“學長”更好,呵呵。
從你發的郵件中,我得到了如下資訊:
(1) 你從上大學到現在沒有實習或工作中,這對於像我們這種理工科的學生來說,是一個找工作的劣勢,要盡量彌補。因為現在單位招人,都希望新人能夠很快上手,節約單位的成本,所以還是要求(雖然沒有在招聘廣告中寫出來)即使是應屆畢業生,也有實習或工作經驗。
(2) 你對於寫論文和找工作很是矛盾,不知道該如何選擇。確實,對於即將畢業的學生來說,心裡矛盾的地方還有很多,比如:是實習還是寫論文?是去做開發還是測試?是回家工作還是留在發達地區?等等。我也是過來人,其中的酸甜苦辣也很有體會。
(3) 你不知道軟體開發與測試的區別和聯絡是什嗎?你或許認為軟體測試沒有什麼技術含量,覺得搞軟體測試學不到什麼東西。
我總認為,事情一多的時候,每個人都不免會手忙腳亂,但我們做事應該把握重點,事也分輕重緩急。下面說一下我的看法:
(1) 對於是去實習還是在學校寫論文的問題,我認為從你目前的情況來看,盡量還是去實習為好。為什麼呢?因為你還是想畢業後就去工作,那麼有一個實習的經曆,對於找工作還是有一些協助的。至少你在自己的簡曆上,可以寫上自己到某某公司實習過,面試官問起來,也可以說上幾句。當然,希望你在實習的時候能夠認真工作,學到一些東西,那麼這些東西一定會在未來的某個時候幫你的忙的。既然是去實習,你就先不要在乎是開發還是測試了,我有很多同學實習的時候,也是做的測試,但最後也都找到開發相關的工作了。你不用擔心測試學不到東西。
(2) 對於寫論文的事情,如果你選擇出去實習了,那麼肯定要辛苦一點,平時下班之後多花點心思在論文上。根據我的經驗,研究生的畢業論文並不難寫,主要是如何找到創新點。對於找創新點的問題,請參考我的博文《寫大論文的一些注意事項(續):我是如何找到創新點的?》(http://blog.csdn.net/zhouzhaoxiong1227/article/details/6891966)。另外,你說“身邊的人也沒有做這個方向的”,那麼這個時候,你可以利用學校圖書館去下載一些經典的“映像取證”方面的小論文和大論文來看,總結一下別人是如何寫的?創新點是什嗎?你該如何著手來寫?等等。在寫大論文之後,你一定要多閱讀一些你研究方向相關的論文,並做好筆記(這個非常重要)。等你積累得多了,創新點自然就會有了,正所謂“滴水石穿”、“水到渠成”嘛。
(3) 有關軟體開發和軟體測試的區別和聯絡。我本人是做軟體開發的,但我也要對自己寫的程式進行測試。在我們公司,也有專門的測試人員。
軟體開發人員主要做這幾件事情:
1) 對軟體需求說明書進行評審,弄清楚要開發一個什麼樣的軟體。
2) 編寫軟體詳細設計、單元測試和整合測試規程文檔。軟體詳細設計文檔是最重要的文檔,在裡面,要寫清楚自己程式的流程、函數設計、異常保護考慮等。在動手寫程式之前,一定要將軟體詳細設計文檔寫好,等評審通過了再寫代碼。
3) 編寫代碼,用程式實現軟體的功能。很多人認為的軟體開發就是寫代碼,其實這是一種很狹隘的理解,寫代碼在整個開發流程中,只佔了很小的部分。
4) 程式寫好之後,開發人員要對它進行單元測試和整合測試(也叫自測),確保程式的正確性。這裡就出現了“測試”二字,但與軟體測試所做的“測試”是不同的,他們做的是“系統測試”。等自測通過之後,並且相關文檔也寫好之後,就可以提交程式版本,供測試人員進行相對專業的測試了。
軟體測試人員主要做這幾件事情:
1) 搭建測試環境。這個是很重要的,也是比較難的事情。什麼是“測試環境”呢?就是說,不管什麼軟體,都有個啟動並執行條件,如作業系統類型、參數設定及配套軟硬體設施等,這些統稱為“環境”。為了保證程式功能的正確性,要在軟體發布之前,盡量類比軟體實際的運行環境,這就是搭建測試環境時要做的事情。很多軟體在正式商用之後出問題,就在於測試的時候沒有還原現場的環境所致。
2) 對軟體進行系統測試並輸出測試報告。所謂系統測試,就是指將配套的所有軟體都運行起來,看一下所有的功能是否正常。當出現問題的時候,要及時和開發人員聯絡,以修正軟體缺陷。
3) 指導現場人員安裝軟體程式,並在必要的時候親自出差到現場去安裝軟體。因此,測試人員也可能會經常出差的。
軟體開發與測試人員要做的主要事情就是這些。總的說來,開發人員編寫的程式要比測試人員多很多,但“七十二行,行行出狀元”,這並不意味著測試就沒有前途,他們對整個系統的把握要比開發人員好一些。如果你做事比較細心,那麼去搞軟體測試也未嘗不可。
以上便是我個人的一點看法,請參考。希望你好好把握剩下的不長的在校時光,並找到滿意的工作。感謝你對我的信任,請繼續關注本人部落格。
周兆熊
2014-7-13
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,號:245924426,歡迎關注!)