作为搞技术的,经常会看到很多刚入这个行业的朋友,不知道如何解决遇到的技术问题。
其实,很多技术问题的答案都在stackoverflow这个网站上。如果你还不会用这个网站,我建议你认真学习下面的内容。
stackoverflow作为全球最大的技术问答网站,可以说每个搞过技术的人是必上的网站。我强烈建议每个人都学会使用,并习惯使用这个网站。
Stack Overflow和Quora、Wikipedia以及知乎一样,都是依靠网站用户自愿提供的内容来运作。用户每一天在网站上针对问题提供的回复多达5000条。大部分回复内容详尽、技术含量高。
为什么会有这么多用户不惜将宝贵时间投入这样一份没有酬劳的工作中呢?是什么样的动机促使他们将详解技术难题这样烦琐的工作当成一种乐趣?
在《上瘾》这本书里给出了答案:
这是源于人对社交酬赏的渴望。用户每提交一次回复,就能从其他用户那里获得一次加分或者减分的机会。
最佳回复的分值会不断累积,构成该条回复作者的威望值。当威望值达到一定标准时,这些作者就能获得代表特殊地位和特许权利的勋章。
当然,积攒威望值的过程充满变数,因为没有人知道自己的回复能够得到多少人的支持和肯定。
Stack Overflow的成功说明,软件工程师和常人一样,都能从为自己关注的社区做贡献中获得满足感,在这个过程中,不确定因素将看似寻常的任务变成了诱人的游戏。
用户在Stack Overflow上获得的威望值并不仅仅是一个空洞的游戏规则,还代表着一份特殊的荣誉,象征着该用户对网站所做的贡献。为其他软件程序员提供帮助并且赢得众人的尊敬,这对用户而言是一种妙不可言的体验。
那么,如何更优雅的使用stackoverflow来解决你的技术问题呢?
1
使用英文搜索
这是个英文网站,很多问题和回答都是英文的,所以首先养成用英文来搜索你的问题。
比如你在遇到这样一个问题:python 列表如何删除元素?
这时候你就可以像下面这样搜索答案,然后在搜索结果中根据点赞得票最高的找到符合你问题的答案。
到这里,估计会有人会提出一个新的问题:我不会英文怎么办?
不会英文也没关系,你可以在电脑上安装个有道词典,不懂的地方翻译下。学英文没那么难,不用专门花时间去学,每天多用自然就会了。
2
如何精确定位你的问题?
你只需要使用下面3步就可以提高搜索到问题的答案的准确度。
第1步:你使用的编程语言是什么
永远在输入问题关键词的时候先输入你使用的是哪种编程语言,这样可以很好的定位对应的编程语言的问题。
第2步:定位你在做什么事情中遇到了问题。
例如我曾经在使用数据分析工具Anaconda的过程中碰到了安装包装不上的问题。描述这件事情的英文单词是:Anaconda install pacakge
第3步:复制错误信息
一定要详细看你写代码或者安装软件过程中的报错信息,务必把报错信息的关键信息输入。例如我在使用Anaconda安装pandas的过程中报了下面的错误信息:
分析这个报错信息,我发现是上面图中红色框的关键内容,我就可以把这个报错信息复制下来。
做好上面3步以后,我就有了上面3个步骤的关键词,最后提问的问题也是这3个关键词的组合,像下面这样:
上面举的例子,可以说是搜索任何问题的一个通用方法。
推荐阅读:数据分析入门(Python) | 猴子社群第2期闯关游戏怎么玩?