当前位置:首页 > 奇闻趣事

stackoverflow 程序员神器 StackOverflow 10 岁了,它长大后想成为什么?

编译:博乐在线/怡婷

【介绍】:今年9月,程序员必备神器之一的Stack Overflow正式庆祝10周年。截至目前,SO用户数量高达930万。可能你经常在SO上找到解决方案。但是你可能并不真正了解SO。我们来看看SO创始人杰夫·阿特伍德是怎么说的。

在现实生活中,人们经常问我的工作是什么,我有一个15秒的答案:

我们创建了一个类似维基百科的网站,程序员可以在这里发布或回答问题。网站名字叫栈溢出。

截至2018年9月,我和乔尔·斯波尔斯基创作的《栈溢出》已经走过了10年。我从2012年开始做其他工作,但是我死后能让人想起我的绝对是我的老搭档Stack Overflow。

在这里,我似乎应该继续说堆栈溢出有多好,我作为创始人有多伟大。

但这些我都不在乎。

我真正关心的是堆栈溢出对程序员有没有帮助。对此,让我们来看看我的偶像约翰·卡马克,当今最好的开发者之一,说了些什么。

堆栈溢出可能为提高开发人员的效率贡献了数亿美元

说实话,2013年9月17日是很美好的一天。看到这条微博我很震惊,不仅仅是因为我经常用卡尔·萨根的方式读“十亿”这个词。每隔几天,我都会在推特上读到残忍和无尽的人类苦难,以及人们在网上互相大喊大叫。相反,那天我感受到的只有喜悦。也提醒我应该去查查Twitter,看看谁对互联网还有不同的理解。

Stack Overflow有这么多用户,帮助了一个时代的开发者。对此我感到荣幸和谦卑。然而,取得这一成就的不是我。

是你们,对 Stack Overflow 贡献了经过深入研究后想到的提问;是你们,对 Stack Overflow 贡献出了简洁而清晰的答案;是你们,编辑了 Stack Overflow 的提问或答案,并使其变得更好;

全世界开发者贡献的问答,把Stack Overflow变成了一个可以在开发领域与维基百科抗衡的创意分享知识库。真的是...简直不可思议。

但是成功故事很无聊。这个世界上有很多人是幸运的,但他们也时不时的告诉别人,自己的努力和喝高能汽水带来了成功。我觉得失败的故事更有教育意义。在创业和规划未来的时候,我把自己想象成深渊专家,开始一场比赛。这是我自己做事的习惯。

当你凝视深渊时,深渊也在凝视你——弗里德里希·尼采

所以,我想看看现在眼花缭乱的深渊,预测下一个十年Stack Overflow会遇到的挑战。在此之前,我想澄清以下事实。

1.从2012年2月开始,我不再为Stack Overflow工作,也没有对其运营提出任何建议。你问我对栈溢出怎么操作有什么建议?那你可能不认识我。你问我,我不是时不时给员工发邮件,告诉他们我的想法吗?我可能会,但我的几封存档邮件可以证明这种情况很少发生。

2.Stack拥有优秀的员工,他们中的大部分人(包括我离开之前Stack Overflow社区的成员)可以对我们的使命给出更好的解释,不像我的异想天开的解释。我会用生命信任他们吗?不,但我会用乔尔的生命信任他们!

3.栈溢出不属于我或者乔尔或者其他优秀的开发者。Stack Overflow的作品是由全世界日复一日做开发的人创作的,就像你我一样。我觉得栈溢出就像父母一样。它的目标是让孩子离开父母,成为可以独立的成年人。

4.作为Stack Overflow的创始人,在社区建立的前四年,我花了很多时间制定规则和规范。你现在读的是我的强势观点,是我的弱势坚持。以上只是我的一些想法,希望我的预测是准确的,但这并不代表我能预测未来,或者说我有资格预测未来。但是,我不会因为自己有没有资格而拒绝做一件事。

堆栈溢出首先是一个维基

Stack Overflow不仅是一个论坛,而且和维基百科有很多相似之处。我们衡量问题和答案是否有意义的方式不是看它们如何帮助特定的人,而是看它们是否能随着时间的推移帮助越来越多的人。我从2008年推出Stack Overflow就强调了这种关系。下面看看谁的地位最高。

为了强调这个核心价值,堆栈溢出增加了一个简单的函数。也就是说,用户档案将显示有多少人得到了您提供的问题和答案的帮助。

这些问答为谁服务?为什么有这么严格的审核流程?最常见的关于栈溢出的抱怨通常来自于对这两个问题的误解。

希望更多人能明白,Stack Overflow不是一个“回答我的问题”的地方,而是一个“让我们为未来的开发者建立一个有益的地方”的地方。也许堆栈溢出应该更努力地帮助用户理解这一点。

现在很多用户,甚至是黑客新闻上的技术圈的人,都不知道Stack Overflow上有一个功能,就是每一个问题都可以修改,即使是没有登录的匿名用户也可以修改。我对此深感惊讶。这个功能不奇怪吧?因为Stack Overflow是维基百科的一种,也是维基百科的运行模式。任何人都可以修改任何东西。不信你现在试试,找一个你认为可以改进的问题或者答案,点击“改进这个答案”或者“改进这个问题”,然后写下你的改进版本。

Stack Overflow有很多功能(甚至包括我自己2012年之前的动作),很容易导致用户误解其核心价值。理论上“每个开发人员都听说过、用过、理解过堆栈溢出”,但我认为这个假设是不准确的。毕竟每时每刻都有新的开发者诞生。更复杂的说,Stack Overflow有三种使用模式,从大到小,以倒金字塔的形式排列如下:

1.当我需要答案时,我会寻找答案

用户直接在网上搜索,搜索引擎会直接显示Stack Overflow中的高票。出现在搜索引擎首页,这也是Stack Overflow的主要目标。如果Stack Overflow正常工作,98%的开发人员在整个职业生涯中不需要主动提问或回答问题。只要通过网络搜索,就可以在Stack Overflow中找到他们需要的结果。这是好事,非常好事。

2.遇到难题的时候会参与栈溢出的讨论,因为简单的搜索找不到我想要的答案

只有在遇到难以解决的困难时,参与堆栈溢出的讨论才是合理的。但是我觉得这个类的用户最容易觉得Stack Overflow没那么好用,因为这样的用户可能对Stack Overflow比较熟悉,但是对出题的过程不太清楚。而当他们急于找到答案的时候,就没有时间和心思去处理Stack Overflow的背景、格式、描述、引用要求。

3.为了事业发展,我主动参加了栈溢出的讨论

这个班的用户很有经验,他们贡献了很多答案,也知道什么样的问题好,他们感兴趣,愿意回答。他们不经常问问题,因为他们知道如何搜索他们想要的答案。但是一旦他们问了一个问题,那一定是个很好的例子。

一级用户在社区里开心的走了好几年,当他们变成二级用户的时候,却突然有了不开心的用户体验。对此我并不感到惊讶。我认为解决这个问题最重要的方法是改变和提高问题页面的用户体验。还有一点值得注意的是,用户提问后可能会收到信息不足的负面反馈,但他们可能并不知道你的问题应该是“对其他用户有益,而不仅仅是对自己有益”。

栈溢出采用维基百科模式,也有很多局限性。即使用户在提问前就知道这些,也很难判断什么是“有用信息”。同样,我们经常不确定什么样的话题、人群或地方需要维基百科。海里埃塔·拉克丝有自己的维基百科页面,这是无可争议的,但是他的表弟戴夫,提出了一个关于PHP 5.6的奇怪问题,应该被包括在维基百科中吗?

随着时间的推移,重复的内容像地雷一样无处不在

我很早就预料到了。说实话,我有点庆幸自己在2012年离开了Stack Overflow,这样就不用处理这个不可思议的技术问题:重复的内容。在我听到的所有关于堆栈溢出的抱怨中,重复是我最感兴趣的。

如果你接受栈溢出类似于维基百科的前提,显然不能接受同样的理由。在维基百科中,有五个不同的意大利条目。堆栈溢出不允许对同一技术问题重复提问。我们确实有很多避免重复提问的功能,比如输入问题时同步搜索,在提交问题之前,你会看到一个明显的搜索框,鼓励用户先搜索相关问题。

...如何发现和判断重复内容是一个非常困难的问题。即使像谷歌这样拥有世界上最聪明的工程师团队,并且专门从事这方面工作20年的公司,也没有解决这个问题。

当你在一个不允许重复提问的网站上提问时,系统减重的难度取决于问题总数。和1000万甚至1亿相比,一百万处理的问题总数的权重降低是很不一样的。系统处理问题的难度会从太难处理变成最后完全无法处理。比如你问一个与美术相关的问题,系统需要根据你的问题内容过滤掉现有的众多问题,确保没有类似的问题。

等一下,还有一个比较难的问题!

相似问题中有一点内容变化也是可以的,因为十个不同的人在提出同一个问题时,完全可能使用毫不相关的词语来形容这个问题。我知道这听起来很疯狂,但是相信我:人类极其擅长做这样的事。我们希望保留这些重复的问题,并且让他们都指向同一个主问题,以便于用户更好的搜索他们需要的内容,即使这些用户使用了那些平常不太会被用到的词语去描述问题。如何判断你提出的问题是不是重复,这是个不小的挑战。多少词语的重叠才能决定一个问题是不是与另一个重复?谁来决定?不同人有不同理论。这是个以人类语言为标准的解析,然后人类吧……不可预知。这个系统无法做到让所有人满意,去重的缺陷会一直存在于系统之中。

对于日益严重的复读问题,我没有很好的解决办法。不过我想指出,早期的栈交换有很多先例。他们把网站分为“基础”和“高级”两个区域,不同区域的规则是不一样的。我们可以在其他地方找到类似的例子,比如Math和MathOverflow,English和English Learners,Unix和Ubuntu。也许是时候为主要用户构建一个堆栈溢出了,在这里我们可以允许更多的重复和更少的规则。

堆栈溢出是一个竞争系统,可以同行评议

栈溢出确实是一个相当清晰的竞争系统,它的主要标志是“总会有更好的解决方案”。根据我多年的观察,激励开发者最有效的方法就是潜移默化地暗示别人的解决方案可能比你的好。

你好,兰德尔。医生说你能听到我说话,尽管你看起来像个植物人。我是来告诉你,别着急,慢慢好起来。因为罗斯接手了你的工作,做得很好。他甚至发现了你代码中的瓶颈,说他改的代码变快了一倍。

不可能!!!!!我现在要回办公室了!

Stack Overflow的竞争品质出现在它的口碑体系中,是用户名旁边的神力号。所有的语音值都来自其他用户,而不是所谓的系统。

每当你提出问题或提交答案时,你的问题或答案可以被其他用户指向,他们可以编辑、标记、关闭、打开、顶端、步进或收起。这样做的目的是让Stack Overflow成为一个同行评审和友好竞争的系统,就像在一个公司里,你的代码被另一个你从来没有见过的部门的人评审一样。有人以友好的方式质疑你的问题是完全合理的。比如你真的要用这个正则表达式来匹配HTML吗?

我充分意识到这种竞争性的同行评议制度并不适合所有人。堆栈溢出采用维基百科模式,导致不能接受重复内容的限制。根据你的情况和背景,你在同行评审时收到的评价可能会让你觉得不舒服。

听了一些用户的反应,在Stack Overflow提问过程中感到焦虑。对我来说,在Stack Overflow上提问时,我应该会感到一种正常的“我要展现我最好的一面”的焦虑:

在你的同事面前演讲的焦虑考试要取得好成绩的焦虑开始新工作,与你尊敬的优秀同事们一起工作的焦虑第一天去学校报到,即将见到新同学的焦虑

至于我完全不感到焦虑的地方,我唯一能想到的是,工作久了,不再关注工作本身,就没有了有一天失业的焦虑。这怎么可能好呢?所以我不喜欢零焦虑体系。

也许你不喜欢竞争。那么能有几个竞争模式的问答系统吗?一个没有投票赞成或反对功能的系统,这样无论发布什么内容都不会感到焦虑。这就像一个充满你的支持者的网络。大家都相信你,祝你成功。这当然是有可能的。我觉得应该有这样的网站,用户可以根据自己的需求和目标选择自己的体验。那么Stack应该用这种模式建立一个社区吗?这样的社区已经存在了吗?这是一个开放性的问题。请在留言区畅所欲言。

堆栈溢出是为日常开发人员设计的

栈溢出的目标用户是谁,往往很困惑。这个答案很直观,从未改变:

专业热情的程序员问答平台。这是指:

目前从事程序开发的人,或者如果他们愿意,可以立即胜任程序开发的人。

如果你好奇,这个定义的一部分是开放的商业决策。为了盈利,你的用户群必须要有一部分是开发商出钱的人或者是找工作做开发商的人。整个Stack Overflow社区可能有知识共享的标签,但不是非营利组织。我们的出发点是可持续经营,这也是我们在Stack Overflow择业一年后建立招聘平台的原因。回头看,有点太早了。为了实现比2009年更好的综合用户体验,招聘平台被归类为堆栈溢出,并被置于stackoverflow.com/jobs.之下

用户的选择和定位并不意味着排斥非开发者,但是Stack Overflow确实是一个经过严格同行评审的优秀功能,对于从事相关行业的人来说已经很不错了,但是对于学生或者初学者来说也是一个非常不友好的功能。这也是为什么每次看到有人在推特上推荐学生在Stack Overflow找答案,我都小心翼翼的建议不要这样做。对于开发领域的初学者或学生来说,他们需要的与Stack Overflow提供的完全相反。他们需要的是:

一对一的指导实时屏幕共享协作实时语音理论背景知识课程初学者练习一个练习与实验的场所

这些对新手来说都是很好很合理的事情,但是Stack Overflow什么都不做。通过堆栈溢出可以从零开始学习编程吗?理论上,你可以用任何软件做任何事情,你甚至可以通过Reddit每天与人交流,如果你是受虐狂的话。但答案是肯定的。理论上可以通过栈溢出学习编程。如果你是一个喜欢比赛模式(威望、被关、被践踏)的神童,你完全可以接受你应该帮助别人而不是自己学习知识的观点。但是我强烈推荐。对于新手来说,除了Stack Overflow,还有很多更好更适合的平台。那么Stack Overflow能否成为一个适合初学者和学生的平台呢?我不知道,也无法决定。

这就是我想说的。我们可以不再看深渊。

希望我的意见不会对栈溢出有什么负面影响。总的来说,我觉得栈溢出目前很厉害。但是,不管是2008年还是2018年,我怎么想有关系吗?

堆栈溢出是你的。堆栈溢出赌这个信念:相信你的同行。堆栈溢出离不开积极参与社区讨论的开发者。你让我相信开发者社区是学习和成长的最好地方。你让我因为《栈溢出》获得了那么多好评。这不是我的功劳,而是你的。很久以前我就知道《代码恐怖》上的合作是多么强大。目前我们小区已经到了我这辈子都达不到的高度。我唯一能要求的,或者说我们能要求的,就是我们互相帮助成长。如果有人认可你的贡献,你应该为此感到骄傲。

开发人员社区的力量可以创建和结束堆栈溢出。堆栈溢出长大后会变成什么?它的未来将由我们共同创造。

PS:栈溢出十周年快乐!

1.《stackoverflow 程序员神器 StackOverflow 10 岁了,它长大后想成为什么?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《stackoverflow 程序员神器 StackOverflow 10 岁了,它长大后想成为什么?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1635663.html

上一篇

尼泊尔官方确认珠峰没有发生健康危机 事件详情始末介绍!

下一篇

江西航空通报客机在高空风挡爆裂:能继续飞但为保稳妥备降兰州 事件详细经过!

桌面工具软件 8款Windows实用软件推荐,总有一款是你的必备,建议收藏

桌面整理软件排行榜 8款Windows实用软件推荐,总有一款是你的必备,建议收藏

张艺谋电影问题 张艺某最近爆火的《悬崖之上》 有很大的问题

张艺谋电影问题 张艺某最近爆火的《悬崖之上》 有很大的问题

笔者评述:最近大火的著名导演张艺某电影《悬崖之上》,有很大的问题!这是一部追求西方救赎、崇洋媚外的电影,这是对历史的强奸。这是一部表面打着“主旋律”的旗帜,实质却“偷梁换柱”的荒诞电影。幻想依靠西方人的救赎,希望得到西方人的承认,这是张艺某电影一贯的主题。就像之前他的《金陵十三钗》,编造了一个中国妓女企图勾引洋人求拯救的故事。就像他拍的《长城》,居然编造了一个强盛时代的中国需要一个西方小偷拯救的故...

mba面试 MBA复试:面试官最关心的6个问题

mba面试 MBA复试:面试官最关心的6个问题

初试成绩已经公布,朋友们一定在如火如荼的准备复试。虽然每个学院的侧重点略有不同,但一般来说,个人综合面试在MBA面试中占很大比重,因为考官在提问时会通过面试看到准MBA学生的思维、反应和判断能力。最后,评价自己是否是未来值得给予机会的企业管理精英;这是博先生 的MBA面试中最常见的问题汇总...

笑话大全笑破你的肚子 爆笑段子:笑话精选爆笑笑话大全 笑破你的肚子!

  • 笑话大全笑破你的肚子 爆笑段子:笑话精选爆笑笑话大全 笑破你的肚子!
  • 笑话大全笑破你的肚子 爆笑段子:笑话精选爆笑笑话大全 笑破你的肚子!
  • 笑话大全笑破你的肚子 爆笑段子:笑话精选爆笑笑话大全 笑破你的肚子!

新生儿健康 新生儿健康标准,快来看看你的宝宝都达标了吗?

  • 新生儿健康 新生儿健康标准,快来看看你的宝宝都达标了吗?
  • 新生儿健康 新生儿健康标准,快来看看你的宝宝都达标了吗?
  • 新生儿健康 新生儿健康标准,快来看看你的宝宝都达标了吗?
大学学生会面试问题 大学学生会/社团面试常被问到的经典问题及答案,值得收藏!

大学学生会面试问题 大学学生会/社团面试常被问到的经典问题及答案,值得收藏!

编者按:大一新生陆续要开学了。经过紧张的军训,大学生联合会和各种社区组织正在招收新学生。想借此机会锻炼自己能力,与大学广泛接触,丰富大学生活的同学,当然也想参加各种海选面试,进入自己喜欢的校园组织~ 如果能当主角,就不要做旁观者,觉得麻烦就不要参加任何校园组织。 当然,大学里各种组织的面试...

学生会面试问题 大学学生会/社团面试常被问到的经典问题及答案,值得收藏!

学生会面试问题 大学学生会/社团面试常被问到的经典问题及答案,值得收藏!

编者按:大一新生陆续要开学了。经过紧张的军训,大学生联合会和各种社区组织正在招收新学生。想借此机会锻炼自己能力,与大学广泛接触,丰富大学生活的同学,当然也想参加各种海选面试,进入自己喜欢的校园组织~ 如果能当主角,就不要做旁观者,觉得麻烦就不要参加任何校园组织。 当然,大学里各种组织的面试...