程序员的自我修养:高效使用Google解决问题
如果票选近二十年最伟大的发明,我相信搜索引擎肯定会占据一个不容小觑的位置,它不单是一项发明,更是一项成就,最大程度消灭了信息的不平等。既然人人都可以接触到海量的信息,那么衡量信息财富多寡就只剩下技巧这惟一的标准了:善用搜索引擎的都是信息时代的富翁,不懂搜索引擎的都是信息时代的负翁。
而像程序员这种必须终生学习的职业,搜索引擎就是我们的左膀右臂。懂搜索引擎就是我们的基本功,不,应该是童子功。只是大部分新手都在过分粗放的使用搜索引擎,而花几分钟时间了解搜索引擎的技巧和语法,就能让自己的信息财富来一个大跃进,不也是一笔划算的买卖么。
而对于技术类问题的检索,谷歌的表现水准无疑要甩百度几条街;所以善用搜索引擎的第一条原则必然是:一如既往毫不犹豫百折不挠的使用Google。而对于一名程序员来说,保证自己随时随地能访问Google,是最最基本的技能,哪怕花费少许金钱也是物超所值。那么以下就撇开百度、专门讲讲使用Google的小贴士。
完整匹配
在Google的输入框里,所有的空格都被理解为加号。如果你输入的是mysql foreign key,那么返回的搜索结果里也许既有mysql存在,也有foreign key存在,但不一定有mysql foreign key存在。另外,过分常用的、单独存在没有意义的词汇往往被忽略掉,比如the/a/that等等。
如果你想要找含有mysql foreign key这个词组的文章,那么你必须在搜索词前后加上引号,输入"mysql foreign key",不管你输入的时候使用的是全角字符(“或者”)还是半角字符("),Google都照样能够正确处理。这就是引号的作用:返回完整匹配的结果。
筛选
为了进一步筛选搜索结果,还需要学会另外一个符号 — 减号(-)。比如,"mysql foreign key" - "nodejs"就要求Google返回含有mysql foreign key但不存在nodejs的文章。
通配符
另外一个程序员耳熟能详的符号是正则里最常露脸的星号,看到星号就下意识的想到通配符,在Google的搜索规则中也是如此,输入"mysql connect error *"就会返回所有已知的关于MySQL连接错误的文章。
站内搜索
最后推荐一个威力无穷的语法,让你有机会再对搜索结果做一次筛选。比如针对程序员查bug,stackoverflow是我个人觉得可信度最高也最全面的一个网站,所以我就经常使用site的魔法,像"mysql foreign key" site:stackoverflow.com就会返回对应网站内所有关于mysql foreign key的文章。
语言和日期
像2shou叔这种英语阅读能力不过关的人,遇到急事就不能一篇篇翻原版文档了,不得不求助国内的二手货;这时,Google界面上的一个小按钮就帮上大忙了:点击搜索工具 - 不限语言,下拉选择所有简体中文网页,一下子就回到了祖国母亲的怀抱。有时用新出的库版本,别忘了隔壁那个不限日期按钮,可以帮你找到最最新鲜的技术文章。
Tab,以及宅男福利
只限Chrome的一招:输入某个网址,再点击Tab,会能直接使用这个站点的站内搜索了,比别人快个几秒,关键时刻也很管用不是么。
最后留个福利吧,曾经被人偷偷问过,谷歌的安全搜索怎么关闭;网上有一些繁复的攻略,对我们程序员,搜索网址加个参数:&safe=off,一招就可日天。
祝大家 Google 快乐。
程序员的自我修养:高效使用Google解决问题的更多相关文章
- 程序员的自我修养(2)——计算机网络(转) good
相关文章:程序员的自我修养——操作系统篇 几乎所有的计算机程序,都会牵涉到网络通信.因此,了解计算机基础网络知识,对每一个程序员来说都是异常重要的. 本文在介绍一些基础网络知识的同时,给出了一些高质量 ...
- gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)
最近解决一个动态链接上的问题,因为以前从来没有接触过这方面的知识,所以恶补了一下,首先要了解gcc编译指令(makefile),ld链接器的选项(还有连接脚本section指定内存位置),熟悉查看连接 ...
- 第八周读书笔记(人月神话X月亮与六便士)——到底什么才是一个程序员的自我修养?
写了这么久的读书笔记,涉及到问题大多是一些如何把软件工程做好,如何把自己的职业生涯做好.但总感觉逻辑链上缺了一环,亦即:我们为什么要把软件工程做好,我们成为一名优秀的职业生涯的意义到底在于什么?我觉得 ...
- pwn学习日记Day21 《程序员的自我修养》读书笔记
Linux内核装载ELF过程 (1)bash进程调用fork()系统调用创建一个新的进程 (2)新的进程调用execve()系统调用执行指定的ELF文件,原先的bash进程继续返回等待刚才启动的新进程 ...
- pwn学习日记Day20 《程序员的自我修养》读书笔记
可执行文件的装载与进程 覆盖装入和页映射是两种典型的动态装载方法 进程建立的三步 1.创建一个独立的虚拟地址空间 2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系. 3.将CPU的指令寄存 ...
- pwn学习日记Day19 《程序员的自我修养》读书笔记
windows PE/COFF章总结 本章学习了windows下的可执行文件和目标文件格式PE/COFF.PE/COFF文件与ELF文件非常相似,它们都是基于段的结构的二进制文件格式.Windows下 ...
- Java程序员的自我修养
一.自我修养路线图 如图,这是笔者所走的路.且不论这路走的对不对,这个过程中行业环境会影响到你,大可不必钻牛角尖.附上这张图的目的是为了说,如果你想成为一个优秀的程序员,那么你一定要有规划.当然,别想 ...
- pwn学习日记Day18 《程序员的自我修养》读书笔记
知识杂项 obj文件:当前源代码编译成二进制目标文件 exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件 一个现代编译器的主要工作流程如下: 源程序(source code)→ 预处 ...
- iOS程序员的自我修养之道
新技术的了解渠道 WWDC开发者大会视频 官方文档 General -> Guides -> iOS x.x API Diffs 程序员的学习 iOS技术的学习 官当文档 Sample C ...
随机推荐
- mysql常用博客论坛
大神博客: starive的博客:http://blog.itpub.net/26435490/viewspace-1133659/ 北在南方的博客:http://blog.itpub.net/226 ...
- zepto.js 处理Touch事件
处 理Touch事件能让你了解到用户的每一根手指的位置,在touch事件触发的时候产生,可以通过touch event handler的event对象取到,如果基于zepto.js开发,一般是通过ev ...
- 转:找不到include xgpio.h;Unresolved include xgpio.h
这个文档讲解的是在SDK下出现的问题,如果在ISE下编译是有错的,不能正常进入SDK,那这篇文档不适合你. 问题是这样的.根据教程<XILINX FPGA Verilog编程大全>做SOC ...
- 使用XML文件定义菜单
Android提供了两种创建菜单的方式,一种是在Java代码中创建,一种使用XML资源文件定义.上面的实例都是在Java代码中创建菜单,在Java代码中创建菜单存在如下不足. 在Java代码中定义菜单 ...
- poj 1013(uva 608) Counterfeit Dollar
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #in ...
- jQuery事件绑定、解绑、命名空间
jQuery事件绑定.解绑.命名空间 <%@ page language="java" import="java.util.*" pageEncoding ...
- DNS没有生效的几个原因
1.记录没有正确添加 请确认你的域名记录是否完全正确的添加.线路类型正确,记录类型正确 2.域名还没有生效 这个情况还会有另外一个现象,就是域名有时候可以ping,有时候不能ping. 这是因为你当地 ...
- Select与Epoll比较
一.问题引出 联系区别 问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解 ...
- Myeclipse8.5 反编译插件 jad 安装(转)
准备工作 下载jad.exe文件:http://www.varaneckas.com/sites/default/files/jad/jad158g.win.zip 下载jadeclipse插件:ht ...
- Excel实用知识2(排序,筛选,分析工具)
[排序,筛选,分析工具(描述统计,相关系数,回归分析,抽样分析,预测工作表)] 纯手打,可能有错别字,使用的版本是office2013 转载请注明出处 http://www.cnblogs.com/h ...