搜尋資源

搜尋資源 #

在這個旅程中,搜尋將會是一個很重要的能力。這份教材的篇幅無法涵蓋所有的學問,但透過網路能夠取得豐富的學習資源。而這些資源,很難全部讀完,因此得透過搜尋找出其中想要的資訊。懂得搜尋,就不再受到教材的侷限,而可以自己找出學習的路。而有時遇到一些難解的問題時,身邊的人都沒有經驗,你也沒有時間仔細鑽研,但這個世界這麼大,很可能有另一個人遇過同樣的問題,並把解法寫在網路中的一篇文章。此時只要能找到那篇文章,眼前的難題就能迎刃而解。

搜尋引擎 #

想要尋找網路上的文章,最常使用的就是搜尋引擎,所謂的搜尋引擎,指的是可以讓妳尋找網路上資源的一種系統,例如:

  • Google (en)

    萬用搜尋引擎,若想搜尋英文資料,使用英文版 Google 通常能得到較好的結果。尤其程式語言的資訊在網路上多以英文居多,Google 為必備網站之一。

  • Google 中文

    中文版 Google,搜尋中文資料時可以使用。

  • Bing

    微軟開發的搜尋引擎。

  • Yandex

    俄國的搜尋引擎。有時因為一些原因,可能使用不同國家的搜尋引擎比較容易找到想要的結果,這時就能試試看。

更多的搜尋引擎列表可參考:〈List of Search Engines〉

搜尋引擎的最基本原理,是使用輸入的「關鍵字」和文件中的文字配對,以找出最相關的結果。所以,通常如果要找出一個問題的答案,應該要輸入答案文件中可能出現的字,而不是問題本身。例如,如果你想問的問題是:「要怎麼學程式設計?」,那麼你可能要用兩個關鍵字來搜尋:「程式設計 教學」。如果想問的問題是:「交大校長是誰?」,那可能就得用:「交大 校長」來搜尋。

當然,有時候網路上會有人在討論區問了一個問題和其他人討論,並一起研究不同的答案。此時搜尋問題的標題,也有可能找到這種討論文章以及其中的答案。例如搜尋「我應該讀理科嗎」。就很有可能會找到在人生中徬徨的朋友發問,和眾人熱心的回答。

由於搜尋技巧的優劣,常會決定能不能快速找到有用的資源,但搜尋技巧的培養,有部份只有透過經常搜尋才會慢慢找到感覺。所以在本教材的不同課題中,會明確指出想搜尋某些議題時可以用哪些關鍵字,並用「」標示,直接連結到搜尋引擎,筆者也鼓勵讀者可以多嘗試不同的關鍵字組合,看看會有什麼結果。

更詳細的教學可以搜尋「搜尋技巧」,以及下列文章,本章節接下來則會列舉幾個情境當實際的例子,其中如果有看不懂的名詞不要在意,重點在於使用的方法。

搜尋教學資源 #

要搜尋教學,通常只要配合幾個關鍵字就可以達到目的。例如,你想學習 Python (一種程式語言),則可嘗試以下關鍵字:

又例如你想學習 Deep Learning,的話,也可試試以下關鍵字:

其他例子可見網友的討論串:〈快速入門 XXX 領域〉

搜尋問題解法 #

有時在編譯或執行程式時會發生錯誤,此時你多半會得到錯誤訊息,透過這錯誤訊息,我們往往可以在網路上找到他的成因以及解法。但在做這種搜尋時,最重要的就是關鍵字的選法了。透過輸入重要的關鍵字,能過濾出真正想要的資訊。例如以下是編譯 C++ 程式時可能會遇到的錯誤訊息,其中 source.cpp:10 是檔名和行數,不太可能跟其他人相同,因此不該用來搜尋:

source.cpp:10: warning: ignoring return value of ‘int scanf(const char*, …)’, declared with attribute warn_unused_result ignoring return value of scanf

搜尋時,應該要擷取重要關鍵字:

網路上也有像 Stack Overflow 等專門發問與回答的網站。除了可以直接到這種網站搜尋外,其實也可以直接把他們的名稱加到關鍵字中,例如用「foreign key sqlite stack overflow」、「最短路徑 yahoo 知識」之類的關鍵字,直接將 stack overflow、yahoo 知識等等插入搜尋之中。

搜尋程式碼 #

有時對程式的實做細節較不熟悉,想要參考前人作法,要怎麼辦呢?透過網路搜尋,一樣可以找到公開的程式碼。以 SHA-1 這種演算法為例,你可以嘗試以下關鍵字:

另一種方法則是直接在程式碼網站上搜尋,例如像是 GitHub 。例如假設你想找 GAN 這種模型的實做方式,則可以搜尋:

搜尋個人性質的討論與文檔 #

之前的例子多半是搜尋原本就是放在人流較多的網路上分享給大家的文章,然而有些比較個人性質的文章,就會藏在一些特定的網站上,此時就要用更精細的定位來搜尋了。比如說,如果你想搜尋有沒有人跟你一樣有該不該讀資工系的煩惱,或者該選那家公司就業的討論。雖然直接搜尋也可以,但如果已知 PTT 之類的網站常有人發問,那麼就可針對這些特殊網站搜尋:

又比如說,你想撰寫履歷、推薦信、求學動機等等的文件。這些個人文件其實不少人自願放在網路上可以參考,然而這些文件四散各地,直接搜尋很難找的齊全。此時最先可以試試 GitHub 上是否有人放出來:

除此之外,也不少學生、教授會自主把這種文件放在自己的個人網頁上,此時特別針對一些學校的個人網頁空間搜尋,往往能達到意料之外的效果:

其中 filetype 是用來指定搜尋的檔案副檔名。除了國外的學校以外,國內的學校也可試試。

社群網站搜尋 #

假如你在求職時想要搜尋某些公司的評價,有時無法直接透過 Google 搜尋到,而必須進入社群網站裡搜尋。一些值得一試的例子包含了:

  • Facebook:在 Facebook 裡搜尋有時可以找到別人在談論某個特定公司。
  • Glassdoor:尋找公司評價的網站
  • GoodJob:國內尋找公司評價的網站
  • 求職天眼通:國內尋找公司評價的網站
  • Quora

資工系:搜尋習題解答 #

如果你自學資工系的課本,寫完了習題卻無法確定答案,可能讓學習效果打折。若你想搜尋課本的解答,可以透過課本名稱加上「solutions」、「解答」等關鍵字,如以《Introduction to Algorithms》這本書為例,若搜尋「Introduction to Algorithms solutions」,就會發現官方釋出的習題解答。

有時官方並不會釋出習題解答,這時也沒有關係。如果是英文書的話,通常在全球都有使用。這時很可能有某些人會把習題解答放在網站上,我們只要想辦法找到這些解答就行了。這種情況下,我們通常得針對特定題目進行搜尋:

整句搜尋 #

想找特定題目,最重要的就是找出題目獨特的文字,以演算法概論中的題目為例:

Let X[1..n] and Y[1..n] be two arrays, each containing n numbers already in sorted order. Give an O(lg n)-time algorithm to find the median of all 2n elements in arrays X and Y.

我們可以以其中較有特色的句子,配合 Google 的完全符合,用「“find the median of all 2n elements in arrays X and Y”」(注意加上雙引號)來搜尋,便可輕易發現一模一樣的題目以及參考解答。有時候,在題目中會有一些特殊符號,導致用完全符合來搜尋可能不會有好結果。這時可以刪除特殊符號後,用一般搜尋方式:

Let X and Y be two arrays each containing n numbers already

英文?中文? #

資訊領域裡有很多資料都以英文撰成。若是透過中文搜尋沒有好結果時,往往可以用英文找出答案。例如在計算機網路概論中,有一個跟 Ethernet 和 ARP 有關的實驗,其開頭語如下:

本次實驗主要是讓同學瞭解 Ethernet Protocol 和 ARP protocol,透過 Wireshark 的使用,來觀察兩個 protocol 的詳細資訊。

若是使用之前的整句技巧來搜尋,恐怕很難找到結果。但若將中文語句刪除,並增添「lab」關鍵字,以「Ethernet Protocol ARP protocol Wireshark lab」來作搜尋,輕易的便找到英文版的 lab 以及其解答。

誠然,視題材的不同,也不盡然都得透過英文搜尋,有時甚至可能在簡體中文網站較易發現。讀者若無法輕易判斷時,可多試幾次不同找法。

但小心:有時你會發現找到的解答(即使是官方釋出)是錯誤的!無論如何,都得用自己的思考小心判斷。

搜尋考古題 #

考古題的取得通常是同學相傳或者老師公佈,但在少數的情況裡,其實透過搜尋還是能取得考古題的,舉例來說:

使用 site 是要限定在交大網域裡搜尋。在這兩個例子裡,妳都可以找到官方釋出的考古題。

其他網站 #

  • Google Books

    可以全文搜尋世界上的各種書籍,有時會找到意想不到的結果。缺點是無法觀看書本全文。

  • Google Scholar

    可以搜尋各種學術論文。

  • Wikipedia

    線上百科全書,由網友編撰。你可以發現每個條目都寫的非常詳細,有時甚至比書籍寫的更為完整。

  • The Free Dictionary

    整合各大字典,查定義和解釋時可以使用。

  • Amazon.com

    線上書店,使用她倒不見得是為了購書。在 amazon.com 上,每本書幾乎都有豐富的讀者評價,加上相關書籍的推薦,使得 Amazon 變成一個協助我們判斷該使用哪本書的參考來源。