程序员必须学会 Google 搜索

1.科学上网(翻*)

1.1 墙的介绍

所谓的墙就是由原北京邮电大学校长设计(据说,是否真实不太清楚)一款长城防火墙(GFW),主要功能就是自动审查和过滤一些违规的信息,防火墙对于这些违规信息会用DNS污染(对于域名)和屏蔽IP的方式(对于IP)进行过滤,使国内用户无法访问,世界最大的搜索引擎谷歌就被DNS污染。

1.2 如何科学上网

设置国内用户(无法访问)为A,墙外网站为B,目前A无法访问B,设置国外的服务器为C,C可以直接访问B,那么科学上网的原理就是A通过C进行代理访问B,这样就可以达到科学上网的目的。

1.3 科学上网工具

目前工具主要有VPN、SSH、Shadowsocks、牛人开发的浏览器插件。下面我们一项一项来介绍。

1.3.1 VPN

VPN一般指虚拟专用网络,那么VPN科学上网也就是通过建立一个国外的虚拟专用网络,绕过牛逼的GFW防火墙来访问国外的网站,比如Google、Facebook、Youtube及Twitter等。
所谓VPN科学上网,我们必须先找到一个VPN服务器(IP),可以是自己购买国外的VPS搭建,也可以是用他人已搭建好的VPN服务,当然,对于小白用户来说,这个算是比较难的。

1.3.2 Lantern

可以从GetLantern.org蓝灯官方论坛(免翻墙)下载蓝灯软件,其他网站的下载链接都可能包含有病毒。 升级专业版很好用,使用方法请自行Google~

1.3.3 shadowsocks(推荐)

shadowsocks(简称SS)被称为科学上网界的瑞士军刀,SS 通过 socks5 进行代理访问,需要客户端和服务端。目前客户端已支持 OS X, Windows, Andoris, iOS等系统。有兴趣或者有需求的可以购买SS服务账号或者自己搭建SS服务(需要购买VPS)。
客户端原 Github 地址https://github.com/shadowsocks/shadowsocks,作者被相关部门约去喝茶,已删除源码,现维护地址https://github.com/shadowsocks/shadowsocks-windows,有兴趣的可以关注。 SS服务端搭建方法:

yum install -y python-setuptools && easy_install pip  
pip install shadowsocks  
## 启动命令
/usr/bin/ssserver -s ::0 -p 端口 -k 密码 -m 加密方式 --user nobody --workers 2 -d start
## 可加入开机启动
echo "/usr/bin/ssserver -s ::0 -p 端口 -k 密码 -m 加密方式 --user nobody --workers 2 -d start" >> /etc/rc.local  

有需要的还可以配置 Shadowsocks-libev 混淆。 可选的加密方式如下,推荐rc4-md5

aes-128-cfb  
aes-128-ofb  
aes-192-cfb  
aes-192-ofb  
aes-256-cfb  
aes-256-ofb  
cast5-cfb  
cast5-ofb  
chacha20  
rc4  
rc4-md5  
salsa20  

附上SS连接教程google浏览器插件下载地址,windows版SS下载地址2.5.2版本最新版本

2.搜索引擎比较

先说结论 Google + Stackoverflow + GitHub 能解决 80% 以上的问题,而某种意义上,开发其实主要就是解决问题的能力! baidu VS Google

千度恨不得第一页全部打上广告,再看Google反馈的结果,都是GitHub、知乎、极客学院等非常有用的回答或教程。其他关键字,你们不妨自己亲自尝试比较下搜索结果。 使用英文关键字搜索,Google的结果会更准确! 单纯从搜索结果来说,百度在查询一些八卦、新闻、娱乐方面确实比Google好用,毕竟本土资源优势。然而作为技术人,在查询一些专业知识、资料文献方面的请一定要优先使用Google,这完全是两个世界。

3.搜索引擎技巧

所谓的搜索技巧就是在搜索关键字时,配合一些通配符,帮助快速定位到想要的结果。而搜索技巧常常作为SEO(Search Engine Optimization)技术学习的一部分。

3.1 基本搜索:+,-,OR

3.1.1 无需用明文的+来表示逻辑操作,只要空格就可以了。

注意:文章中搜索语法外面的引号仅起引用作用,不能带入搜索栏内。

3.1.2 用减号-表示逻辑操作

在搜java word转码时,不想让 OpenOffice 的关键字出现。和上面的例子一样,直接输入关键字,搜索结果里面会带有OpenOffice相关信息。

Solution: 使用-排除关键字

使用方法:关键字 -排除关键字 , Tip:-后面没有空格。搜索后的结果都没OpenOffice关键字。

3.1.3 用大写的OR示逻辑操作

但是,关键字为中文的或查询似乎还有BUG,无法得到正确的查询结果

3.2 强制搜索

想搜索nginx socket proxy ,直接输入关键字,会发现有些搜的结果是“东拼西凑”的,没按照nginx socket proxy顺序来搜。

Solution: 使用""进行完全匹配

使用方法:"关键字",通过给关键字加双引号的方法,得到的搜索结果就是完全按照关键字的顺序来搜。

3.3 模糊搜索

Solution: 使用关键字 * 关键字,进行模糊匹配

3.4 高级搜索

比如只想搜索某个网站下的资源

Solution: 使用关键字 site:网址,进行网站限定

类似的关键词还有link,inurl,allinurl,intitle,allintitle... - link 返回所有链接到某个URL地址的网页 - inurl 返回的网页链接中包含第一个关键字,后面的关键字则出现在链接中或者网页文档中 - allinurl 返回的网页的链接中包含所有查询关键字,这个查询的对象只集中于网页的链接字符串 - allintitle 类似于allinurl,只是对网页的标题栏进行查询 - intitle 类似于inurl,只是对网页的标题栏进行查询 - 等等

3.5 只搜索某个类型文件

Solution: 使用关键字 filetype:文件类型,进行文件类型限定

Tip:关于filetype 只有Google支持的filetype才可用,Google支持的filetype可以在Search Console Help上查到

当遇到不支持的filetype,我们可以通过#3.2 强制搜索中完全匹配的方法搜索,例如:"thinking in java.epub"

3.6 不常用搜索语法related,cache,info

3.6.1 related

用来搜索结构内容方面相似的网页。例:搜索所有与新浪网主页相似的页面(如网易首页,腾讯首页等),related:www.sina.com.cn

3.6.2 cache

用来搜索 Google 服务器上某页面的缓存,这个功能类似 “网页快照”,通常用于查找某些已经被删除的死链接网页,相当于使用普通搜索结果页面中的 “网页快照” 功能。

3.6.3 info

用来显示与某链接相关的一系列搜索,提供 cache、link、related 和完全包含该链接的网页的功能。

3.7 关键词技巧杂谈

关键词的选择在搜索中起到决定性的作用,所有搜索技巧中,关键词选择是最基本也是最有效的。

3.7.1 特定词法

例一:查找《镜花缘》一书中淑士国酒保的酸话原文

分析:如果按照一般的思路,找某部小说中的具体段落,就需要用搜索引擎先找到这本书,然后再翻到该段落。这样做当然可以,但是效率很低。如果了解目标信息的构成,用一些目标信息所特有的字词,可以非常迅速的查到所需要的资料。也就是说,高效率的搜索关键字不一定就是目标信息的主题。在上面的例子中,酒保谈到酒的浓淡与贵贱的关系时,之乎者也横飞。因此,可以用特定的词语一下子找到目标资料。

搜索:镜花缘 酒 贵 贱 之,OK,找到的第一条信息就是镜花缘的这一段落:

“先生听者:今以酒醋论之,酒价贱之,醋价贵之。因何贱之?为甚贵之?真所分之,在其味之。酒昧淡之,故而贱之;醋味厚之,所以贵之。…”

3.7.2 近义词法

例如查找 “黄花闺女” 一词中 “黄花” 是什么意思

分析:“黄花闺女”是一个约定的俗语,如果只用“黄花闺女 黄花”做关键词,搜索结果将浩如烟海,没什么价值,因此必须要加更多的关键词,约束搜索结果。选择什么关键词好呢?备选的有“意思”、“含义”、“来历”、“由来”、“典故”、“出典”、“渊源”等,可以猜到的是,类似的资料,应该包含在一些民俗介绍性的文字里,所以用诸如“来历”、“由来”、“出典”等词汇的概率更高一些。

搜索:“黄花闺女 黄花 由来”,查到“黄花”原来出典于《太平御览》,与南朝的寿阳公主相关。如果想获得第一手资料,那就可以用 “太平御览 寿阳公主” 做搜索了。

3.7.3 相关词法

分析:非常直接的搜索是,“刘德华 胸围”,但事实上,这么搜索出来的结果,尽是一些八卦新闻,无法快速得到所需要的资料。可以想到的是,需要的资料应该包含在刘德华的全面介绍性文字中,除了胸围,应该还包括他的身高,体重,生日等一系列相关信息。OK,这样就可以进一步的增加其他约束性关键词以缩小搜索范围。

搜索:“刘德华 胸围 身高” 即可

4.开源项目、技术网站、公众号推荐

4.1 国外的有

GithubStackoverflowInfoQ

4.2 国产的有

云栖社区(阿里)开源中国掘金极客学院慕课学院51CTO

4.3 微信公众号

  • Linux爱好者 微信号:LinuxHub 专注分享Linux开发和运维相关资讯,工具资源,使用技巧,热门课程和经典书籍等。
  • 码农翻身 微信号:coderising 工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
  • 架构师之路 微信号:road5858 架构师之路,坚持撰写接地气的架构文章
  • 云栖社区 微信号:yunqiinsight 云栖社区是由阿里云负责运营、阿里巴巴技术协会和阿里巴巴集团各技术团队提供内容支持的开放式技术社区。
  • 菜鸟教程 微信号:runoob 学的不仅是技术,更是梦想!
  • 春天的旁边 微信号:jnby1978 SpringSide,江南白衣的Java后端开发,唯品会基础架构,微服务实践的日常。
  • 开涛的博客 微信号:kaitao-1234567 开涛技术点滴

4.4 其他

博客地址:gblog.sherlocky.com 自己简单收集的:learning(持续更新) 大牛收集的免费编程数据:free-programming-books(持续更新)

5.开发必备

linux 基本命令;Redis 基本命令、数据结构;Git 使用;Nginx 配置;Rest;Mysql 优化;Java 虚拟机;并发编程;MQ;分布式。。。

本文由 MarkEditor 工具基于Markdown语法编写,pdf版下载