Skip to content

Google not, learn not translation complete #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
原文链接: https://medium.freecodecamp.com/google-not-learn-not-why-searching-can-be-better-than-knowing-79838f7a0f06 作者:[Jeremy Gunter](https://medium.freecodecamp.org/@Gunterja) 译者:CaeChao

几个月前,当我正在阅读我家乡freeCodeCamp学习小组的一些帖子时,我发现了一个有趣的帖子。

其中一位小组成员为她无法立即提出解决方案而感到沮丧,并很怀疑事情是否会变得更顺利。在她的文章结尾,她抱怨她需要通过Google来寻找答案——好像这是件很令人羞愧的事情似的。

我非常确切地记得那到底是什么样的一种感觉。我曾对自己感到愤怒,因为无法按需求而熟练地敲出代码。我觉得使用Google来搜索答案简直是一种失败的标志。在我看来,这意味着我不具备像程序员一样思考的能力。

现在让时间快进18个月,我正受聘作为一个全栈软件工程师。现在的我花相当多的时间让Google来帮助我进行日常工作。当我通过搜索StackOverflow来寻求解释时,我不再认为它是一个弱点。事实上这是我迈向解决方案的第一步。

![T-shirt](https://cdn-images-1.medium.com/max/800/1*ub-ubkabQzm98kvO6BXHVA.png)
那么是啥导致了这种心态的改变呢?很多很多。但这里还是有一些主要的领悟点。

### 领悟#1:死记硬背任何东西都是在浪费你的时间和智商

不信?不妨瞧瞧这个Quora上的问题,上面有数百名程序员都基本上表示了[相同的观点](https://www.quora.com/Do-developers-memorize-all-tags-classes-and-functions)。

还不够好么?你可能听说过这个大名鼎鼎的家伙说过的一句话:

>“永远不要去记你可以查到的东西。” ——阿尔伯特爱因斯坦

这并不是我轻易就得出的结论。在花了几个小时的时间来阅读博客并与专业开发人员交谈后,我终于意识到一些意想不到的事情:在我们行业里最牛的人并不循规蹈矩的审视和记忆文档。实际上,他们大多数人根本不会仅因记不住任何他们不需要的东西而担忧。

![XKCD](https://cdn-images-1.medium.com/max/800/1*N1JHyptj67ckkyRJzjiB5A.png)
当然,极少数情况下,你确实是需要记忆语法。XKCD的漫画.

不妨思考下你的母语中你所知道的所有词汇。我愿意打赌,你知道的词汇比你日常使用的要多的多。如果你忘记了一个词的意思,你会怎么做?只不过是问问Siri或翻开一本字典,然后生活依旧继续。你不要停留在原地,因为不记得一个词而和自己过不去。

让我来用一个简短的故事来说清我的意思。

去年12月的时候,我在凤凰城的CSSDay参加了一个小组讨论,当时我听到一个小组成员给出了一个我已经听过不止一次的小技巧:

>“只记住你日常要使用的东西。其他一切,只需记住该如何查找它。“

这个概念和它的内在化一直是我作为开发人员的信心和进步中最大的恩赐。

在我的职业生涯早期,我努力去保留任何貌似有用的东西。基础概念,语法,最佳练习,这些都非常难以掌握。我一直都认为自己是一个聪明人,也是一个快速学习者,但我的确是相信自己已经遇到了我生命中第一个让我感到可能无法战胜的智力挑战。

这之后我便有了一个疯狂的想法:“不再关心该如何去编写代码,而是去关注理解它的用途。”我停止了对语法的过分重视,并开始愉快地写大量的伪代码。然后,一旦我觉得我已经完成了解决方案的核心部分,那么便该使用搜索引擎了!

这正好得到了我希望的效果。我不再花费学习时间去努力记住,该用什么方法将一个项添加到数组的末尾,或者是Javascript Object Literal(对象字面量)中的键值是否也需要用像它的JSON对应物那样用引号括进来(不需要)。

我不再试图去记住方法名称,而是专注于我需要执行的操作。当我想将一个项添加到一个数组的开头时,我发现Google搜索“添加项目添加到数组JavaScript开头”这个短语比尝试使用我自己的大脑记忆来区分shift(),unshift(),和pop()要容易的多。

除了试图从我自己的头脑中获得答案所花的时间减少之外,这还具有其他一些独特的好处:
    我发现自己能够以意想不到的速度快速接受新的(对我来说)语言,因为(想不到啊,想不到),大多数这些概念都可以在每种语言中找到,并且我意识到我对这些概念的理解正在迅速深化。很大程度上真要感谢我迫使自己去阅读和相关话题更多的资料,从而减少了技能上积累的欠债。

除了前面提到的我希望会是学习成果的积极面外,还有一个意料之外的巨大奖励。

### 领悟#2:你可以从别人的错误中学习,而不必自己亲自去犯这些错误

当你开始用Google搜索一个你正在面对的问题的答案时,你很快就会知道你不是唯一应对这个问题的人,而且其他人会针对同样的问题提出完全不同的解决方案。

通过阅读StackOverflow上几个不同的问题和其解决方案,可以让你看到不同的思考方式,或者暴露出你自己的方法论中的缺陷。

通过这样做,您可以让自己有机会向其他更有经验的开发人员学习,并了解他们是如何解决问题的。这样的见解是非常宝贵滴!

我不再抱着以找到确切的解决方案的目的去搜索博客文章或是StackOverflow上的问题。现在,我做这些事情,以便我可以学习不同的方式来思考问题。

### 通过搜索你可以学到更多东西。

我真的是在给自己的大脑进行编程从而能让我能跳出自己的思维牢笼来解决问题。通过了解别人会怎样来写代码,并将他人的知识与我的知识结合在一起,我让自己变得更棒。他人的努力与奋斗同时也成为了我自己的成就。

知道吗?这方法运作的...相当滴好。自2015年5月选择走程序员这条路后,我在2016年9月找到了我作为全栈软件工程师的第一份工作。

在不到18个月的时间里,我已经从仅对HTML有着极其基础理解的小白,提升到了编写Ansible脚本,在Ruby on Rails中创建后端API,以及使用React创建前端组件的水平。

我并不认为单凭字面上的定义来看自己是个高级程序员,但是我的确是对自己快速学习新概念的能力,以及能够迅速搜索语法,而不会错过任何细节感到倍儿自信。

很少有程序员会在第一次看到它们时就记住每个方法名称或函数调用。更鲜有人会依然仅依靠自己的记忆力去面对日常工作中的各种挑战。

我可以给你的最好建议是,你永远不应该害怕去承认你自己的知识盲点,并应该试图用一切必要的手段来纠正它。

世上只有一种治疗无知的方法,那就是学会提问。