搜索能力如何提升?

2,078 阅读16分钟

前几天我在知乎随手写了篇回答,没想到几天之内收获了600+赞,跟大佬比起来算不上啥,但是作为一个新开的0粉丝号,还是挺不容易的。

原回答放在底部阅读原文了,感兴趣的兄弟姐妹可以去看看(顺便帮我点个赞?

我在回答里提到了一个很重要的能力——搜索能力,但是文章里只是隐晦得提及一些经历,没有掰开揉碎了讲,今天我们就来聊聊:如何提高自己的搜索能力?

正文

这篇文章写了快一个星期,发现自己有点hold不住了,可能有些地方会有点啰嗦,但我尽量透彻清晰地转达我的思想,这不是一篇快餐文,如果可能,建议多读几遍

“搜索”,或者说“信息搜集”本身是一个很庞大的概念,这篇文章不可能面面俱到,我只能尽可能讲解一些我认为优秀的、个人实践过的方法,仅供参考。不要指望看完这篇文章你的搜索能力就能突飞猛进,你需要大量的实践,思想、认知层面的改变是很难的。我只能尽我所能提供一些思路,将常用的搜索思路、技巧进行整合,至少读完本文,能让你向正确的方向更靠近一点点。

信息搜集能力的重要性不言而喻,世界上很多差距的产生都是来源于信息差。 大到战争,小到股市,正确而及时的信息价值不可估量。

但具体到我们个人来说,可能只是一个普通的大学生,一个平凡的打工人,我们需要掌握的信息并没有那么高的机密(这也给我们获取信息带来了可能性)。

以我个人来说,如果不是在转专业期间靠着我的搜索能力提前了解了实习、校招的相关信息,我便不会制定出提前实习的方案与策略,更不可能有现在的发展。

好的搜索能力,能给我们带来更好的机会和发展方向。

ok,如果你对上面的结论与我达成共识,那么我们接着往下走。

什么是好的搜索能力?

我之前也玩过搜索比赛,拿过省级的小奖。比赛与现实其实有很大的不同:

  • 比赛往往要求短时间内获取精确信息;
  • 比赛的问题往往是有标准答案的;
  • 比赛的问题分析是客观的;

换句话说,我们在现实中遇到的某些问题,其实很多时候没有标准答案,去知乎上搜来搜去也都是主观分析,全是小故事;尽管没有时间限制,但你很难获取一个合适的答案。

当然,现实中我们也会遇到代码运行出错,软件安装出错等等客观问题,因此我们这里针对大学生和程序员的常见搜索场景进行讨论。

I. 代码/软件问题

第一类

这种问题其实是最容易解决的,大多数时候你只需要把报错信息往百度上一贴,然后看几篇博客就能解决。

如果解决不了,那就再看几篇。

这个阶段最忌讳的操作是直接截个报错信息的图给别人,然后问一句:“大佬,这个报错了怎么办?”

脾气好点的、有空的可能还会帮你看看,或者找篇博客让你试。大部分大佬看到这种问题估计都挺无奈的,这种问题要么信息不全,大佬都不知道你这是在干嘛,另一种就是你自己百度能解决的事情,非要让大佬帮你百度一遍?别人时薪可能好几百,你给钱了么?

好的提问方式:(简单举例,本质就是要给全足够的信息)

  • Mac 系统命令行下,执行python test.py文件出错了
  • 把文件内容通过https://paste.ubuntu.com/发送,而不是直接微信发文件(别人可能电脑不在身边,发个文件根本没法看)
  • 给出你查找过的原因:比如检查过代码没有问题,在IDE上能跑,但是命令行不能跑

那么大佬可能根据你这些信息就能猜测出一些问题方向,比如是不是python3文件,执行用的确是python2(兼容问题),又或者是IDE中使用了虚拟环境,系统环境中缺了某个包等等。

你再根据大佬给出的可能方向去排查,事情就会顺利很多。

这部分就不再细说了,更多的关于提问方式的内容,可以参考我之前的文章:xxx

II. 书籍推荐/学习路线的问题

第二类

这类问题在新手之间也很常见。很多回答往往是根据主观感觉进行推荐,甚至有些人书都没看过也敢推荐(全靠名声,但事实上,名声大但读起来味如嚼蜡的书可太多了。

当然,这里除了有些答主瞎推荐是个问题外,新手总是试图寻找到最佳路线才开始的想法,才是最大的问题。

可能花了一两个星期才找到一个看起来很牛逼的路线,结果跟着做没两天就放弃了。

我就遇到过一些师弟,喜欢找各种路线,咋一看搜索能力还行,但要知道,获取信息本身不是目的,获取信息是为你解决问题而服务的。

对此,需要对一些想法进行修正:

  • 搜集路线要适可而止,先去做,然后随时修正路线;
  • 路线不需要很详细,有大概方向即可;
  • 过度的信息搜集会引发焦虑;(觉得自己有很多事情要做,但就是一件都不做)
  • 看平庸的书比只搜集路线不看书要好的多。

有些人总喜欢吐槽《21天学会c++》之类的是辣鸡书,我正好相反,我从不排斥这些书。我一开始学习某些知识时,看一些大部头总是看得很慢,然后我跑去图书馆,找了几本这种看起来很辣鸡的书(但一定是近一两年出版的),花几个小时过了一遍,再回过头来看大部头,顿感轻松不少。

只要书中的内容不过时,没有错误,那么它就是有价值的。或许它不能将某些原理讲得很透彻,但对于新手来说,这样的书,恰恰适合快速入门使用

弱小和无知不是生存的障碍,傲慢才是。

如果有更合适的入门书,当然还是看好的入门书更好。但我见过大部分新手的问题不在于选的书不行,而是在两本都还可以的书上面纠结来纠结去,等纠结完其他人已经读完看下一本了。

目标明确的同学会发现,我前面讲的两点好像跟搜索技巧没啥关系呀?

  • 一个教我怎么向大佬提问;
  • 一个教我实践出真知;

有的同学可能要说了:

是的,没错

事实上,对于搜索,(在本文,搜索其实是一种泛指,并不单指用搜索引擎搜索这件事),或者说信息搜集来说,

最重要的是明确搜索目标!

最重要的是明确搜索目标!

最重要的是明确搜索目标!

对于第一部分来说,你在提问之前,如果想的是让对方帮你解决问题,那么你的目标就错了,得不得合理的帮助也是理所应当的。

正确的思路是:我只是想让对方提供排查问题的方向或者思路,具体怎么执行自己可以搞定。

对于第二部分来说,你在找学习路线之前,如果想的是找到最好的学习路径,那么你就会深陷在各种学习路径的比较之中。

正确的思路是:我只是想找一个靠谱的路线,然后尽快开始行动。

你不小心拿起了一本烂书,看一段时间自然就能分辨,语句不顺畅,思维不连贯,前置知识放在了后面,结构混乱,这些问题都非常容易辨别。这个时候换一本书,你就更清楚自己需要什么,你在这本书上花的时间也不会白费,它会让你更容易看懂下一本。

III. 选择问题

第三类

对于选择问题,提问者分两种,一种是其实只希望得到问题相关的背景,而非答案;另一种则相反,只希望得到答案,而非信息。

举个例子,有人问腾讯xx和字节yy哪个好?

事实上,提问者其实不希望别人帮他做决定,他只是想尽可能的搜集这两个部门各自的信息,然后自己做判断。(这种情况下,这样的问法显然不合适,问得太隐晦,需要追问回答者)

而有的人则不管回答者提供了多少信息,总觉得别人没帮到他,因为他试图让回答者直接给出答案。

这两种情况,不论哪种,其实都挺离谱的。而事实上,这两种情况又太常见了

本质上来说,这样的问题没有统一、客观的答案,每个人的答案必然都受到自己的认知局限。(这并不是说回答者的回答没有意义,相反,参考价值很高)

感觉我说的有点矛盾?

停下来好好思考下,其实你会发现,这个问题是因为提问者总希望自己的选择是最优的,怕选错。这种心态不是错,很正常,人之常情。

但我想说,做事不后悔,是更好的态度。

往往有些同学问我类似的问题,我都是尽量将客观信息给到对方,然后让对方凭自己的感觉选吧,其实选啥,结果都不会太差的。

从高考以后,我基本就没有再产生过懊悔的情绪,做错了就立正,改就完事了。(仔细想了下,还是有的,打王者打出下饭操作的时候会有点。)

其实遇到这种问题怎么办呢?

尽可能获取客观信息,再这些信息的基础上分析比较,做出的选择,未必最优,但一定不会差到哪去。

如何提升信息搜集的能力?

如果说前面的内容更多从认知、心态这类心法上来讲解,那么这部门就是实打实的搜索小技巧,大部分是我的小经验。

搜索引擎

我初中就掌握的,几个老掉牙的搜索关键词:

  • -: 搜索结果中去除该关键词

比如搜索:c++ -阿里云,会把包含阿里云的内容剔除掉。

  • *: 通用匹配符,可以代替任何字符。

懂点正则表达式的看到这个会很亲切。

  • site: 指定网站中搜索

比如我只想在知乎中搜索:

你说:我直接在知乎中搜索不就好了吗?

其实两种方式各有好坏,大家可以自行体验下。

  • filetype: 搜索指定文件类型

比如搜索《深入理解计算机系统》的 PDF 电子书:

百度下搜出来的往往是百度文库的内容,所以搜这种文件用谷歌更方便些。(国内由于版权问题清理了不少资源,像电子书资源啥的一般在百度网盘资源也比较多,也可以采用网盘搜索进行查找。)

这些小技巧只是在特定场景有用,大家要有意识的训练,否则只会看过了就算了。(所谓有意识的训练,就是你接下来的一周,搜索东西前先考虑一下能不能用上这些关键词,多想多练即可。)

更重要的一点其实是精确关键词,有的时候并不是你偷懒,而是你确实不懂得怎么搜,比如你想在 Excel 上把两张表的数据按照某一列合并,但你不知道这个可以用 vlookup 来做,你只能用一些模糊的描述:“Excel 表 合并 相同列”之类的内容,这种时候自然搜索效率不高。这种情况下需要尽快搞明白你的需求能不能实现,可以用什么方法实现,也就是说,你需要先找到 vlookup,然后再去了解vlookup怎么用。

先找到正确的方法

这次学会了,自己记录下来,下次只需要看自己博客就可以找到了。

发现/积累

如果你还没用过网盘搜索,那么你在我前面提到这个词的时候,是否会尝试去搜索,去了解呢?

我记得我之前给几个师弟安利 Markdown,很有意思的是,他们听完觉得好像一般般,每个人都想着以后用到再说吧。结果过了一年,我看到他们在朋友圈表述自己学会Markdown之后真香,后悔没早学。

确实有点好笑,可能你一笑而过,但我喜欢思考现象背后的本质

我是否也会这样?

别人给我安利的时候,我尝试了一下发现搞不明白,感觉没啥用,等到后面真用上了才觉得真香。

想了想,确实有。包括Markdown,我也并不是第一次被安利就使用它的。当然后来我养成习惯,一看到比较有意思的安利,就会亲手试试,确定搞懂,并且对我来说不合适的,才会放弃。

宁可杀错,绝不放过。

就这样,我又 Get 到了一个效率神器 —— 双拼。(每个字基本都是只要按两个键可以)

老一辈飞快的五笔输入我是十分羡慕的,但是学了一会发现太难了,就放弃了。双拼不一样,这次我认真练了一两个小时,然后直接把输入法换成双拼的,直接聊天。(一开始真的巨慢无比,字都不会打了),大概一个月,已经可以熟练运用了,打字速度确实快不少。(本来想测一下,进行对比的,但是刚刚发现已经不怎么会打全拼了,刚刚随便找了个,乱序文章,速度差不多 88字/分钟,而且不会很累,大家用全拼的可以自己测测试试看。)

今天又发现了一个个人知识管理的神器 —— Trilium,就不多做介绍了,有兴趣的同学自己学起来用起来。(个人感觉比有道云、印象笔记、语雀、Typora 等都更适合用作个人知识管理,比 Notion 的话也不差。)

平时遇到好的网站自己多收藏总结,定期回顾

随便举一些例子:

我们可以说CSDN文章low,到处copy,但谁装一些环境、包的时候不得上CSDN看看安装教程?

少一些鄙视链,该干嘛干嘛,吐槽CSDN并不能显得你很厉害。

人脉的力量

向优秀的人请教,或者通过找人去获取你想要的信息,非常重要。

身为程序员,代码写多了,往往会有一种自己不需要求人的错觉,反正只要搞代码就好啦。直到现在,我也觉得我的 social 能力挺一般的,但不妨碍我可以通过我的人脉获取我需要的信息。

比如我在之前的文章讲过,我秋招选offer前,其实就已经先搞清楚了部门内的情况,你说去哪刚刚好能找一个同部门的师兄师姐?

换个思路,我其实不需要这么刚好。我只需要认识这个BG的人就好了,上一届总有毕业生群吧。我拜托上一届的师兄师姐在群里吼一句,有没有xx部门的同学?这不就联系上了么?

再换个思路,你只认识这个公司的人,不在这个BG,那这个人总能帮你找到其他更接近这个BG的人,对吧?

再换个角度,现在大厂号主这么多,这不都是你可触达的资源吗?有些人看到别人发公众号,推文章,可能想到的只是又是推文广告,不想看。有些人就懂得利用好资源。

再深一点讲,怎么把资源转化真正的人脉。简单来说,互利互惠,你对人家没有任何价值,指望别人帮助你么?当别人做慈善的?

你想让师兄师姐帮你吼一嗓子,可以,问题是,别人凭什么帮你?

所以自己平日里要做好口碑积累,自己价值提升了,才有跟别人对话的资格;别人号主发文,你连个在看都不肯点,你去找别人想让别人帮你(这些数据都有记录可查),你换位思考下,你帮么?

就我自己来说,平时点在看,甚至主动转文章到朋友圈的小伙伴,我其实都默默记着,有需要帮忙的,我肯定是能帮就帮的。

这里不是说让大家给我这篇文章点在看,转朋友圈,(当然你转了我肯定很开心),但是我写这些不是这个意思。我是想让大家明白,你要清楚你的定位,你随便找个小号主,尤其那种质量高,但还不火的,你去加他微信,每次他发文章都帮他转朋友圈,帮他大力推荐,你猜就算你问了脑残问题,他会不会帮你?

这里只是提供一点思路,抛砖引玉,大家一定要自己去思考,别盲目套用。比如这个做法换到大号主上大概率行不通,因为你这一丢丢流量对别人来说边际效益太低了。

这一部分其实我自己也做的也不够好,或者说这条建议需要持续去做,既是写给你们,也是自勉。

可能看完全文下来还是有一点凌乱,毕竟内容较多,我再梳理一下:

一图胜千言

完。