如何优雅地使用 Stack Overflow?

简介: 如何优雅地使用 Stack Overflow?

Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript 窗口等。

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以上的站友可以直接编辑你的帖子。不要见怪,不要见外。


一,提问前一定要搜索,先在 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

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


相关文章
|
NoSQL Redis Docker
【从零开始】Docker Desktop:听说你小子要玩我
本文旨在帮助读者重新掌握Docker知识,特别是在Windows 10环境下安装与使用Docker Desktop的过程。文章详细介绍了从下载安装到配置镜像源的具体步骤,并通过Redis实例演示了如何拉取镜像和启动容器。
6541 1
【从零开始】Docker Desktop:听说你小子要玩我
|
XML 开发框架 JSON
成功实现C++调用C#写的库(CLR),我的个人心得与总结
成功实现C++调用C#写的库(CLR),我的个人心得与总结
2660 0
|
7月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
394 0
|
7月前
|
传感器 机器学习/深度学习 分布式计算
卡尔曼滤波的多传感器数据融合算法
卡尔曼滤波的多传感器数据融合算法
1178 0
|
机器学习/深度学习 搜索推荐 算法
协同过滤算法
协同过滤算法
1341 0
|
10月前
|
机器学习/深度学习 JSON 监控
国内最大的MCP中文社区来了,4000多个服务等你体验
国内最大的MCP中文社区MCPServers来了!平台汇聚4000多个服务资源,涵盖娱乐、监控、云平台等多个领域,为开发者提供一站式技术支持。不仅有丰富的中文学习资料,还有详细的实战教程,如一键接入MCP天气服务等。MCPServers专注模块稳定性和实用性,经过99.99% SLA认证,是高效开发的理想选择。立即访问mcpservers.cn,开启你的开发之旅!
13197 16
|
机器学习/深度学习 算法
机器学习中最常见的四种分类模型
机器学习中最常见的四种分类模型
1454 10
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
这篇文章详细介绍了Docker的基本使用,包括Docker的安装、常用命令、架构概念等,并通过图解和实践帮助读者快速掌握Docker的使用方法。
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
|
机器学习/深度学习 数据采集 分布式计算
【Python篇】深入机器学习核心:XGBoost 从入门到实战
【Python篇】深入机器学习核心:XGBoost 从入门到实战
1725 3
|
Shell Windows
电脑文件打开缓慢、右键卡顿解决方案
本文汇总了几种解决电脑文件打开缓慢和右键点击文件夹卡顿问题的方案,包括重启资源管理器、修改注册表中的Shell Extensions、以及设置在单独的进程中打开文件夹窗口。