致研究者的一封信 Duane A. Bailey
通過一點有條理的組織,研究工作可以變得更令人愉快,更富有成效。不幸的是,對很多計算機科學(xué)家而言,研究技巧的獲得是通過經(jīng)驗,而不是通過正式訓(xùn)練。本文概述了一些如何組織研究工作的建議。大多數(shù)建議對本科生也是有用的。斜體表示是針對研究生,職業(yè)研究者和教師的。希望本文能有所幫助。
關(guān)于我的建議
成功的計算機科學(xué)研究牽涉到很多方面的協(xié)調(diào)。為了使你花在研究上的時間盡可能的有成效,有趣味,我收集了一些你可能會發(fā)現(xiàn)有用的“組織方面的提示”。花一些時間來閱讀這些提示。一些提示是極為顯然的(另一些則是很困難的!!),但是都有改進你的研究事業(yè)的潛力。
閱讀是基礎(chǔ)
發(fā)現(xiàn)并且閱讀相關(guān)的著作是好的研究的基礎(chǔ)。如果在你的研究領(lǐng)域,你是一位新手,可能你只熟悉教科書上的內(nèi)容。你可以從 ACM Guide to Computing Literature[3] 和 Computing Reviews[2] 這兩個重要的發(fā)現(xiàn)相關(guān)參考書目的資源入手。當你開始研究你的題目時,是從一個較短的基礎(chǔ)讀物的書目開始的。作為一個研究者,你必須發(fā)展這一相關(guān)著作的書目,并且不斷找到新的閱讀材料。你將會發(fā)現(xiàn)其他人錯過的有用的參考書目。
持續(xù)不斷的閱讀。雖然背景知識的閱讀是任何研究工作的最初任務(wù),但是重要的參考文獻經(jīng)常較后才出現(xiàn),尤其是如果研究的重心改變了的話。你務(wù)必識別出那些對你的研究領(lǐng)域有重要作用的資料,并且你閱讀期刊的速度能跟上期刊發(fā)行的速度。一個月只需花兩三個小時就能瀏覽一遍最新的論文。(雖然對會議錄的審閱不象對期刊那樣嚴格,但是會議錄在快速發(fā)表研究結(jié)果方面起著重要的作用。)因為計算機科學(xué)研究更新速度很快,所以及時閱讀最近的技術(shù)文獻是至關(guān)重要的。
仔細的閱讀一些文章。粗略的瀏覽能識別出與你當前的研究有關(guān)的材料。當發(fā)現(xiàn)一篇論文對你的研究有所幫助時,更加詳細的考慮這篇論文是很重要的。閱讀論文時,需要考慮以下三方面:
這一研究對你的工作有什么貢獻?
這一貢獻和你以前遇到的文獻是怎樣的關(guān)系?
在這篇論文中,作者引用了哪些重要的參考文獻?
這些問題看起來似乎是顯然的、基本的,但是沒有理由不問這些問題。
對每一篇你認為和你的研究工作相關(guān)的文章做摘要。摘要有助于向別人快速的介紹工作。如果你將來不得不再閱讀這些文章,以前寫的摘要就提供了一種“自助”機制。在研究工作中,做摘要(對你的或者他人的文章)是一項通常的任務(wù);言簡意賅的寫摘要是一門藝術(shù)。
閱讀完一篇寫得很好的文章后,考慮它表達的方式。它可能組織得很好,或者可能用了縝密考慮過的例子來強調(diào)重要的概念。
什么使得這篇文章容易閱讀?
文章提供了什么樣的詳細程度?
使用什么例子來論證了重要的概念?
哪些問題未被回答?
結(jié)論可以推廣嗎?
因為我們是通過實例學(xué)習(xí)的,所以標記那些寫得特別好的文章是很重要的。
不幸的是,技術(shù)文獻經(jīng)常寫得比較晦澀。有時,和你的指導(dǎo)老師或者對此也感興趣的同事一起閱讀一篇文章會是頗有裨益的。這樣,進展速度可能會較慢,但最終一篇寫得好的文章的潛力會被實現(xiàn),你對文章的理解也會增進。
在較大的系,非正式的研討班或“期刊俱樂部”提供了一個理由,讓研究者們每周集會,討論論文。要集中于一個主題(如這學(xué)期的內(nèi)存回收),但是當一個共同的興趣發(fā)展起來時,也允許偏題。在擁擠的日程表中,這些非正式的每周會議為那些否則可能會被扔在一邊的研究工作保留了時間。
寫作是根本
好的寫作是科學(xué)研究的唯一持久的方法。當口頭報告已被人遺忘,程序已被清除,很久以后,寫下的文章仍然保留有重要的概念。所以,你應(yīng)該盡可能早的開始寫下你的研究結(jié)果。雖然實驗是重要的,但如果沒有仔細記錄下來的話,所有的努力都是白費。
仔細的寫作。當你不知如何下筆時,請使用簡單的寫作風(fēng)格。如果你是個生手,或者不常寫作,那么你關(guān)心的是磨礪你的寫作技巧。如果你夠幸運,你閱讀的文章里就會有在你這一領(lǐng)域成功的寫作的范例。通常說來,有效的文章只需要一遍的閱讀就能傳達重要的論點。這些文章還會討論有趣的例子。當以數(shù)學(xué)公式或者代碼的方式直接給出技術(shù)細節(jié)時,它們都不能代替英語的說明。以能夠既正確又簡明的傳達信息的文風(fēng)來寫作是比較困難的。當你對你使用的文風(fēng)不確信的時候,重新閱讀一篇你喜歡的文章,同時注意把它的文風(fēng)特性結(jié)合進你的寫作。
保持寫日志。在日志中,寫下參考書目,提出疑問,描述問題和它們的解決方案。保持記錄實驗和實驗結(jié)果。就象實驗室科學(xué)家們所知道的那樣,日志是組織你的研究工作的一個簡單工具,日志也是你所做的進展的寶貴記錄。
堅持對相關(guān)文獻中的結(jié)論做摘要。如果你預(yù)計你將會正式報告你的研究(始終對此保持樂觀!),那么對你的讀者而言,把你的工作和其他人的工作比較、定位是有用處的。重新考慮相關(guān)研究也能提醒你那些重要的參考文獻,并且把你的目標和你的研究領(lǐng)域內(nèi)其他人的目標有機的結(jié)合起來。因為這一摘要文檔需要經(jīng)常被編輯,它應(yīng)以電子稿的方式存儲。(BIBTEX[10]是一個組織參考書目信息的較好的系統(tǒng),它還提供了和其他人交換參考書目的方便的機制。)
寫下一些小的項目。寫下的是一兩頁關(guān)于某一主題的正式提出的構(gòu)思。當構(gòu)思不允許被表達出來,在腦子里徘徊時,它們就逐漸變得畸形、混亂。這些記述幫助磨礪你的寫作能力,組織那些自發(fā)的想法。當學(xué)生們希望得到研究項目時,這些能迅速被找到的記下的構(gòu)思就大有用處了
保留一部分時間來好好寫作。花在寫作上的一小時是考慮問題的一小時,而不是和計算機格斗的一小時。你必須離開那些令人分心的事,集中你的努力,專心記錄工作。象規(guī)則的練習(xí)那樣,你必須做它,并且你會慢慢喜歡它。
和其他人一起工作
對很多人來說,成功來自于和其他人一起工作。和他人分享構(gòu)思,并且讓構(gòu)思在一個組的環(huán)境下發(fā)展是很重要的。(在小的系里,這可能是成問題的—尤其如果你是在一個孤立的領(lǐng)域內(nèi),但合作仍然是重要的。)不管什么時候,只要可能,和你的指導(dǎo)老師或者研究伙伴討論你的想法。你可能認為你的想法不值一提,但是不管怎樣,你應(yīng)當嘗試一下。讓談話繼續(xù)!大多數(shù)研究者都樂于參加富有成效的討論。
遵循一個規(guī)則的會議時間表。如果看起來似乎“沒有什么可以討論”,這本身就是一個重要的討論主題。不要輕易略過或者取消會議,因為這會成為一個不可逆轉(zhuǎn)的先例。如果你和你的討論組失去了聯(lián)系,你應(yīng)該主動重新建立聯(lián)系。不太可能他們會主動來找到你,而且共同的興趣會隨著時間而衰減。
會議提供了集中討論主題的同步點。會議上會產(chǎn)生重要的見解,所以花一些時間來寫下這些想法(帶上你的日志!)并且復(fù)印分發(fā)它們。這些非正式的“會議記錄”幫助在各次討論之間維持前后聯(lián)系,并且記錄下做出的決定。改頭換面的重復(fù)老的內(nèi)容通常是在浪費時間。
仔細考慮批評。因為別人的評論是科學(xué)研究過程中完整不可分的一個組成部分,所以總是有你的研究被批評的時候。不要被批評意見所觸怒,而是應(yīng)該把它作為指導(dǎo)方針,使得你的論點更有效。同樣的,當批評別人的工作時,使得你的意見富有建設(shè)性是很重要的;那些沒有益助的意見就應(yīng)該被忽視。
報告并不容易
在任何嚴肅的研究工作中,你都會需要做報告。好的報告需要相當多的準備,所以盡早開始。幻燈片應(yīng)該是清晰的,沒有任何無關(guān)緊要的東西(包括代碼)。幻燈片中應(yīng)該包含有能說明問題的例子,但例子的詳細程度應(yīng)該對你的聽眾適合。幻燈片應(yīng)該相互關(guān)聯(lián),共同證明你的貢獻。
對你的報告進行排練并且計時。沒有準備的報告是極為顯而易見的,并且通常會導(dǎo)致原本愿意接受新思想的聽眾對你的報告發(fā)起攻擊。仔細組織并且排練你的報告,這樣當你面對沒有預(yù)料到的提問時,就有更好的準備。
項目
計算機科學(xué)的研究經(jīng)常導(dǎo)致一個需要編程的“項目”。務(wù)必記住編程不是計算機科學(xué)研究。對于大多數(shù)計算機科學(xué)家而言,編程純粹只是做實驗的方法。象任何實驗一樣,編程也需要預(yù)先仔細計劃:
* 建立目標。 知道你的目標,并且毫不分散注意力的接近它。列出一些表明進展的重大事件,并且努力實現(xiàn)它們。如果你不能簡練的闡明目標,那么你就應(yīng)該停止,重新考慮這個項目的動機。
* 考慮簡單。 設(shè)計你的項目,使得它們能夠在合理的時間內(nèi)被完成。一位熟練的程序員每個月產(chǎn)生的可靠代碼幾乎不超過一百行。因此,正確編寫一個需要上千行代碼的項目將花費掉一個熟練程序員兩三個學(xué)期或者更長的時間。所以,需要修剪實驗的大小,使它易于處理。修剪的時間是花得很值得的。大的項目并不必定產(chǎn)生大的結(jié)果。
* 建立原型。 原型的建立對大多數(shù)的項目是有益的。一個考慮得很好的原型能驗證假設(shè),測試摘要的價值,并且引起對于立不住腳的想法的重新考慮。盡管草草做一個“產(chǎn)品”幾乎沒有什么研究價值,但是通過實現(xiàn)部分功能的原型系統(tǒng),很多研究問題能夠被滿意的回答。
* 使用工具。 通過使用一些簡單的工具,程序員的效率得到了極大的提高。今天的程序員應(yīng)該意識到使用工具,例如anim[6],awk[1,4,5],HyperCard[8]和Mathematica[13]。 在窗口環(huán)境下,界面生成器能消除界面設(shè)計過程中很多讓人心煩意亂的瑣碎工作。當然,還有很多其他重要的、有用的工具,工具使用的主旨是清晰的:正確選擇工具能夠減少項目的整體工作量。找到工具,學(xué)習(xí)工具,并且使用工具。
* 與人合作。 當資源能夠被協(xié)調(diào)時,群組協(xié)作經(jīng)常比孤立的個人的奮斗更有成效。如果你和他人有共同的研究興趣,那么和他們聯(lián)系,與他們合作。毫無疑問,有些他們已經(jīng)解決的問題你正在考慮,他們的解決方案將會影響到你如何達到你們共有的目標。
合作的一個副作用是增加了紀律性。為了減少花在各方面同步上的精力,紀律是很必要的。對程序員來說,現(xiàn)在有各種各樣的資源可以用來管理分布的項目。例如,GNU項目發(fā)展了一套合適的代碼標準,并且程序可以恰當?shù)膹娭剖褂猛ㄓ玫木幋a風(fēng)格(例如縮進)。當多人共享對同一項目的存取時,就要考慮使用一個版本控制系統(tǒng)(例如SCCS或RCS)。
* 為項目結(jié)果寫文檔。 應(yīng)該為完成的項目編寫文檔。至少,項目的技術(shù)概述使得別人能夠了解到你的研究動機。文檔應(yīng)該描述問題,你的假設(shè),你的方法,和對你的項目結(jié)果的誠實的評價。當為軟件編寫文檔時,文檔要包括說明性的例子,指南,和任何從該軟件的使用中獲得的經(jīng)驗。寫得好的文檔極大的增加了項目的影響。
總結(jié)
最理想的是,你在研究工作中的參與,是整個流水線的一部分。你的工作基于他人的工作之上,并且產(chǎn)生一些有用的東西。作為一個變化迅速的領(lǐng)域的參與者,你有責(zé)任保持了解情況,設(shè)計并且完成合適的實驗來測試你的假設(shè),以所有研究成員都可以存取的方式來給出你的結(jié)果。這里給出的建議能夠幫助你完成這些責(zé)任。
總結(jié)
以上是生活随笔為你收集整理的致研究者的一封信 Duane A. Bailey的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一位大学教师对学生的建议:如何做好研究
- 下一篇: 关于学术价值的评价