編程初學者如何使用搜索引擎

或許你會認為這篇文章的內容極為基礎。事實上,我也是這么覺得的。但從很多同學的留言以及QQ群中的討論來看,還是有必要簡單地科普一下,分享我的一點“搜索”經驗。

如果你在學習編程的過程中,以及平常的生活中,可以很自然地利用搜索引擎解決問題,那么你已經達到本文所期望的目標。否則,你應當認識到:

正確地使用搜索引擎是學習編程的必備技能

現在是互聯網的時代,學習的方式已經同過去完全不同。二十年前你想去學習一門新技能,只能通過問人、圖書館查資料、買書、上學習班等現在被稱之為“線下”的方式。后來,搜索引擎在一定程度上改變了整個世界的運作方式。如今你遇到問題,第一反應不是去用搜索引擎,而仍然選擇問人,那我只能善意地認為你是個“復古”的人。

當然可能更多時候是,你用了一下搜索引擎,但是沒得到你想要的結果,于是你又只好去問人。這種情況,你就需要一點搜索引擎使用技巧和意識:

用 google 作為你的默認搜索引擎

google 是目前這個星球上最好用的搜索引擎,沒有之一。按理說,在開放的互聯網上,有一個最好用的產品,你沒有理由不去用它,而要勉強于其他拙劣的替代產品。然而因為一些眾所周知的不宜在公開場合討論的原因,你可能不得不選擇一些名聲不那么好的搜索引擎。
所以,如果你立志成為一名程序員,那么為了更好地get“搜索”這項必備技能,首先還得獲取另一項不宜在公開場合討論的技能。這就不是我們今天要討論的了。

選擇合適的搜索關鍵詞

提出一個好問題,本身就對解決這個問題起了很大的幫助。選擇搜索關鍵詞也是一樣。如果你只是用“我安裝python為什么不成功”、“運行python的時候報錯”這樣空泛的大白話去搜索,天知道這要怎么解決……

  • 用關鍵詞,而不是整個句子

雖然現在的搜索引擎已經在語義分析和分詞上做得相當成熟了,但還是建議用關鍵詞來描述你的問題,這樣可以使你的問題更加具體和精準。通常,用空格分割的1~3個關鍵詞,可以比較得到比較好的搜索結果。

  • 直接使用報錯信息搜索

如果你是在為你的程序無法運行而尋找解決方案,那么直接使用報錯提示信息進行搜索是最好的選擇。一般來說,代碼異常,都會輸出異常的類型和位置,而應用軟件的錯誤甚至還會提供對應的錯誤碼,以便于定位和解決問題。用這些信息去搜索,比你用自然語言描述錯誤現象要精準幾百倍。

  • 添加范圍限定的關鍵詞,縮小搜索范圍

比如你要搜索python相關的一個問題,那么在你的關鍵詞里加上python會好過直接搜索你的具體問題。比如你想了解Requests模塊的具體用法,如果不加上python,則很難找到你要的信息。更進一步,如果你清楚你的問題是django方面的,那么直接加上django關鍵字會比加python更有效。但要注意,你得分清你的問題屬于哪個范圍。如果是因為你的數據庫和你操作系統不兼容而導致的問題,你卻一直用python關鍵字進行搜索,那就跑偏了。

  • 避免引入歧義

有的時候,你會發現你搜索的關鍵詞會導向一個被熱議的問題,但你確信這個問題并不是你想要的。這時候寧可放棄這個會導致歧義的關鍵詞。當然還有另外的解決方法,稍后我會提到。
還有時候,歧義是因為你錯誤的推測而帶來,比如上個例子中的“python”導致查不到數據庫的問題。所以在搜索過程中,你需要根據情況調整你的關鍵詞。

  • 逐步修正關鍵詞

復雜的問題往往無法一蹴而就地解決。搜索的過程也是一個反復思考的過程,需要通過已有的結果推斷和修正,最終達到目標。

分辨搜索結果的質量

最近一段時間,國內某知名搜索引擎被眾人口誅筆伐,對于搜索結果的排名和誤導也是其中一條罪狀。雖然搜索編程相關的資料不太至于讓你上當受騙,但搜索結果的質量還是有可能影響到你的學習。可能你下載到的軟件不是官方正版,而是被植入了木馬病毒的版本。也可能你輕信了投放推廣的培訓機構,去上了一個糟糕的培訓課程。更多的情況是,搜索出的結果里,有很多無效的、重復的甚至錯誤的內容,耽誤你的時間,誤導你的方向。

鑒于此,如果你無法選擇更好的搜索引擎,那我只能建議你,認真分辨搜索結果的質量。要對搜索結果保持懷疑的態度,不要只迷信排名靠前的結果,它們可能是推廣(注意點看,一般搜索引擎都有標注),也可能是做過一些排名優化,或者僅僅是運氣好排到了前面。下載軟件包盡量去官方的網站,查閱資料盡量選擇官方的文檔。另外,獨立技術博客的質量要高于那種掛滿小廣告的資源站。

對于編程方面的問題來說,還有種選擇是直接去相關的網站進行搜索。這里強烈推薦又一個程序員的必備工具:StackOverflow。多次有人問我,英語不好能不能編程。我的回答是,可以,但你會錯過很多好東西。比如這時候,你就只能去用中文同類網站。有個SegmentFault屬于國內做得不錯的,但在內容上肯定無法與StackOverflow相提并論。

另外,知乎也是個可以搜索問題的去處,但一般是偏向評價性質的問題,而非具體的技術問題。

搜索引擎的高級技巧

大多數搜索引擎,除了直接搜索關鍵字,都還會提供一些高級功能,常用的包括:

  • 站內搜索 site

示例:在搜索框中搜索
python site:http://zhihu.com

就可以把搜索結果限定在知乎內。對于一些沒有站內搜索或站內搜索不好的網站來說很有用。

  • 完全匹配 ""(雙引號)

示例:在搜索框中搜索
"matching query does not exist"

可以得到精確匹配這段文字的結果,而不是把它們當做多個關鍵詞來搜索。

  • 去除結果 -(減號)

示例:在搜索框中搜索
django -unchained

單純搜索django,會得到一部分同名電影《Django Unchained》的結果。通過減號可以去除包含unchained的結果。注意減號前面必須有空格,后面必須沒空格。

  • 文件類型 filetype

示例:在搜索框中搜索
python filetype:pdf

得到的結果都是pdf類型的。這對于搜索文檔或者ppt很有幫助。

百度現在將時間、文件類型、站點三項過濾加在了搜索結果的上方,這點我覺得還是不錯的,畢竟大多數人不會像程序員一樣習慣使用代碼和符號語言。

最后,對于需要寫論文的同學來說,還有個不能不去的地方就是
http://scholar.google.com
同樣,如果你又沒法好好使用它,要找替代品。那我真心不想告訴你還有個
http://xueshu.baidu.com
因為我試過了,這上面連我自己的論文都搜不到!

Crossin的編程教室

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容