编程初学者如何使用搜索引擎

或许你会认为这篇文章的内容极为基础。事实上,我也是这么觉得的。但从很多同学的留言以及QQ群中的讨论来看,还是有必要简单地科普一下,分享我的一点“搜索”经验。

如果你在学习编程的过程中,以及平常的生活中,可以很自然地利用搜索引擎解决问题,那么你已经达到本文所期望的目标。否则,你应当认识到:

正确地使用搜索引擎是学习编程的必备技能

现在是互联网的时代,学习的方式已经同过去完全不同。二十年前你想去学习一门新技能,只能通过问人、图书馆查资料、买书、上学习班等现在被称之为“线下”的方式。后来,搜索引擎在一定程度上改变了整个世界的运作方式。如今你遇到问题,第一反应不是去用搜索引擎,而仍然选择问人,那我只能善意地认为你是个“复古”的人。

当然可能更多时候是,你用了一下搜索引擎,但是没得到你想要的结果,于是你又只好去问人。这种情况,你就需要一点搜索引擎使用技巧和意识:

用 google 作为你的默认搜索引擎

google 是目前这个星球上最好用的搜索引擎,没有之一。按理说,在开放的互联网上,有一个最好用的产品,你没有理由不去用它,而要勉强于其他拙劣的替代产品。然而因为一些众所周知的不宜在公开场合讨论的原因,你可能不得不选择一些名声不那么好的搜索引擎。

所以,如果你立志成为一名程序员,那么为了更好地get“搜索”这项必备技能,首先还得获取另一项不宜在公开场合讨论的技能。这就不是我们今天要讨论的了。

选择合适的搜索关键词

提出一个好问题,本身就对解决这个问题起了很大的帮助。选择搜索关键词也是一样。如果你只是用“我安装python为什么不成功”、“运行python的时候报错”这样空泛的大白话去搜索,天知道这要怎么解决……

  • 用关键词,而不是整个句子

虽然现在的搜索引擎已经在语义分析和分词上做得相当成熟了,但还是建议用关键词来描述你的问题,这样可以使你的问题更加具体和精准。通常,用空格分割的1~3个关键词,可以比较得到比较好的搜索结果。

  • 直接使用报错信息搜索

如果你是在为你的程序无法运行而寻找解决方案,那么直接使用报错提示信息进行搜索是最好的选择。一般来说,代码异常,都会输出异常的类型和位置,而应用软件的错误甚至还会提供对应的错误码,以便于定位和解决问题。用这些信息去搜索,比你用自然语言描述错误现象要精准几百倍。

  • 添加范围限定的关键词,缩小搜索范围

比如你要搜索python相关的一个问题,那么在你的关键词里加上python会好过直接搜索你的具体问题。比如你想了解Requests模块的具体用法,如果不加上python,则很难找到你要的信息。更进一步,如果你清楚你的问题是django方面的,那么直接加上django关键字会比加python更有效。但要注意,你得分清你的问题属于哪个范围。如果是因为你的数据库和你操作系统不兼容而导致的问题,你却一直用python关键字进行搜索,那就跑偏了。

  • 避免引入歧义

有的时候,你会发现你搜索的关键词会导向一个被热议的问题,但你确信这个问题并不是你想要的。这时候宁可放弃这个会导致歧义的关键词。当然还有另外的解决方法,稍后我会提到。

还有时候,歧义是因为你错误的推测而带来,比如上个例子中的“python”导致查不到数据库的问题。所以在搜索过程中,你需要根据情况调整你的关键词。

  • 逐步修正关键词

复杂的问题往往无法一蹴而就地解决。搜索的过程也是一个反复思考的过程,需要通过已有的结果推断和修正,最终达到目标。

分辨搜索结果的质量

最近一段时间,国内某知名搜索引擎被众人口诛笔伐,对于搜索结果的排名和误导也是其中一条罪状。虽然搜索编程相关的资料不太至于让你上当受骗,但搜索结果的质量还是有可能影响到你的学习。可能你下载到的软件不是官方正版,而是被植入了木马病毒的版本。也可能你轻信了投放推广的培训机构,去上了一个糟糕的培训课程。更多的情况是,搜索出的结果里,有很多无效的、重复的甚至错误的内容,耽误你的时间,误导你的方向。

鉴于此,如果你无法选择更好的搜索引擎,那我只能建议你,认真分辨搜索结果的质量。要对搜索结果保持怀疑的态度,不要只迷信排名靠前的结果,它们可能是推广(注意点看,一般搜索引擎都有标注),也可能是做过一些排名优化,或者仅仅是运气好排到了前面。下载软件包尽量去官方的网站,查阅资料尽量选择官方的文档。另外,独立技术博客的质量要高于那种挂满小广告的资源站。

对于编程方面的问题来说,还有种选择是直接去相关的网站进行搜索。这里强烈推荐又一个程序员的必备工具:StackOverflow。多次有人问我,英语不好能不能编程。我的回答是,可以,但你会错过很多好东西。比如这时候,你就只能去用中文同类网站。有个SegmentFault属于国内做得不错的,但在内容上肯定无法与StackOverflow相提并论。

另外,知乎也是个可以搜索问题的去处,但一般是偏向评价性质的问题,而非具体的技术问题。

搜索引擎的高级技巧

大多数搜索引擎,除了直接搜索关键字,都还会提供一些高级功能,常用的包括:

  • 站内搜索 site

示例:在搜索框中搜索

python site:zhihu.com

就可以把搜索结果限定在知乎内。对于一些没有站内搜索或站内搜索不好的网站来说很有用。

  • 完全匹配 ""(双引号)

示例:在搜索框中搜索

"matching query does not exist"

可以得到精确匹配这段文字的结果,而不是把它们当做多个关键词来搜索。

  • 去除结果 -(减号)

示例:在搜索框中搜索

django -unchained

单纯搜索django,会得到一部分同名电影《Django Unchained》的结果。通过减号可以去除包含unchained的结果。注意减号前面必须有空格,后面必须没空格。

  • 文件类型 filetype

示例:在搜索框中搜索

python filetype:pdf

得到的结果都是pdf类型的。这对于搜索文档或者ppt很有帮助。

百度现在将时间、文件类型、站点三项过滤加在了搜索结果的上方,这点我觉得还是不错的,毕竟大多数人不会像程序员一样习惯使用代码和符号语言。

最后,对于需要写论文的同学来说,还有个不能不去的地方就是

scholar.google.com

同样,如果你又没法好好使用它,要找替代品。那我真心不想告诉你还有个

xueshu.baidu.com

因为我试过了,这上面连我自己的论文都搜不到!

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2016-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信公众号:Java团长

Java程序员修炼之路

大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作、Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,...

14120
来自专栏人工智能头条

提高代码阅读能力的7种方法

17840
来自专栏求索之路

BAT等大厂Android面试书单和知识点清单Java知识Android知识java设计模式知识算法和数据结构知识计算机系统知识数据库知识计算机网络知识Android开源项目知识

Java知识 java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1....

43380
来自专栏安智客

可信软件基概述

安智客长期关注可信执行环境TEE,今天了解学习一些可信软件基TSB(Trusted Software Base)。要了解可信软件基,先来了解可信计算基TCB(T...

74140
来自专栏Java帮帮-微信公众号-技术文章全总结

11个最值得Java开发者收藏的网站

? Java是一种面向对象的编程语言,由Sun Microsystems公司在1995年的时候正式发布。直到今天,Java都一直是最受欢迎的编程语言之一。如今...

31940
来自专栏程序你好

与Java、PHP 、C#相比,为什么Python薪资更高?

43920
来自专栏java工会

每个程序员都应该了解的十句话

我们可以因为掌握了最新的JavaScript框架Ahem、Angular的IoC容器技术或者某些编程语言甚至操作系统而欢欣雀跃,但是这些东西并不是作为程序员的我...

12200
来自专栏IT派

Python项目可以有多大?最多可以有多少行代码?

导读:总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言...

16640
来自专栏大数据文摘

前方高能!这可能是一张会颠覆你编程学习的思维图!

25170
来自专栏华章科技

Python项目可以有多大?最多可以有多少行代码?

导读:总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言...

15420

扫码关注云+社区

领取腾讯云代金券