登录

如何优雅地使用 Stack Overflow?

如何优雅地使用 Stack Overflow?


# PHP
PHP中文网 PHP中文网 2577 天前 1489 次浏览

全部回复(1) 我要回复

  • PHP中文网

    PHP中文网2016-10-26 13:36:11

    1、完整读一遍 FAQ。

    2、主观问题不要问.
    比如:

        C++和C哪个好用? 我该学C#还是Java?你最爱哪款Text Editor?

    必close。

    3、概念问题慎重问。
    比如:

        STL是啥?C++11有啥新特性?lambda和functor有啥区别?

    这种问题很容易成为duplicate,导致down vote。提问前要反复搜索,确定没有人问过才能贴。

    4、代码问题大胆问。
    提问前要把疑点范围缩到最小。以C++为例,当你为现有class添加新成员函数时,编译器报错。那么有三个部分务必贴出来。
    其一,class body 内的相关部分,无关部分在代码里注释下就行了:
    // other members,etc。
    其二,该成员的implementation,包括该成员函数的代码和其调用的函数的代码。
    其三,编译器的完整报错信息。
    加好标签,扔一句

        "Why? How to fix it?"

    就OK了。
    用代码说话,可以最大程度上弥补语言不足,而且这种问题不会被vote成duplicate。

    5、格式比行文重要!
    行文是硬功夫,需要日积月累。格式方面就简单地得多:引用的文字务必用Ctrl+q,代码Ctrl+k。多留意rep上k的人的提问,很快就清楚了。

    6、善用tag。
    相关tag尽可能多的加上去,最多可以加5个。无关tag千万不要加。比如C的问题就不要填C++,C++的问题就不要C的 tag。tag填错了容易把不相干的人引进来,人家恼了没准儿就给个down。。一个down vote 扣2rep。

    7、不要说“thank you!”。
    SO反对没有讨论价值的comments。心存感激,就up 他的answer或comment。
    实在想扯淡就开个chat room。100rep就可以开chat room了。

    8、提问之后,不要离开电脑。
    SO的响应速度非常快,马上会有comment、answer或者编辑建议之类的需要你处理。

    9、别忘记accept别人的answer。
    答主有15rep的加分,题主加2rep。

    10、随时编辑别人的帖子。
    2000rep之前,只能建议修改,一旦采纳,就有2rep的加分。
    要知道,英语不灵的人太多了,经常出现拼写错误,莫名其妙的格式更是比比皆是。随时编辑之,顺便刷rep。

    11、多问几次,就好了。

    12、然后,post your answer吧~

    13、若仍没信心的话,可以联系我。
    可以代贴,或者讨论一下语言如何组织。

    P.S. Stack Exchange旗下还有很多有意思的子站,不妨转转。
    Chinese Language 居然落后于德、法、日、西班牙语子站之后,记得去捧场~。


    更新:
    u1、珍惜每个疑惑。
    每个问题和疑惑都代表你踩到了知识边界以外的东西。此时就出现了决策上的两难:
    a、我是猛查资料,猛学呢?
    b、还是暂时放下,日后再说呢?

    正确的策略是判断此知识点与知识边界的距离。
    若在知识边界以外很远的地方,那就选b,日后再说。强行学习只会舍本逐末、事倍功半。但问题是我们自己很难判断该知识点与知识边界的距离。便捷的办法就是把问题PO到SO上去。只要能把事儿说清楚,SO n多大牛会迅速给出解答的。
    据此决策:进,为知识版图开疆拓土;退,为卷土重来埋好伏笔。

    举个栗子:
    假设你C++学习两三周,刚懂一点儿constructor、destructor什么的。这时编译器报错:

        rvalue reference %¥%#%%……&##%

    你看不懂,就把代码和报错信息发到SO上。瞬间蹦出个很nice的大叔,200多k的rep,全站排名一两百,C++ gold badge 好几枚。大叔无比耐心地回了个巨长的answer,从C++11的新特性开始扯,什么move constructor, move assignment , std::move ,rvalue reference和lvalue reference的区别,列了一堆链接要你看。该答案瞬间引来n多up vote,你的question也因此被up vote n多。
    ——此时,你要做的是:1、按照答案修改代码。2、待围观群众向大叔致敬的差不多了accept他的answer。3、知道这是跟move之类的C++11新特性有关,就齐了。
    一个月内不要碰这个帖子,就当什么都没发生过。一个月后,且开始系统学习move semantics了再翻出来细读。

    u2、勇于PO代码,善于追问。
    PO代码出来常有意外收获。比如:经常会有牛儿指出:你的变量命名不规范,bad practise什么的。此时要comment追问一下:这么写都有什么弊端?我应该怎么写?
    代码这个东西,能得到大牛的指点会少走很多弯路。
    当然,PO代码之前,要做好篇幅控制,无关代码不要贴,相关代码精简到最小才贴。这不但是尊重别人的劳动,也是对自己很好的训练。

    u3、不急于accept answer。
    即便有人已经解决了你的问题,也要等等再accept。这样做有两个好处:
    其一,多收集不同的声音。若长时间都没有不同意见,就更加确认当前answer的正确性。这种情况下该答案会收到更多的up vote,你的question也可能收到些up。
    其二,若有不同声音出现,他们之间会掐起来,从而引来更多围观,最佳答案也会随之浮出水面。如果英语过关就跟着讨论。否则可以干点儿别的事儿,过段时间再收割answer。

    u4、珍视站友对你帖子的编辑。
    他们往往会从两个方面编辑你的帖子:
    1、格式;
    2、拼写和语法。
    仔细阅读,你收获的不单是技术上的,更是英语上的。另外,2000rep以上的站友可以直接编辑你的帖子。不要见怪,不要见外。

    零,阅读 StackOverFlow 的规则说明,锻炼英语的好机会啊少年。

    一,提问前一定要搜索,先在 Google 搜索,然后在 StackOverFlow 上搜索,当实在找不到答案后再提问。
    对于那些靠搜索就能得到答案的问题,StackOverFlow 上的广大群众是毫不留情的,反对票数量蹭蹭得往上加啊。

    二,学习一些典型的提问/回答习惯,我做了一些笔记。

    提问:
    1,In my limited experience with .. 谦虚表达自己在某方面的经验

    2, I am searching for a long time on net. But no use. Please help or try to give some ideas how to achieve this. 找了很久未果,求助攻

    3,after searching around for a decent XX solution and found that everything out there was difficult to use. 找了N种方法都发现太TM难了。

    4,I' ve looked around and apparently I've got the choice between these libraries/ solutions: 说明自己是努力搜索过的,然后目前有了哪几种方案

    5,which seems it's a promising solution. 看起来是一个好解决方案

    6,Ive tried multiple variations of this, but none of them seem to work. Any ideas? 试了很多种方法都无效,求助

    7,Wanted to know if it's good practice to do that and what would be the best way to do that? 我的做法是否正确,是否有更好的法子?

    8,Thanks in advance. 先行谢过

    回答问题:
    1,If I understand you correctly, you want to xxx 如果我没理解错,你想。。

    2,Can you provided more details about your use case ? Can you provide more xml and code setting the url ? 提供更详细


    当别人回答你的问题后,你对回答的评论:
    1,thank you for your answer sincerely 感谢回答blabla


    这些感觉就差不多了,其他说来说去也都是这些套路,回答问题或者提问时多看看别人的表达习惯,也可以做记录,好记性不如烂笔头嘛。说明一下,上面的中文不是翻译,只是一个说明,方便我快速定位的。


    这本书能助你成为Full Stack Overflow engineer.


    所提出来的问题要有自己思考的内容,那是一个程序员的知识库。在提问之前你肯定对于你的事物肯定是做了很多的测试,所以提出问题的时候一定要提及你的思考方法。这是对回答人起码的尊重。
    我个人就可能会比较极端一点,对于没有自己思维就是一个干巴巴的问题在哪里我是一般就不会回答的。因为有可能你做了的我又帮你重复做了,这个是时间上的烂费。

    另外在上面提问时,请不要忘记感谢,你要感谢阅读你问题的人,因为他们为这个问题付出了自己的时间,第二当有人帮助了你时,你更加应该说声thank you,这是对回答者的一种尊重与认可

    atupal python/algorithms/cs
    3 人赞同

    问:
    1. 先谷歌或在SO搜相关问题自己尝试解决。不要问重复解决问题。
    2. 把问题描述清楚,明确地提出自己要解决的问题是啥,并写下你自己尝试过的解决方法,最好有代码。
    3. 不要问off topic的问题(看faq)。除了SO还有其他很多子站点,比如unix,programmer。。等等,在网站底部可以看到。
    4. 如果是很简单或者自己花点时间可以搞定的问题就不要上去问了。

    答:
    1. 一定要看清楚问题再回答,确保你理解了问问题的人的意思,可以通过评论问题和问者交流。很容易被踩的-_-#。
    2. 如果自己的答案有不足的地方请明确指出来。
    3. 只回答自己有把握的问题。
    4. 可以多看看那些高票回答是怎么答的,学习下技巧,比如不仅仅是回答问题,还可以引申一下问题给出更好的建议啥的。
    5. 引用请注明来源。

    刷分:
    选择自己感兴趣的tag然后一直按F5吧-_-#。

    1、首先,你英语要好,能够顺畅的表达你的见解,让别人能看懂
    2、其次,你必须懂技术,而且有经验,否则对于那些技术问题你无从下手,提问题也有技巧
    3、有职业素养,记得以前CSDN上发帖经常有“结婚了,散分”,“顶”,很多这样的帖子,居然也能挣到“裤衩”(CSND的积分奖励),但在stackoverflow,你发不了这样的帖子,要求你认真的做出回答,否则你也不需要浪费时间,不能为了reputation而去回答问题,要致力于帮助别人也帮助自己。

    大脑艾瑞克 With great power comes great responsib…
    干啥都优雅
    直接用呗
    google

    糖醋排骨 不爽你就憋着
    我在公司开 SO 竟然要翻墙的,所以先买个好工具才能优雅得起来了

    king zin 理性思辨的声音时不时浮现在知乎上

    说那么多其实也没太大实用价值, 我得感觉就是你大胆的去用,试错法。

    排名第一的做那么多准备,好吧,我就是要问个问题而已嘛。 免不了的有问题会被close,会有各种情况。 但是又有什么关系呢? 反思下,看下反馈,问题为什么被关, 多搜索,多问。最重要的是自己从这些问题(问问题的方式)中吸取教训。

    仅此而已, 你用SO又不会少块肉。 不是么

    appleleaf IT

    从下面这个被stackoverflow关闭的问题可以理解一下提问风格:

    Is the C language really outdated?
    closed as not constructive by ho1, Kev Jun 9 '12 at 15:33

    As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.


    对这种没有什么客观答案,例如讨论C语言是否过时,C++和Python谁更好之类的国内论坛讨论的火热的问题,stackoverflow关掉了,避免提交这类的主观问题。

    苏三 你想要哪个面具?
    先翻个墙?然后再解决怎么不卡地上这个网站(卡死我了摔)。剩下的和国内其他问答网站有什么太大区别么

    天空的风鱼 未入门攻城狮
    3 人赞同
    《Copying and pasting from stack overflow》


    秦晋 南七技校 / 苦逼码农 / 汽车电子 / 某挖…
    凑个热闹,答主StackOverflow贡献700分,应该属于已入门选手。

    1.一定要具体再具体。回答问题的多数都是程序员,最恨的就是需求不明确。

    2.一定要有排版合乎规范的代码。代码中提到的所有变量常量名等单个词在讨论叙述中一定要用代码格式引用。

    3.问的问题要包括你自己的理解,越具体越好。如果不对。一定会有人纠正你。

    4.对于其他人提出的自己懂的问题,如果感觉别人的回答有补充余地,或者你有自己的角度,一定不要吝惜自己的笔墨。总不能大家都讲索取不讲奉献吧。

    P.S: 具体怎么掌握楼主多用用就知道,反正SO管理员挺勤快的,违规的都会被纠正

    呵呵
    英文不好表示好尴尬

    我英语不好,我想肯定别人的回答,怎么都没有投票或者点赞的地方

    从另外一个角度来说,想不优雅都难!为什么这么说呢?因为不优雅的问题和回答都会被人关掉。这叫去噪音,噪音小也是SO的一大亮点,也是大家愿意去访问的重要原因。

    stackoverflow 操作还是有很不错的 新手引导的 看明白说明 跟着引导做 基本就ok
    别为了那个荣誉而回答问题
    人家不任你乱写的东西 得几个负分 会影响你的"声誉"的 ..

    表述清楚问题关键所在,不拖沓。若有,请附上相应代码与截图。态度诚恳,及时关注问题的回复情况。

    回复
    0
  • 取消 回复 发送