如何使用互联网解决编程问题

###1.学会使用关键词来描述问题

虽然搜索引擎的自然语言理解能力在进步,但现在还不能无障碍地和人类交流。要向搜索引擎请教问题,必须要用它的语言——关键词。 关键词之间必须要加上空格, 以免不好的分词系统造成对你要求的误解。

有的时候用关键词描述问题能更好地帮你看清问题的本质,即:要描述或定义我的问题,哪些词是不可能绕过去的?哪些词能帮我迅速缩小搜索的范围?

###2.客观地描述问题本身,而不是预想的解决方案 看过一个很有意思的评论:

用户的需求不是买电脑,而是玩魔兽。 用户常常会把自己的解决方案当成需求提给你。

问路的时候,请不要说“附近哪有487路公交车站”,而是直接询问如何到达最终的目的地。当地人可能会给出更直接、更快捷的交通路线。

###3.尽量少做假设

当你在论坛问“为什么我一用你们的软件就死机”的时候,其实你假设了 a) 别人知道你的软硬件配置 b) 别人知道你近期做了哪些操作,或者说,你认为 c) 以上这些信息对于解决问题没有意义。

一方面要提供有助于定位和解决问题的信息,另一方面要尽量使用大家都知道的词语或常识等。不要假设能解决你的问题的人和你有同样的认知水平。

很多时候假设是潜在的,所谓“当局者迷”。这时候,对结果的分析就很重要,有助于你认识到自己做了哪些假设,哪些假设是符合意图的,哪些是不合理的。

###4.根据搜索结果中修正你的关键词。

搜索结果和你预期的不一样,一般有两类原因:1.你提问的方式不对,导致搜索引擎(以及搜到的回答)是基于一种错误的解读。 2.你提问的方式正确,但是问题本身,不是你想的那样,你需要重新审视你的问题。 对于第一类,你可能需要修改你的关键词,它是不是太宽泛,还是太狭隘,还是有歧义?等等。 对于第二类,你需要重新定位和描述你的问题,了解它所处的领域和背景。

简单地说,要么换个问法,要么换个问题。

###5.寻找和关键词同义的核心词汇

书上的信息与网上搜索得到的信息有一个很大的不同:一本书上的信息是用一种相对统一的语言风格来传达的,你能大致预期作者会怎样去描述一个东西。但是互联网上搜索得到的信息缺乏这种统一性,很可能语言风格差别很大的两篇文章,说的是同一个事。我经常会发现,对于一个概念,我使用词语A,而大多数人都使用词语B,即B是约定俗成的“术语”,这时就要用B来代替A作为我的搜索关键词。要做到辨别这一点,必须总结一些特定领域的核心词汇,也就是上文提到的不可能绕过去的那些词。

###6.信息的来源和信息的内容同等重要,甚至来源比内容更重要

在搜索决策上,去哪搜>搜什么>怎么搜。

举个例子,形如“如何用A在B中实现C功能”这样的编程问题,直接在google中输入英文关键词,然后site:stackoverflow.com,一般都能命中。

再如,位置相关的搜索,如北京周边的美食、酒店什么的,百度的服务一般优于google的。

高大上或者nerdy的问题就知乎、quora,而“见对象的家长该穿什么”,贴吧、天涯什么的更靠谱。

除了信息的来源,其他用户对信息的反馈(有多少个赞/up/star)也是衡量信息价值的重要标准。如果搜索结果可以根据反馈来排序,那就更好了,例如上面提到的知乎、quora和stackoverflow等问答社区。

分享