版权声明
本文首发于微信公众账号:
学习思考与成长
请注意:
无需授权即可转载
转载时候请保留以上版权声明……
我是看到有一部分学全栈的同学,问的一些问题,本来其实自己通过google搜索引擎就可以解决掉的。我可以百分百肯定他在问这个问题之前,是没有使用google去试图寻找答案,就直接提问的。所以我在想,我要是能够稍微分享一下自己使用google的一些经历。也许对大家会有点帮助。
Google是真正能提高我们自己解决问题能力的“准万能工具”。
我个人的体会来讲,从工作到现在,毫无夸张地讲:1)95%的问题和解决方案,我都是通过google为入口找到答案的;2)95%的知识点技能都是通过google为入口习得的;3)这么多年来,正是因为有了google,我才有了重返来当全栈工程师的勇气。
google已经成为我身体的一部分。关于这点,我之前其实有写过一篇文章,有兴趣的人可以去看一下。
我是如何开启主动学习的
当我还没决定学习全栈工程师之前,其实是google这个全能的助手,给了我勇气。所以我一直认为,我们在问别人问题之前,要先问问google。google解决不了的话,再提问。这也是相互尊重的一种表现。
我不记得从哪里看到这样的话,大概是说,不会使用google,你不太可能成为一个优秀的程序员。使用google基本上80%以上的问题都可以解决。因为你犯过的错误,基本上前人都已经犯过很多次了。而通过google,基本都能找到这些别人犯过的错误。
总之,我认为:如果你想要成为一名真正的全栈工程师,不管有多困难,硬着头皮也要学会如何使用google。
特别备注:以下信息分享根据google最新官方文档及自己亲身实践得出。应该不会跟实际有太多出入……
一个比较靠谱的科学上网工具很重要,直接影响到自己的学习效率,工作效率。
我自己使用科学上网工具的经历其实是有点儿惨不忍睹。我在这里稍微分享一下。
最初的时候,我是使用windows系统,用的是免费的科学上网工具,现在回头想起来,当初在找资源,因为不稳定,因为速度慢等等原因浪费了很多的时间和精力。
后面在我们公司也尝试着用国外的付费服务,发现有点小贵,而Windows折腾起来也不太顺利,加上公司就我一个人折腾,付款还挺麻烦的。就转回了用免费的。还是继续浪费着时间和精力。
直到2015年的时候,我开始在香港买了台macbook air,因为这台macbook,我的人生观和世界观好像一下子变了。那时开始,付费对我来说变成了常态,科学上网我也就自然而然开始使用付费服务。可是我使用的过程中也是遇到了一些坑,很长一段时间我都在使用一个叫“天行助手”的付费工具,当初发现一些网站,比如中文维基百科上不去。我还以为是我电脑问题,当然也是因为不是特别重要就没去刨根究底,我一般都直接用英文去搜索。
后面到了前段时间,我才知道原来是这个工具的问题。使用这个“天行助手”,一些网站是打不开的。这个问题一发现后,果断抛弃这个“天行助手”,大家记得千万别用这个。
当然,我现在就用云梯,稳定性好像也不太好,不懂是不是因为用的人太多导致的。等后续用一段时间看看。
有人推荐多肽和Surge结合。有兴趣的朋友可以一试。我后续考虑写一篇文章专门谈论这个话题。
根据我自己的使用体会是这样的:首先要用英文搜索,比如说我们在学程序过程中遇到的一些bugs,我们直接可以copy到google去搜索,往往能找到很多的解决方法。当你在找这些解决方法的时候,实在看不懂的情况下,就试着加上中文去搜索试试,这样可能很快就找到看得懂的知识点或者解决方案。这点我后面举个例子进一步说明。
其实原因很简单,国内的牛人其实也是不少,然后国内的牛人,看资料会看英文,但是,写文章一般不会使用英文来写。所以还是会有一定好质量的中文资料。这些资料我觉得是我们从“未知”跨越到“已知”的窗口。
当然如果你英文足够好,好到可以把中文pk下去的情况下。这条原则可能对你就没有参考价值。
我用英文搜索的时候肯定是会优先使用www.google.com/ncr 的,这里的ncr是指No Country Redirect的意思,因为我们在使用google的时候,用浏览器打开google,一般会被默认自动转到“本地Google”,比如我科学上网连的是香港,那么就会被默认转到 www.google.com.hk。
所以,我的做法一般是直接使用www.google.com/ncr , 不管是中文搜索还是英文搜索。
关键词的选择,我下面就直接举例来说明一下。我就举我们rails101中的“套用Bootstrap的html样式“里面的内容来看看。
_navbar.html.erb中有这样一段代码:
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
说实话,我打了好几遍以后,对这里面的有些内容还是一头雾水,不知道什么意思?这个时候,我觉得是有必要试着去理解。
这段代码的关键字是什么呢?
如果你之前都没有了解过html相关的,你可以试着把这段代码完整地都放到google里去搜索看看。你就会发现可以找到一些使用这些代码的案例。
那如果我们要了解里面的知识点。我们是要通过里面的关键字来搜索会比较妥当。比如”navbar navbar-default” 是什么意思,我们的google里面输入:
navbar navbar-default
我们来看一下搜索结果:
我们选择第一个点进去:
你可以试试用下面的关键字google看看:
nav
role=”navigation”
container-fluid
经常使用google一段时间,关键词的选择其实就靠直觉,基本上一看到什么问题或者要找什么资料,第一反应就能找到或者想到的。
你在查找一个问题的时候怎么查都查不到,就要换个思路。比如之前有个学员遇到一个使用github账号的问题,大概是她注册了一个github账号,以为没注册成功,后面又注册了一个,在使用的过程中遇到问题,用报错的信息google怎么都找不到解决方法。那这个时候得换个思路可能就能找到答案。这个本质的问题是github账号之间的切换,或者同时使用的问题。
这个site:,我是很久以前刚毕业的时候就一直在用的一个技巧。当年我计算机毕业后转行跑到做外贸产品的公司做外贸,从零开始,3个月就到了几个订单,靠的技巧之一就是site:
因为我们当初的业务是按照区域划分,我们在google里找客户信息其实有点大海捞针,我当初就是通过这个site:去定位去寻找客户信息的,我记得当初我负责的区域其中有英国和爱尔兰,我是通过:
site:uk 产品关键词
site:ie 产品关键词
找到几个目标客户,进而达成成单目标的。
再来举个例子,我几个月前,是新生大学正在进行全栈工程师二期培训的时候,有一天看到了新生大学有人发表了一篇文章,专门介绍所有学员的logdown上的博客地址,我就被迷住了去很认真的看,我看了一会,跳出来,准备再进去看的时候,发现文章已经找不到了,被删除了。
我的第一直觉是马上想到site:,于是就通过类似如下的方式,找到很多学员的博客。
site:logdown.com 全栈
你们看看效果:
找到的信息内容。这些内容你看不完的……
双引号引起来,代表要找跟引号里面内容”完全匹配“的结果。
例如:full stack web developer 与”full stack web developer”比较
full stack web developer
找到的是:
而,
"full stack web developer"
找到的是:
full stack web developer -php
备注:注意-前面要有空格且后面不能有空格
则是搜索full stack web developer 中不包含php的结果。
full stack web developer -site:www.sitepoint.com
备注:注意-前面要有空格且后面不能有空格
是搜索”full stack web developer”中不在www.sitepoint.com 这个站的结果。
*是通配符。
例如:
"full stack * developer"
就会搜索出:
full stack web developer
full stack javascript developer
full stack software developer
full stack windows developer
……
找到类似你已经知道的网站。
举例:related:github.com
你可以找到:
https://bitbucket.org/
http://stackoverflow.com/
www.redmine.org/
……
获取这个网站的相关信息:
举例:
info:slack.com
info:stackoverflow.com
info:github.com
获取到的内容非常的言简意赅。例如info:slack.com,获取的信息如下:
Slack: Be less busy
https://slack.com/
Slack brings all your communication together in one place. It's real-time messaging, archiving and search for modern teams.
当然有兴趣的同学还可以去参考google原文的解释:
https://support.google.com/websearch/answer/2466433
前面我有讲到我的一个使用原则:优先使用英文,遇到迷路时中英文结合
我来讲个实例跟大家分享下我是怎么使用这条原则的:
首先声明一下,我这方法仅限于英语水平和我差不多的人。如果是特别牛的人,请忽略这条建议和这个例子。
有一天我看到大家在讨论git stash。我就开始试着去用google搜索,这个到底是啥意思?一开始我试着用英文去搜索:
git stash
查到了如下的资料:
我打开第一条:
https://git-scm.com/docs/git-stash
看到里面这段文字:
Use git stash when you want to record the current state of the working directory and the index, but want to go back to a clean working directory. The command saves your local modifications away and reverts the working directory to match the HEAD commit.
这段文字,说心里话,我每个单词都懂,但是,结合其一起,什么 意思,我真的一下子看不懂。对于我这个基本上是个git小白的人来说,很抽象。那我又想要在短时间内搞懂一下这个的基本概念,怎么办呢?我的直觉就是转移注意力寻找别的搜索方式来更好更快地理解,其中一种是:中英文结合。
我采用了:
git stash 使用场景
得到如下结果:
我打开第一个结果:
https://segmentfault.com/a/1190000007424035
我再打开第二个:
https://segmentfault.com/a/1190000002554160
那么基本可以得出如下基本结论:
当有更紧急是事情要处理时,使用git stash是让我们把当前的工作现场隐藏/暂存起来,等我们完成要处理的事情之后,可以把这个隐藏的或者暂存的恢复出来继续工作。
当然,用英文来查找使用场景也是可以的,比如这样:
git stash use scenario
就找到这样的一条很详细的解释:
http://stackoverflow.com/questions/20537223/when-should-i-use-git-stash
参考资料:
https://support.google.com/websearch/answer/2466433
https://support.google.com/websearch/?hl=en
或是邮件反馈可也:
askdama[AT]googlegroups.com
关注公众号, 持续获得相关各种嗯哼: