編程初學(xué)者如何使用搜索引擎

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

如果你在學(xué)習(xí)編程的過程中,以及平常的生活中,可以很自然地利用搜索引擎解決問題,那么你已經(jīng)達(dá)到本文所期望的目標(biāo)。否則,你應(yīng)當(dāng)認(rèn)識到:

正確地使用搜索引擎是學(xué)習(xí)編程的必備技能

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

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

用 google 作為你的默認(rèn)搜索引擎

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

選擇合適的搜索關(guān)鍵詞

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

  • 用關(guān)鍵詞,而不是整個句子

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

  • 直接使用報錯信息搜索

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

  • 添加范圍限定的關(guān)鍵詞,縮小搜索范圍

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

  • 避免引入歧義

有的時候,你會發(fā)現(xiàn)你搜索的關(guān)鍵詞會導(dǎo)向一個被熱議的問題,但你確信這個問題并不是你想要的。這時候?qū)幙煞艞夁@個會導(dǎo)致歧義的關(guān)鍵詞。當(dāng)然還有另外的解決方法,稍后我會提到。
還有時候,歧義是因為你錯誤的推測而帶來,比如上個例子中的“python”導(dǎo)致查不到數(shù)據(jù)庫的問題。所以在搜索過程中,你需要根據(jù)情況調(diào)整你的關(guān)鍵詞。

  • 逐步修正關(guān)鍵詞

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

分辨搜索結(jié)果的質(zhì)量

最近一段時間,國內(nèi)某知名搜索引擎被眾人口誅筆伐,對于搜索結(jié)果的排名和誤導(dǎo)也是其中一條罪狀。雖然搜索編程相關(guān)的資料不太至于讓你上當(dāng)受騙,但搜索結(jié)果的質(zhì)量還是有可能影響到你的學(xué)習(xí)??赡苣阆螺d到的軟件不是官方正版,而是被植入了木馬病毒的版本。也可能你輕信了投放推廣的培訓(xùn)機(jī)構(gòu),去上了一個糟糕的培訓(xùn)課程。更多的情況是,搜索出的結(jié)果里,有很多無效的、重復(fù)的甚至錯誤的內(nèi)容,耽誤你的時間,誤導(dǎo)你的方向。

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

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

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

搜索引擎的高級技巧

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

  • 站內(nèi)搜索 site

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

就可以把搜索結(jié)果限定在知乎內(nèi)。對于一些沒有站內(nèi)搜索或站內(nèi)搜索不好的網(wǎng)站來說很有用。

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

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

可以得到精確匹配這段文字的結(jié)果,而不是把它們當(dāng)做多個關(guān)鍵詞來搜索。

  • 去除結(jié)果 -(減號)

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

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

  • 文件類型 filetype

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

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

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

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

Crossin的編程教室

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容