为什么说会使用搜索引擎对学习编程很重要
前段时间,二胖在知乎和微信公众号同步发布了一篇文章《这可能是我见过的最好的编程指南》,讲述了二胖从刚上大学到现在总结的一些学习编程的方法。
二胖很高兴此文得到了很大部分人的认可,目前文章的阅读量很高,在知乎已获超过8000次赞同、上万次收藏,还收到了很多朋友的打赏。这篇文章在公众号上也有6000多次的阅读了。
01
起因
我为什么提到这篇文章呢?起因是我在这篇文章中介绍了我以前的一些规划和总结,并且把自己做的这些规划记录到了一款云笔记上。
它着实提高了我的效率,所以在介绍学习编程的方法时,我就截了一些图来作为例子,这些图中的内容也正是写在这个笔记软件中的。
有很多同学看过这篇文章之后就给我留言、发私信,咨询我这款软件的名称。开始时,我挨个回复大家,但是后来我发现太多人问我了,我就在知乎上将这个笔记相关的信息置顶了,目的是让大家看完文章之后能够看见这个问题,从而自己找到答案。
知乎评论截图:
微信公众号评论截图:
可是,后续的问题还是不断,我每天还是会在知乎私信、文章留言区和公众号后台收到一部分同学的提问“请问你在文章中说的那款记笔记的软件是什么?”。
我并不是嫌弃,也不是不想回答,我只是好奇,为什么他们不爱看评论或者自己去寻找答案?其实点开评论区给我留言的时候,明明看一眼置顶留言,就能找到答案啊。
除此之外,还有很多童鞋问我一些只要百度一下就知道答案的问题。
所以今天,二胖想说的是在学习的过程中,如何才能高效快速地找到答案,并且能让自己印象深刻。
02
提问的艺术
我记得在大二的时候,老师推荐我们看了一篇文章叫《提问的艺术:如何快速获得答案》,原文讲的是程序员在各种社区提问的方式,以及我们在遇到一个问题之后应该怎么去解决。
当然我说这个并不是厌烦别人向我提问,我说这个只是我认为,在学习过程中,我们难免会遇到问题。如果我们掌握一定的检索技巧和提问技巧,就能在很大程度上提高我们的学习效率。如果一直用伸手党式的学习方法,第一个缺点就是你会久而久之地养成惰性,一遇到问题就慌了神;第二个缺点就是,你周围的同学和同事会越来越不愿意回答你的问题。
举个例子:二胖在上篇文章《开源一段代码-微信好友分析》讲解代码的时候提到了要安装一些库,这部分内容我写在了github的文档上,考虑到部分同学可能还没有学习使用github,我也在微信留言中置顶说明要装一些库,如下图:
后来我在微信后台收到提问:你的程序可能有点问题,提示"can not import name PIL in line 3"
我当然理解,可能有的同学没有看到留言,所以没有安装这个库,但是我心想,这不是提示的很明白吗,不能import这个库肯定是没有安装啊?不过想到这个同学可能是初学者,所以我就回答他"pip3 install pillow"
过了一会儿他又给我留言说:还是有问题,运行的时候提示"can not import name pyecharts in line4"
我。。。
我又回复:pip3 install pyecharts
过了一会儿他又给我留言:还是提示"can not import name itchat in line5"
我这时真是很绝望。
这明明就可以百度到的啊,并且直接输入前两个单词就弹出了这个检索语句,说明这是一个高频的检索问题。
虽然最后这个同学的问题解决了,可是我相信他并不知道自己究竟遇到了什么问题,也不知道我给他回复的那三行命令到底是什么意思,下次遇到同样问题的时候还是一样不知所措,只会机械地运行程序,而不去问为什么。
我刚学编程的时候对很多问题也不明白,但是我会慢慢去百度查,当你第一次遇到“can not import name”的时候,你不应该放任不管,而应该弄明白这句话是什么意思。噢,原来是没有安装第三方库,那么再遇到同样情况的时候一下就能明白出错的原因是什么,而不是不求甚解。
03
擅用搜索引擎
本文的标题是《为什么说会使用搜索引擎对学习编程很重要》,但其实,这里的搜索引擎并不是特指百度和谷歌,学习也不仅限于编程。
这个世界很乱,数据很杂,我们缺少的不是资源,也不是数据,而是找到数据的大门。
搜索引擎就是这样的一扇门。
前段时间,我在工作中需要用到一项新技术,而部门中并没有人用过这项技术,所以我需要去调研。在调研的过程中我发现几乎没有什么中文资料,唯一的中文文档也是几年前的2.x版本,而最新版本是英文版,已经更新到了6.x版。
没办法,那就硬着头皮读英文版呗,遇到不认识的英文单词怎么办?查。读得差不多就开始用,使用的过程中遇到很多无解的问题,周围又没有人会,怎么办?先上百度查,百度查不到上谷歌;谷歌还查不到,上Stack Overflow;Stack Overflow也查不到,我最后在github上的issue区找到了答案。可以说是一波三折,但在此过程中,我真正学会了这项技术。
整个过程,从调研、设计、开发,到现在的调试以及准备上线,很难,但是逐一攻克难点,就是确确实实的成长。
说个题外话,这是工作,不是在学校上课。学校学习不好,没事,最多就是老师找你谈话,可是,工作不一样,工作指标完不成,那就是KPI完不成,和工资、奖金、发展挂钩。并且,如果你掌握了一项技术,别人没法替代你,或者说别人在短时间内不能替代你,那么这项技术就增加了你的竞争力。
除此之外,搜索引擎还能做很多事情。虽然我的本职工作是程序猿,但我有时又会自称厨子,为什么呢?因为毕业以后我就自己做饭了,也是从零基础开始学习,通过搜索引擎搜索各种菜谱学习,慢慢学会了做菜,我也在知乎上回答过相关问题,关于我做菜的一些感想。
上图是一年前快毕业那会儿回答的,那时我就提到了自己做菜是通过搜索引擎学习的。那时候只有106个赞同。
而8个月前,我又发了一篇文章,有了1000赞同,时间可以证明一切。
也可以给大家看几个我做的菜,好像有点偏题,不过就当是文章的一个中场休息吧。虽然不是很专业,但做菜作为我的业余爱好,可以让我在想家的时候可以感受一下家乡的味道,而这些菜完全就可以通过搜索引擎查询相关菜谱复刻出来。
下图是毕业那会儿邀请室友来我住的地方,给他们做的菜:
下图是去大连玩的时候做的海鲜:
下图是上个周末做的干锅大虾排骨双拼:
除了做菜我还学会了运营公众号,【大数据前沿】是今年二月才开始做的,也是从零学起,写文章、宣传等等,在大家都说公众号红利期早已过去的2018年,我用4个月时间把公众号粉丝从0人做到了上万人,知乎【二胖】也有超过20k关注者了,这当然离不开大家的支持,感谢。这些知识对程序员来说是全新的,没有人来教,只能靠自己通过搜索引擎来查询资料,并在实践中不断探索,虽然很难,但也是实打实的成长。
04
并不是什么内容都需要记笔记
记笔记很重要,但不是什么内容都需要记笔记。因为在学习的过程中,成体系的内容是最好学习的,最难掌握的就是那些零碎的东西。我认为笔记就用来记录一些精华的内容即可,什么是精华的内容,比如说方法论。
举个例子,比如说你今天在学习的时候找到了适合自己的学习方法,深有体会,那么可以把这个体会记录下来。还有就是一些经验性的内容,我们学会写字和能写出优美的文章是两回事,那么学写字这个事情我们就不用记下来,交给字典就好,而写出优美的文章就需要一些功底和学习体会了,这就需要记录下来。
我在学习编程时记的笔记,就把经验分为以下4类,这些内容都不是在文档中能找到的,像一些黑技能,这种提升程序性能的体会真的只有在遇到过之后才能有体会,就一定要记下来。
那文档又怎么记录呢?
文档是成体系的东西,是有标签的、符合思维逻辑方式的,我们可以直接用浏览器书签去保存。
下图就是我浏览器书签栏中的一栏,我使用的是Chrome,它的好处就是可以通过google账号多平台同步,在家在公司都能用,这样比较有规划有条理的工作学习,能提高不少效率。
细心的朋友可能看到了右上角的文件夹,菜谱,对,好吃的菜谱我也会收藏起来,下次点开即用。
好了,说到这里难免有些啰嗦,已经深夜12点了,我为什么选择在这个时候写这篇文章呢?因为明天和这篇文章一起推送的文章是一篇广告。嗯,这是我第一次接广告,发了23篇文章后第一次接广告,希望读者能理解,毕竟持续输出需要一定的物质收入,虽然收入微乎及微。
当然我写下此文的目的也是想要在发广告的时候给大家一些干货,这样你花费时间阅读我的文字也有所价值。
如果你觉得本文对你有一些帮助,请给予一定的赞赏,能让我有动力继续写下去。
扫描上方赞赏⬆️
扫描下方关注⬇️