代码猎人的智慧指南:搜索的艺术与科学

146 阅读8分钟

在编程的世界里,每个开发者都是一位探险者,穿梭于代码的丛林,攀登着技术的高峰。但在这场智慧与逻辑的冒险中,拥有一张无尽知识的藏宝图无疑能让你的旅途更加顺畅——那就是搜索引擎。想象一下,面对一个棘手的bug,或是寻求一段精妙的算法,只需轻轻敲击键盘,答案便如魔法般显现,是不是有种“芝麻开门”的既视感?

然而,不是每一次搜索都能直抵宝藏。在浩瀚的信息海洋中,未经雕琢的搜索技艺往往让人迷失方向,或是被无关紧要的信息洪流所淹没。这就如同在未知海域盲目航行,即便目的地近在咫尺,也可能耗尽耐心与时间。因此,掌握高效的搜索技巧,对程序员来说,就如同拥有了一把开启智慧之门的金钥匙,让问题迎刃而解,让灵感信手拈来。

学无止境.jpeg

本文总结了一些常用的搜索技巧和思考过程。不论是新手小白,还是经验丰富的老鸟,希望大家可以在阅读文章后,在评论区分享出你的技巧和思考。当然,本文也不限于技术开发者,在如今这个网络信息和知识十分丰富的时代,无论从事什么行业,掌握搜索的方法和思维,都是提升个人技能的十分有效的手段。

image.png

信息在哪里

虽然本文要着重分享一些搜索的技巧,但是我们在开始之前,如果能清晰回答我们想要的答案可能在哪里,那我们搜索起来就会事半功倍。程序猿需要搜索信息或者知识,包括但不限于以下几个场景:

  1. 我现在遇到一个特别具体的问题,想知道解法,例如我有一个如下格式的字符串“color:red,size:M”,想通过正则表达式或者其他什么方式从原始字符串中解析出颜色和尺码
  2. 我想学习某种新的知识或者方法,可能可以通过这个新的方法,来提升系统的运行效率或者实现某项功能,例如我想学习一下JDK21的虚拟线程,看看能否运用到我的项目中来提高多线程运行效率
  3. 我刚换了一个新工作,之前我是做物流行业的,新的公司是做服装行业,我想搜索一下服装行业的一些行业报告,来了解行业发展的情况和学习一些行业知识

在哪里.gif

我们在以上这些场景下,搜索之前先思考一下可能的地方在哪里:

  1. 这个具体的正则表达式的写法,很可能在某个正则表达式的教程网页,或者其他程序猿的博客,以及一些专业的问答网站例如StackOverFlow
  2. JDK21虚拟线程的知识,很可能出现在其他程序猿的博客,或者B站的一些教学视频中
  3. 服装行业的行业报告,可能出现在某些特定的报告类的垂直网站,例如199IT、行行查等,还可能出现在一些专业券商的行业调研报告中,这些报告很可能是pdf的格式,另外,还可能出现在一些专业的微信公众号文章中

我们发现,程序猿在通常的场景下,想要得到的信息或者知识一般来源于他人博客、专业网站,这些都可以归结为网页,某些特定情况下,会在一些视频网站或者微信公众号。

如何搜索

通过上面的思考,我们大概了解了我们想要搜索的结果最可能出现的地方,当然,这些列举未必全,不过对大致方向心中有数之后,在搜索的过程中发现了新的地方,我们也能做到有的放矢。由于我们大部分的信息在网页,所以先介绍一些google的搜索技巧,当然,这些技巧对于大部分其他搜索引擎也同样适用。

精确匹配

如果我们搜索的关键词比较长,搜索引擎分词后,可能会召回那些间断匹配的结果,如果我们只想要查看那些完全完整匹配的结果,可以在搜索关键词用英文双引号包裹起来,这样,返回的结果数量会少很多。

例如,我们搜索Java lambda function,直接搜索返回了35W+的结果 image.png

如果我们改成精确匹配,搜索"Java lambda function",这样,召回的结果中必然是完整包含Java lambda function,结果条数变成了1070,相较于之前大幅减少 image.png

intile

我们可以使用intitle,来指定召回标题中包含关键词的结果 image.png

intext

既然有intile,相应的就会有intext,含义是召回正文中包含关键词的结果,当然,如果关键词比较长,可以与上面的精确匹配混用,来提高搜索精度。 image.png

inurl

除了intitle和intext,我们还可以使用inurl来指定召回的url中包含某个关键词,这时候我们经常是想限制只返回在某些网站内的结果

image.png

site

相对于inurl指定了某个url中包含的关键词,site可以更加精确指定来源的站点

image.png

filetype

还记得我们上面说的一个场景吗:我刚换了一个新工作,之前我是做物流行业的,新的公司是做服装行业,我想搜索一下服装行业的一些行业报告,来了解行业发展的情况和学习一些行业知识。
上面我们思考了可能的来源,以及,这些报告很可能是pdf格式的,这时候,我们搜索的时候,就可以指定pdf格式来进行针对性搜索,召回的结果就都是pdf格式的了

image.png

微信公众号

由于微信公众号的内容是半封闭的,我们使用google是无法直接搜索到的,这里就需要借助腾讯关联的产品,搜狗搜索的微信搜索功能,注意这里选择“微信”,就可以搜到微信公众号的内容了

image.png

垂直网站

一开始,我们就思考了“信息在哪里”,以及上面的如何搜索的时候,我们也介绍了通过site关键词来指定网站进行搜索。所以,如果我们知道一些常用的垂直类的网站,配合搜索技巧,就能比较精确的进行搜索,下面介绍一些我常用的垂直网站。

Stack Overflow

Stack Overflow 是一个广受全球程序员喜爱的技术问答平台,它由 Jeff Atwood 和 Joel Spolsky 创立,旨在为开发者社群提供一个互相帮助、交流编程知识的空间。网站允许用户免费提交问题、浏览问题列表、索引并分享与编程相关的技术解决方案。无论是关于具体编程语言的语法问题、算法设计、开发工具的使用,还是软件工程的最佳实践,Stack Overflow 都能提供海量的高质量答案。

Github

GitHub 是全球最大的面向开源及私有软件项目的托管平台,成立于2008年4月10日,由Chris Wanstrath、P. J. Hyett和Tom Preston-Werner等人基于Git版本控制系统构建。它不仅仅是一个代码存储库,更是一个集成了版本控制、项目管理、协同作业及社交功能的综合性开发者社区。至今,GitHub已拥有超过1亿名开发者、400万个组织机构和超过3.3亿个资料库,成为了全球开发者进行软件开发、学习和分享知识的首选平台。

掘金

掘金(juejin.cn)是一个面向开发者、设计师、产品经理等技术人群的高质量技术社区与知识分享平台。网站成立于2015年8月,旨在通过数据挖掘技术为技术人才推荐个性化、有深度的技术内容。掘金鼓励原创和优质内容的产出,汇聚了众多技术专家和极客,他们共同编辑并分享涵盖编程语言、软件开发、产品设计、人工智能、云计算等多个领域的技术文章、教程和心得。

199IT

199IT致力于为用户提供专业的互联网数据研究、调研、分析服务,同时也为互联网研究咨询及IT行业的数据专业人员和决策者搭建了一个数据共享与交流的桥梁。平台内容覆盖新闻资讯、研究报告、行业趋势、数据分析等多个维度,涉及社交媒体、游戏、移动应用、云计算等多个热门领域,为用户发现数据价值、把握市场脉搏提供了强有力的支持。

看到这里了,点个赞再走呗

赞.png