1. 程式人生 > >軟體學院研究方向,對研究方向迷茫的同學一定要看(據說是一位北大軟院前輩寫的)

軟體學院研究方向,對研究方向迷茫的同學一定要看(據說是一位北大軟院前輩寫的)

               

軟體學院研究方向,對研究方向迷茫的同學一定要看(據說是一位北大軟院前輩寫的)
理想與規劃(軟體需求分析階段,確定我們要做什麼)

我覺得有相當多的新生對未來的理想還沒有規劃好,這也正常,因為有許多人是半路出家來到這裡的,他們沒有想過自己的未來會有這樣一種改變。大多數原來有計算機基礎的,看過我的貼子基本上已經心裡有數了。不管以前基礎如何,大家都要有個目標,比如說將來要嫁入微軟或者IBM這樣的豪門也好,或者是將來去華為、中興等國企做網路通訊也好,或

 
者去做ERP、嵌入式開發等,剛開始第一個學期目標最好定下來,然後上網去查這個目標需要你掌握哪些知識,需要哪些技能,你在學習過程中要加強這方面的學習投入。我個人感覺,剛開始這個工作是值得的,你現在收集的資訊越多,就越知道往哪個方向努力,選課和投入精力分配就越合理。如同軟體工程的需求定義階段,定義準確,很好的描述出軟體要實現的功能,才能最大限度滿足客戶的需要。這個階段找出問題是最容易解決的,不然假設你想做嵌入式應用軟體,卻又希望多學知識而選了質量工程、管理營銷、網路安全等,你去網上查一下,什麼專案什麼公司需要這樣的人才?這樣的結構很明顯是不合理的。這樣的選課很明顯是圖多圖全,想做全才,如果真是基礎特別好,也不是不可以,但如果到實習時發現自己沒有想象中那麼強就慘了,那時候想改可就難了。所以如果想多學知識,建議去聽一下第一堂課的介紹就可以了,知道那個課講什麼的,對將來有什麼意義就可以了,如果真是喜歡再決定是選還是繼續旁聽。一年的時間,不要分散得太厲害,因為這一年不僅要學理論,還有留有幾乎
11的時間來做實踐,這個實踐包括編碼和寫各種文件資料,所以規劃之前一定要做大量的查詢調研工作。我簡單舉個例子,如果你對網路與通訊很感興趣,去朗訊貝爾、CISCO、華為、中興等公司的網站上看看他們對實習生和新招人才的要求是什麼?網路與通訊涉及的領域也同樣很廣的,你要有一個思想準備,一年後去實習時,你用什麼去打動這些用人單位。當然,其實我們在校學的這些知識多數也都是基礎知識,不會直接滿足現在社會的具體應用的。舉個具體的例子,頭一陣子看到來我們學院招實習生的西門子,它對實習生的具體要求如下:

微碼開發實習生技能要求:

1.紮實的網路基礎知識;

2.熟悉路由交換原理及TCP/IP協議棧;

3.

熟悉Intel IXP2800的硬體結構;

4.熟悉Intel IXP2800 的微碼程式設計;

5.熟練使用IntelIXA整合開發環境;

6.熟悉ME之間的並行處理、微碼流水線處理、執行緒之間的訊號機制;

7.熟練使用各種RingQueue的操作;

8.有較強的微碼開發的能力;

9.C 語言開發能力。

這個實習生技能要求我覺得網路與通訊和嵌入式以及積體電路方向的都可以參考一下,這些要求,我想除非是事先準備好否則你肯定達不到要求,因為INTEL IXP2800整個軟硬體開發環境成本極高,我們學院現在還沒有,但它的開發原理,和一些基礎知識,你在一年之內是可以學好的,而且如果提前半年左右時間好好準備一下,這個實習崗位應該就會屬於你。如果實習中你努力實踐,那麼等實習結束後,你掌握的知識足夠保證你找到月薪不少於6K的工作。也就是說,在實習之前你們就要做好提前量,找到自己的理想,提前規劃好。不要等一年時間過去了,到了去找實習單位的時候再去查人家對你的要求,因為那時候你想改變已經來不及了。這和軟體工程的思維是一樣的,專案快結束時發現問題改動太難了,所以儘可能在需求分析階段把問題都找到並解決好。而且這個階段還是可行性研究的階段,有些人在實習時才發現,自己當初的軟院生涯規劃根本就不可行,這是大家都不希望看到的。而且這個時候的查詢調研工作,還會讓你發現,你是不是真的喜歡你要選擇的方向,還會幫助你有計劃的選擇課程。比如,你將來想去銀行證券類做電子金融,那你就要先去這些網站上查一下,人家的要求,你會發現,人家一般都要求熟悉UNIX/LINUX系統,如果用到大機還會要求COBOL語言,可能會要求某種資料庫,還會要求軟體測試專業,因為金融類軟體出錯要命,所以對軟體測試也是比較重視的。然後你再想針對自己如何找到切入點,如果剛好有親戚朋友在某個給銀行做系統的公司,那就好辦多了,提前一年和人家打個招呼,看人家缺什麼,如果缺測試也沒關係,你到時候可以去先從測試入手,等和工作人員熟悉了,就可以把整個專案都瞭解一下。如果你本科時還有會計、財經的背景,加上外語又極好,二年後,搞不好進麥肯錫之類的諮詢公司也是有可能的。

1.
注重實踐,不要搞笑(設計階段,確定怎麼做) 
需求分析明確的基礎上,我們就要開始進入實現階段了,這個時候我們要有一顆平常心,不浮燥,不怕困難,儘自己最大的可能學習。同時還要切記李素科老師的教導電腦科學是非常重視實踐能力的,光學習理論知識,不重視動手能力的培養而又號稱自己在學習電腦科學,簡直是在搞笑。因為你的方向已經明確,這時候的選擇就變得容易得多了,你會選擇對你未來希望發展方向相關的課程,比如還是以剛才說的西門子招實習生為例,你就會根據這個來選擇網路與通訊的課,還有嵌入式微處理器的課,因為INTEL IXP2800用了一個基於ARM CORE的微處理器做管理;因為這個專案用在未來移動通訊的基礎設施裡,可能你還會選移動通訊和INTERNET高階程式設計等相關課程,這樣有針對性的選擇,目標明確,找實習單位時才會一擊就中。當然有些人想去做大機,這個就比較難了,很有可能你在學校學的都不會是直接用得上的,不管你JAVAC++學得多好,面嚮物件的技術多精通,你會發現,COBOL語言與這些根本不是一個時代的東東。這樣的同學,你們在校期間要培養一種學習的能力,其實這種能力非常重要,很多同學將來都可能用上。根據我們實習的經驗,有許多人到了實習崗位,發現用人單位看重的只是你的學習理解能力,因為該實習專案根本就沒有可能在學校裡學到,還以傳真師兄為例(他的知名度如果提高,有我很大功勞)。他二年前(他是我們學院首屆學生)去斯倫貝謝的中國人民銀行信用卡專案組實習,斯倫貝謝只給他一週的時間看上G的英文文件資料和自學COBOL語言,那超過1G的文件裡幾乎全是英文文件,涉及到專案
 
的方方面面,你要知道專案大概怎麼回事,需要你學什麼東西等,然後一週之內會用COBOL寫程式碼,COBOL語言的書多少年前就停版了,想找有關資料要多難有多難。所以這就需要你自身的學習能力,同時還需要你溝通交流的能力,你要找一個專案組的比較好說話的員工多交流,讓人家給你些入門的指導等,讓自己儘快進入角色。所以這些需要的能力,你在一年的在校生活裡要注意培養,就是快速掌握新知識新技術的能力,還有就是團隊精神合作意識,學會溝通交流。這裡要注意,英文根本就不是對你的要求,是預設值,我們必須要習慣看英文技術文件,尤其是想去外企的。所以大家像選張德昭老師的課時會有感覺,剛開始讀英文資料很不習慣,但將來你必須習慣,IT業英語是預設語言。所以選張老師的課難是難,但收穫確實也大。我們是工程碩士,必然要有實踐,不停留在理論上,作業好好做,專案大家一起努力,這些很多都是真實的模仿現實工作中的場景的,對我們將來實習和工作有很大幫助,所以千萬不要搞笑!還有就是要有重點要有針對性要結合自身情況來實踐和選課,不要急功近利和隨波逐流,總有人問,現在用C++的多還是用JAVA的多(明顯隨波逐流),C++好學還是JAVA好學,哪個賺錢多呀?這都太急功近利了。比那些有意義嗎?在網路和嵌入式領域,C的使用量也是相當大的,關鍵是看你將來的發展領域,而不應該本末倒置。實踐的東東大家在自己的實踐中體會吧,每個人基礎都不一樣,自己安排好實踐量。

2.
找個適合的實習單位(軟體測試階段) 
通過需求分析,找到自己的方向和要做什麼;通過設計實踐階段,做了相應的準備工作;專案已經有了原型,現在該去實習單位測試一下了。經過一年的測試,你會進一步飛速成長,完善各種功能,查缺補露,向著高質量的軟體產品邁進。畢業找到理想的工作單位(專案完成,驗收階段)最後實習結束,寫一份詳細的測試報告,也就是論文了,通過後就畢業了。專案做得怎麼樣,最後由企業用人單位來驗收決定給你多少薪水,一個軟體專案就此暫告一段落。你的人生從此進入另一個階段,在此我們就不做過多討論,希望那時候各位回首,發現師兄寫的這些經驗談原來還是有些幫助,然後在BBS上和我打個招呼,我也就覺得沒白寫這些了。我相信能來我們軟微學院的同學都是非常優秀的,不管你以前什麼專業一定會找到和計算機軟體結合點的,請你試著用我所說的軟體工程的方法來規劃你在軟微學院的生活,看看是否會有幫助,我只是舉了些例子,沒有針對各種情況和各個專業背景來舉例,大家可以舉一反三,針對自己的情況試著去規劃一下,有什麼想法大家可以一起探討,多多溝通交流,希望大家都能夠早日成為這種有獨立思考和判斷能力的人.。終極版寫點什麼好呢?就寫點我個人和我聽到其他軟微學院老生的悲慘經歷,希望大家看清楚前面的路.其實也不一定算是彎路了,條條大道通羅馬,也許有了這些經歷後也會闖出一片更好的天地也說不定,但願給大家帶來點啟示就好了.李敖前幾天在清華演講說到,現代人挺可憐,通過電腦和網路可以獲得太多的知識,但如何分析判斷這些知識的價值和如何使用卻很讓人頭痛,所以我會盡量舉些不同的例子,希望大家自己好好分析判斷:

首先說說一年理論學習與實習的關係,以及對未來的作用.我們學院比較有特色的就是學習期間就比較重視與實際工作的不脫節,大家在上課時會模擬一些專案,會成立小組做專案,基本上和實際工作中的環境相似.所以我們在一年中要認真的對待這些專案,將來實習時很有可能會因為你這個專案做得好與實習專案相關而被實習公司相中.已經實習和正在找實習單位的同學都有這樣的體會,實習單位面試時一般會問你做過和這些專案,以及你在專案中的角色和體會.你至少要有一二個非常典型代表你實力的專案寫在簡歷裡,因為面試時先是看你技術功底,如果你把這二個專案講得很透,人家就會開始問你體會和對工作的看法,這就是看你的人格魅力了,主要靠你的性格和人品了.因為一個好的實習單位其實就是來招新人的,他們會培養你一年,如果你性格和人品非常令他們相信,他們才會花時間和金錢培養你,這樣你直接就有了就業的機會.但我發現許多同學直到實習時也沒想清楚到底要找個什麼樣的實習單位,投簡歷就是來一個投一個,沒什麼原則.寫的簡歷一看你也看不出來他將來到底想做什麼,你自己都不知道想做什麼,用人單位怎麼敢用你?當然,如果是什麼比較強的牛人可能會不太一樣,但牛歸牛,除非碰到能欣賞並且敢欣賞這種牛人的單位才行.因為現在有許多單位不喜歡清華北大的學生,就是有些牛人太牛了,做工作不踏實,高興幹就幹,不高興就走,沒有團隊精神,單打獨乾沒有配合意識,不服從管理無法融合到企業文化中去.所以大家應該在一年的學習期間注意這些問題,要打好技術基礎,也要想一想企業真正需要的是什麼樣的人才,為什麼需要這樣的人.一年在校有計劃有目標有針對性的學習,找一個較適合的實習單位,在實習期間進一步理論聯絡實際,多學我實踐,相信將來一定會找到一個理想的工作的.找實習單位其實是個很有意思的事,現在我們學院學生越來越多,實習單位要求也越來越高,所以大家還是提早準備.這個機會其實還是很多的,包括我有一個同學在北大高科實習的,他的實習單位竟然是他在公共汽車上找到的.他跟我說他本來親戚朋友幫他找了中科院下面的一個研究所去實習,但有一天他在公共汽車上碰到北大高科一個專案經理,結果聊聊天就讓他去北大高科實習了.還有的同學是因為在參加某些展會時認識了IT企業的朋友,然後大家談得來就有可能幫你找到一個不錯的實習單位.還有就是平時和在職生上課時,多和他們溝通交流,一方面學習企業真正需要的知識是什麼,一方面也是為了將來讓人家幫你介紹一個實習機會啦,而且就算他介紹不了去他所在的公司,沒準別的你想去實習的公司的人和他熟,到時候找實習單位,介紹一下,誰不順水推舟給個人情呀?

一般來說,本科基礎不是特別好的,選擇嵌入式和網路通訊方向時要謹慎,要想到將來去面試時,人家會對你要求更高一些.所以如果你要是真的感興趣,那麼選了之後就要拼命的學習了,一定要做出一二個特別棒的專案,這樣在一年後實習面試時才能讓考官相信你.電子服務和軟體開發相對來說可能難度要小一點,入門會容易些,而且市場前景大,就業機會多,建議在校期間考個JAVAORACLE的認證,這樣找實習單位或者工作都比較有底.前面說得都是經驗性的東東,但是大家不要忘記前提是你要達到實習公司要求的技術基礎底線,如果達不到,那實習公司要了你去人家完不成任務也不行啊.所以這一年一定要好好學習,努力實踐,我想多數人都是基礎一般,不好不壞的多吧,趕快給自己一個目標,然後精通一樣將來對你找實習單位非常關鍵的技術,別的技術你可以去一般性瞭解,因為IT業涉及面太廣了,我覺得大家一定要有一個專的地方,別的瞭解越多當然越好,但是必須要有一個讓你找到實習單位和工作的技術做保證.平時做作業和做專案問題,許多同學包括我自己,做作業和專案時不是很認真,有時候懶著寫就參考別人的,自己不動腦.這是很不好的習慣,實習一年了,發現許多以前不認真不動腦做的作業和專案,收穫不多,而且現實中想用時又無法應用,特別後悔當時為什麼不好好做一下這個作業和專案呢!大家一定要盡最大努力去自己完成自己的作業和專案分配的任務,這樣才會有所收穫,才會在實習時更有感覺.有些同學在實習中遇到在以前做專案時遇到過的同類問題,很容易解決了,而且還可以幫助所在的實習公司做更多事,實習單位怎麼會不重用這樣的人呢?還有,我不建議大家去自己不喜歡的實習單位,我們這屆有一些去的實習單位不理想,實習結束覺得學到什麼東西,然後去找工作又無法找到理想的工作單位,實習經驗基本上無用,這樣就帶來了許多麻煩.所以請大家切記,學習和實習是緊密聯絡在一起的,這些又與你將來就業聯絡在一起的,一定要提早計劃好.最後再說一下不愛寫程式碼,不想幹程式設計師的怎麼辦?我其實就是這樣的人,現在做技術支援,叫現場應用工程師(FAE).這個職業也不錯,你學瞭如何程式設計,但是不用自己去開發專案,基本上是管售前售後的技術人員,你只需要精通你負責的這塊就好了.然後把開發方法介紹給客戶,客戶開發過程中有問題,你幫助解決.我水平低,所以勉強能做這個,這行如果做得好,在外企是不錯的.我一個同學在菲利浦做FAE,就是現場應用工程師,一個月一萬的薪水.而且經驗多了,以後還可以往管理崗位走,也是個不錯的選擇.還有我再舉個例子,我不提人名和單位,因為人家可能不願意我說出來.我知道有許多學生特別不喜歡程式設計序,這樣的路可能會和我們熟悉的不一樣,但不是沒出路.我知道一二個,平時也不寫程式,也不喜歡寫程式,但是能力還是很強的,我相信能來我們學院的人能力都不會差的;人家英語特別好,而且做PPT本事比較強,表達能力好,外表也不錯,這樣的做銷售或者售前是很好的條件,結果聽說現在人家都在頂級IT企業做行政和銷售方面的.我們學院的IT協會我不瞭解,我想他們可能也是這樣的目標吧,將來會不會出幾個這樣的同學也說不準呢.不過,這個要靠機遇和實力的,而且相信機會要比什麼軟體開發和嵌入式什麼的少一些.所以希望不喜歡技術和程式的同學還是不要太多.我是一直認為,學到的知識不是最重要的,最關鍵的是能力上的提高.IT業知識更新最快了,電腦和網路讓這個世界成了知識爆炸的時代,我們只是人,只有人腦,記不住這麼多這麼大量的資訊,所以最關鍵的是能力上的提高.這種能力包括學習能力,溝通交流能力,還有尋找快樂和創造幸福的能力。
3.
關於方向

1、網路與通訊
我們學院開的專業都是最火的,網路與通訊其實很多地方和嵌入式系統有結合點,比如路由器和交換機其實都是嵌入式系統,連到網路的嵌入式裝置也越來越多,也正因如此,網路與通訊已經成為最熱門的專業了。這個世界早晚會被一網打盡的,網內的PC機根本就算不上主流,隨著可移動計算的嵌入式裝置的大量使用,微軟、GOOGLE、雅虎等企業也都擠進了網路與通訊領域。網路與通訊我甚至覺得已經可以算是基礎課的一部分了,當然,你並不需要學網路與通訊的全部課程,因為底層細節基本上不需要開發人員全部瞭解,但李素科老師的INTERNET高階程式設計應該選,而且這門課也算到軟體開發裡了。學了那門課,保證受益匪淺,不過基礎不好的學那個會比較吃力。現在網路比較火的有VOIPP2P相關的一些東東,做到底層就會和嵌入式有聯絡了;現在網路上的多媒體相關應用也很火,因為未來網路要傳大量多媒體資訊;而且網路安全又是網路發展的頭等大事,所以網路與通訊又可以和網路安全結合。關鍵在於選課時要注意各學科交叉,各位要想好自己將來要從事的大概行業,然後就要重點突破了。這個網和人間的情網很相似,你或我,男或女,都逃不過的。此(情)網恢恢,疏而不露,你準備好觸網了嗎?未來世界的所有軟體幾乎都要有聯網功能,通過網路升級或者做些更新什麼的,搞軟體不懂網路肯定是不可思議的事情,所以網路與通訊的知識多少也要了解一些才行,但具體瞭解深度要看你們自己的需要了。網路已經和英語一樣成為基礎性東東了,我個人建議至少要看一看那部經典的小電影,就是TCP/IP打包的那部,把網路世界非常生動的描繪了一下,看了覺得特爽。再說一下張德昭老師和高培春老師吧,他們都是業界的名人,高老師是非常受人尊敬的,我一正在實習的朋友曾經和我說,當他去貝爾面試時,當面試考官得知他聽過幾門高老師的課時,臉上露出羨慕的表情。張老師屬於大師級人物,可能我們這些剛入行的小生有時候不太理解她,她很多年前就是貝爾大牛,有些網路教科書上的技術就是在她帶領下研究出來的,這是我們這種沒入門的人無法想像的。所以她上課時我們會覺得有些難以領會,請大家要做好心理準備。 
2
、電子服務

我感覺主要是企業計算,主要是指企業資訊系統,ERP軟體(企業資源規劃)、CRM軟體(客戶關係管理)、SCM軟體(供應鏈管理,即物流軟體),銀行證券軟體,財務軟體,電子商務/政務(包括各種網站),資料倉庫,資料探勘,商務智慧等企業資訊管理系統。 
這個領域對人才的需求顯然永遠是數量最大的,因為這是計算機應用最多的領域搞這方面的好處是

(1)
人才需求量極大