1. 程式人生 > >考研學生應該知道:研究方向和開發技術

考研學生應該知道:研究方向和開發技術

應用 計算機軟件 blog 科研 移動應用 設計 嵌入 targe ack

我自己的一位大二學生,由參加ACM不安心。後來體會了應用的核心在算法,能在競賽中坐住了。但如今,又有新問題了。


  【來信】
  賀老師,我想問一下,假設打算考研,在這四年裏僅僅搞算法不搞應用,或者說僅僅是懂一點應用。這樣合適嗎。
  
  【回復】
  算法在計算機和軟件project中都非常重要,但不是所有。大學期間的學習,是專業教育中的基礎階段。其它的也要好好學。研究生開始。要鉆研詳細的研究方向,須要對專業全面的了解作為支撐。對於應用,能夠理解為要從事這方面的工作,但我覺得更關鍵的數據在於,為理解基礎理論提供一個介質。讓理論生動起來。感悟知道理論的價值。搞搞應用,讓學習生動起來。

立即大三了,能夠在一段時間內,專註某個技術。做個小應用,認真對待各門課的課程設計,這種學習也會更好玩一些。

不搞應用。或僅僅懂一點(不做是達不到懂一點的),遠不夠。
  
  【學生答復】
  老師解說的非常詳細 跟我的想法也有非常多類似之處。我也想做一些小的應用,練練手。老師你說的研究生開始鉆研詳細的研究方向是什麽呢,是詳細的開發技術嗎?
  
  【我的長文回復】
  這是一個非常好的問題。我發現我應該為你和廣大同學普及一下關於研究方向和開發技術方面的一些常識了。

  1 科學、技術、project

  科學、技術、project是工科學生常見的關鍵詞。

除了這三個詞,我還想增加管理。隨著工業(包含化工、建築等傳統工業,也包含IT類的新型工業)的發展,對科學、技術、project方面的管理日益重要。
  以下一段的闡述來自《逆襲大學——傳給IT學子的正能量》第2.3節“搞計算機的人幹什麽”的縮寫,你們班有同學買了,你能夠借閱深入了解。
  對於主修計算機類學科的學生,以及從其它途徑要進入到這個行業中的人員,學有所成之後要從事的本行業的工作範圍非常廣,卻須要放開我們的視野,在科學、project、技術和應用四大領域中搜索一番了。
  依照傳統的說法:

  • 從事科學的人是“發現者”,他們試圖發現自然、社會等方面存在的規律。
  • 從事技術工作的人是“創造者”,他們利用已發現的規律試圖創造新的物品、工具、方法來滿足人類的須要。
  • 從事project的人是“實現者”,以合理的成本建造或生產穩定可靠的結構或產品滿足大量人群的須要。

  • 從事應用的人是“推廣者”,將project師創造的產品。普及到須要的地方,為社會大眾服務。
  從科學的角度講。計算是一項體現人類高度智慧的活動,計算機器是一種人造工具,故而計算機科學研究的並非自然現象,而是一類非自然結構的內在規律。

每一個科學學科都有其所謂的“終極”問題,計算機學科的終極問題是“什麽能夠被自己主動地計算?”。
  project和技術的關系有些復雜。

技術是人在改造自然、改造社會,以及改造自我的過程中所用到的一切手段、方法的總和。技術人員是創造者。是開發、發現這些手段和方法的人。project師作為制造者、實現者。與發現者、創造者有非常大的不同。他們的工作目標就是產品,要為用戶負責。在一定的制度與規範約束下開展合作。技術對project起著支撐作用。project的立項必須要在技術可行性分析的前提下開展。
  最後說到應用。依照CC2004中對計算機學科中劃分的方向,信息系統和信息技術兩個方向劃分為應用型。信息系統方向的任務是負責建立和維護信息系統。這是讓計算機技術和project直接發揮作用的環節,是信息化社會的基本保障。

從事“信息技術”應用,是要在各個不同的專業領域內用計算機去實現特定的計算需求。


  科學、技術、project和應用不僅須要不同的知識和技能背景,更重要的是他們具有不同的思維方式和工作模式。在不追求成為一個通才的前提下。搞清楚這裏的區別,明白作為一個“搞計算機的人”。要做什麽樣的選擇。
  在《逆》書第5.2節“我們要什麽樣的知識和能力結構?”中。又講:
  計算學科,是研究計算機的設計、制造和進行信息處理等的理論、原則、方法和技術的學科。包含了科學、project和技術:計算科學側重於研究現象揭示規律。計算技術則側重於研制計算機和使用計算機進行信息處理的方法和技術手段。計算機project利用相關的方法和技術,生產出產品。這三方面互為依托。相互推進。計算科學中的研究成果轉化為了技術。而計算技術的發展促進了計算科學研究的深入。用計算技術指導project實踐,而project實踐的發展轉而作用於技術進步。因此,計算學科就是這樣一門科學性與project性並重的學科。其理論與實踐也經常緊密地結合在一起。

計算機要解決現實世界中的各種問題,模型構建和測試、評價,須要採用的是科學研究的方法。而設計和構建軟硬件系統的過程,則屬於project範疇,採用project學的方法。


  2 研究方向

  在了解了上面的背景之後。要知道對計算學科(包含了計算機科學、技術、軟件project等相關專業),談“研究”。研究內容包含計算科學,以及環繞著產品的開發技術、project、執行維護當中的問題,以搞清楚問題。並提出解決方式為主要目標;而“開發”,則意味著為了做出產品,讓產品更好地執行所做的更直接的工作。


  所以在研究生培養階段,要在專業以下分研究方向,高校教師和科研單位的研究人員,也有研究方向,企業裏的高級技術人員,也有研究方向。
  舉例說明,“計算機科學與技術”以下再細分“計算機系統結構”、“計算機軟件與理論”、“計算機應用技術”三個二級學科。這是我們常說的研究生招生的專業。是由國家規定的。而研究方向的設定非常靈活,由招生學校自己確定。

以下是從網上搜索得到的描寫敘述(應該是某校介紹其研究方向的材料,見《計算機專業研究方向詳細解釋》):
  (1)計算機應用技術
  研究方向:計算機網絡、實時計算機應用、CIMS、計算機圖形學、並行計算、網絡信息安全、數據庫、情感計算、 數據挖掘、分布式計算、知識project、計算機視覺、自己主動推理、機器學習、草圖理解、網絡性能分析與協議設計、網絡管理與安全、計算機圖形學、信息可視化、基於 GPU的高性能計算、復雜系統(應急、物流、海洋)領域project、基於SOA的空間信息共享與業務協同、語義搜索引擎、自然語言處理、機器翻譯、搜索引擎、空中交通信息系統與控制、民航信息與決策支持系統、智能交通系統理論與技術等。


  專業特點:計算機應用技術是針對社會與各種企事業單位的信息化需求。通過對計算機軟硬件與網絡技術的選擇、應用和集成,對信息系統進行需求分析、規劃和設計,提供與實施技術與解決方式。創建優化的信息系統,並對其執行實行有效的技術維護和管理的學科。
  培養這方面人才所涉及的知識面包含:數學與信息技術基礎、程序設計基礎、系統平臺技術、計算機網絡、信息管理與安全、人機交互、集成程序開發、系統架構與集成、Web與數字媒體技術、project實施、職業操守等。培養目標是為企事業單位和政府機構提供首席信息官及承擔信息化建設核心任務的人才,並提供為IT企業提供系統分析人才。


  (2)計算機軟件與理論
  研究方向:計算理論、算法理論; 軟件project、中間件、智能軟件、計算環境;並行計算、網格計算、普及計算;password學、信息安全、數據理論;圖形圖象算法、可視化方法;人工智能應用基礎;理論計算機科學其它方向
  專業特點:計算機軟件與理論專業涉及計算機科學與技術的基本理論和方法。強調計算、算法、軟件、設計等概念,基本的領域包含計算理論、算法與復雜性、程序設計語言、軟件設計與理論、數據庫系統、人工智能、操作系統與編譯理論、信息安全理論與方法、圖形學與可視化計算、以網絡為中心的計算等。
  就業方向:本專業培養的研究生具有堅實的計算機科學與技術的理論基礎,全面掌握計算機軟件的理論方法,以及軟件project、信息系統、並行計算、普及計算等等的軟件系統開發技術。能非常好地勝任高等院校、科研院所、大型企事業單位、高新技術產業等的教學、科研、系統設計、 產品開發、應用系統集成等工作。
  (3)計算機系統結構
  研究方向:分布式計算機系統、計算機網絡系統與全球個人計算系統、真實感圖形生成與虛擬現實技術
  專業特點:計算機系統結構(原名計算機組織與系統結構)專業全面研究各種類型的計算機系統(從單機到網絡)的構 成、硬件與軟件的聯系與功能匹配、計算機系統性能評價與改進等。該專業的研究課題涉及高性能處理機系統結構、多機系統、並行計算與分布式計算系統、計算機系統性能評價、VLSL設計、容錯計算技術、計算機接口技術、計算機網絡系統與通信系統、移動計算、全球個人計算系統等。
  就業方向:本專業培養的研究生具有堅實的計算機科學與技術的理論基礎。全面掌握計算機系統結構、計算機project、網絡project、嵌入式系統等的應用開發技術、能非常好地勝任高等院校、科研院所、大型企事業單位、高新技術產業等的教學、科研、系統設計、產品開發、應用系統集成等工作。

  3 開發技術

  開發技術,是為了做出產品,讓產品更好地執行所須要的技術手段。
  廣義地講。上面所提的各個研究方向中,都包含著開發技術的成份。

所謂研究,並不全是所謂純理論。這種理論沒有生命力。

不少的研究。直接針對的,就是要制造出產品來。在制造產品的過程中,關鍵的科學問題和技術難點。須要的是“研究”,而在制造出樣品的過程,那就是開發,須要開發技術的支撐。開發技術,本身也能夠是研究方向,當中的門道,須要專業技術人員去掌握和拓展。
  在廣大的本科學生中間,對開發技術的範疇往往是狹義化了,將開發技術限定為是終於實現產品的時候所用的詳細技術。

比如談到社交網絡。研究人員腦中會想到這種網絡中蘊涵著如何的規律;高級技術人員關心的是。海量的數據和用戶同一時候訪問,瓶頸問題如何解決,這裏有開發技術的成份;在我身邊的不少同學。關心的是用PHP開發Web應用,還是用Android開發出移動應用,這也是開發技術。


  想與更直觀些的土木project做一個對照。在project設計階段,考慮採用什麽樣的結構、計算受力,目標在於設計出project圖紙的活動,須要開發技術;在設計方案的約束下進行施工,須要施工技術;而一線的建築工人,鋼筋工、木工、泥水工、外架工、水電工。他們終於實現project任務。我們也常說須要技術,當中技能的成份很多其它一些。


  講這些。是想引出一個話題,我們面對IT行業,和傳統的project行業有區別。開發技術和施工技術以及實施技能之間的區分淡化了。在《逆》書第5.2節“我們要什麽樣的知識和能力結構?”中還講:
  在傳統工業領域,產品設計和產品制造、生產之間的形態有比較大的區別,在生產鏈的不同環節須要的人員在知識結構方面區別較大。

比方土木project、規劃、勘測、設計、施工、養護等技術和研究工作。往往由性質不同的單位實施。但在計算學科中,非常多時候學科的理論、技術和project之間的界限十分模糊。理論探索、技術開發和project應用之間的周期非常短,實驗室產品和終於投放市場的產品之間差點兒沒有太大的區別。很多產品,尤其是軟件產品,一經開發、測試完畢,就能夠通過復制或者通過在線的方式進行銷售。計算機領域,科學與project素養兼具的人才也更常見。科學家和project師之間有比較明顯的分工,但也有少數人既是科學家,也是十分出色的project師。非常多頂尖的公司,如谷歌公司,鼓舞研究人員的成果在自己的主導下進行開發,高速變為產品,極大地縮短了新產品問世的周期,表現出的是一種強大的競爭力。
  傳統行業中的好project師,能夠完畢高級的設計工作。而一下工地,一進車間,幹工人的活也不遜色。作為一個IT行業的高素養人才。須要具備能完畢各層次工作的能力。

  4 對計算機類專業大學生的建議

  對本科畢業生而言。能夠在諸多詳細的開發技術中能“有一手”。包含各種語言(C/C++/Java/Python)、各種應用技術(如桌面應用、Web開發、移動開發、網絡project、執行維護、系統測試等),是基本的要求,這是大多數的人在就業時能夠向人出示的名片,也是不少在入職後起步做的0基礎技術工作中,能夠直接使到技術。這能夠歸結為專業技能能的層面。
  大學中設置的課程,除了相應“通識教育”的部分外,專業基礎課和專業課,終於的落腳點就在這些技術上。

不要由於那些課程的形態與終於的技術呈現的形態不同就忽視它們。比如,程序猿終於的工作是代碼,而學習和研究算法。其表現形態卻不是代碼。而算法在編程中的重要性。是不須要多說的事。這是大學中奠定技術基礎的任務。


  而立誌在學術上往前要走一走,想將自己塑造成高級研究人員和技術人員的同學。上面的兩項要求僅僅是基礎。進一步知道一些關於研究方向的事。在報考研究生的決策之前能夠據此定方向、定學校、定導師,不要再反復高考報誌願時的盲目。這也是一件須要做的事了。




==================== 迂者 賀利堅 CSDN博客專欄=================
|== IT學子成長指導專欄 專欄文章的分類文件夾(不定期更新) ==|
|== C++ 課堂在線專欄  賀利堅課程教學鏈接(分課程年級) ==|
|== 我寫的書——《逆襲大學——傳給IT學子的正能量》    ==|
===== 為IT菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 =====


  

考研學生應該知道:研究方向和開發技術