在我们写程序的时候,经常会遇到各色各样的问题,在国内,小伙伴们经常去知乎、CSDN、博客园、思否、安卓巴士等地方提问并获得答案。

这些地方汇集了很多优秀的、爱分享的国内资源。小编比较自豪的一件事情就是:当初学习dubbo期间,因为一个数据关闭错误一直找不到正确的解决方式,就顺手把自己解决问题的步骤写下,并附上参考资料中的方法,算是把那类问题做了一个增强版的总结,没想过几个月后,有位粉丝专门找上来感谢我,帮他解决了疑惑。

技术人,就是那么容易得到满足。得到别人的一句谢谢,开心的像个傻瓜。前行路上,爱分享、把资源提供给更多的人,是最开心和愉快的事情。

现在是移动互联网的时代,倘若我们能链接到更多的人,倘若我们来连接的不仅仅有国内,还有国外,那岂不是更好?那么如何在国外得到自己想要的答案?我们不妨去Stack Overflow这个平台去试试,优秀的问答平台,你们懂的。

但是提问也是一门艺术,所以赶紧来看看他们的总结,助你更好地在平台上提问。

原文地址:https://medium.com/better-programming/how-to-ask-a-question-that-gets-answered-on-stack-overflow-45f87f1a2fef

作者:Nabil Nalakath

时间:2019.11.12

当有人告诉我他们在开发中遇到的问题时,在大多数情况下,我的直接答复是:“您在Stack Overflow上发现了什么?”

但是,很多开发者会给出奇怪的答案,例如:“我不知道如何使用它,我因提出较差的问题而被禁止,人们总是不赞成我的帖子,或者给我有关如何提问的链接,”等。

Stack Overflow是互联网上最有用,访问最多的网站之一,但它也是互联网上最残酷的平台之一。

如果您犯了一个错误或提出了一个愚蠢的问题,人们不会理财你,这就是该平台自成立以来一直保持其标准的方式。因此,别指望有什么收获。

相反,我们需要习惯它并改变提问的方式。够了,让我们来看看您在提问时要注意哪些重要事项。

发布问题时要注意的事项

  1. 标题要具体(不要在标题中张贴整个问题或广泛的问题)

  2. 使用正确的标签(这对于快速获得答案非常重要)

  3. 张贴代码的相关部分,并在问题编辑器中使用代码标签将其格式化为代码(如果代码不是整齐的,大多数人都不会去回答)

  4. 如果您要解释运行时出现的问题,请尝试发布屏幕截图

  5. 如果有日志的话,发布正确的错误日志(特别是在应用崩溃的情况下)

  6. 如果您的部分输出没有错误,并且想要对输出进行特定的修改,而且您似乎无法弄清楚如何,将问题分为两部分,在问题中清楚提及:

  • 你现在有什么
  • 你需要达到的目标
  1. 如果与UI相关,请发布线框屏幕截图,如果不可用,请尝试在现有的UI屏幕截图中使用诸如Paint之类的简单工具标记所需的内容或您要进行的更改

  2. 如果您认为版本代码可能与解决问题有关,请发布版本代码(例如:果问题仅在旧版本的PHP或Android中发生,而在新版本中则没有)

发布时要避免的错误

  • 切勿发布代码中包含品牌名称或公司名称的部分

  • 裁剪屏幕截图以仅显示相关内容

  • 如果代码包含部分内容,例如键或密码(例如PHP邮件程序代码中的电子邮件密码),请始终用****或特殊字符替换密码字段

  • 不要发布自己创建的特殊算法或应用引擎代码,除非您不介意其他人使用它或将其开源

坏问题和好问题

让我们看一下146票赞成的这篇文章:

地址:https://stackoverflow.com/questions/3905734/how-to-send-100-000-emails-weekly?source=post_page-----45f87f1a2fef----------------------

如您在本示例中看到的,已发布的问题不是特定问题。如果您要这样的教程类型答案,那么Stack Overflow并不是一个好地方。

以该示例为例,在这种情况下,用户要求每周使用PHP向100,000个用户发送一封电子邮件。但问题并没有显示用户方面的任何努力。

到目前为止,还没有提及用户已经尝试了什么或他们面临的任何特定错误。这是不能回答问题的完美范例。

另外,这里有一些很好的示例问题供您参考。

地址:https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array?source=post_page-----45f87f1a2fef----------------------

地址:https://stackoverflow.com/questions/51096796/how-to-enable-horizontal-scrolling-for-chart-js-in-ionic?source=post_page-----45f87f1a2fef----------------------

地址:https://stackoverflow.com/questions/47923524/app-is-crashing-on-some-devices-android-studio-shows-out-of-memory-exception-er?source=post_page-----45f87f1a2fef----------------------

如您所见,即使有人不回答,如果您以适当的方式提出问题,您仍然会获得赞成票

致谢

最后,如果您得到查询的答案并且符合您的要求,请将其标记为可接受的答案以关闭问题。

这将帮助发布答案的人获得声誉,并鼓励他们帮助更多人。

毕竟,平台的存在仅是因为这些乐于助人的无私奉献者愿意为您提供帮助,因此这是您为他们所做的最少的事情。

结尾

提问是一门艺术,小编也经常遇到很多提问看不懂、看不明白的情况。无论是在团队里还是平时和大家交流的过程中,多多少少会遇到互相不理解的情况,所以,做技术的我们实在是太难了,哈哈。

当然,如果学会了一些必要的技巧,提问对我们来说还是just so so,毕竟共同语言这么多,虽然问题形形色色,但是茫茫人海,总会有人遇到你遇到的问题,总存在能解决问题的方法。

这是一篇很好的提问的范例,不仅仅是在Stack Overflow上,包括我们自己国内的平台、自己项目组、都可以用类似的技巧来提问,能大大节省沟通成本,获得更高效率。

本文由博客一文多发平台 OpenWrite 发布!

Medium高赞系列,如何正确的在Stack Overflow提问的更多相关文章

  1. java高并发系列 - 第6天:线程的基本操作

    新建线程 新建线程很简单.只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可. Thread thread1 = new Thread1(); t1.start(); 那么 ...

  2. java高并发系列 - 第15天:JUC中的Semaphore,最简单的限流工具类,必备技能

    这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能 ...

  3. java高并发系列 - 第21天:java中的CAS操作,java并发的基石

    这是java高并发系列第21篇文章. 本文主要内容 从网站计数器实现中一步步引出CAS操作 介绍java中的CAS及CAS可能存在的问题 悲观锁和乐观锁的一些介绍及数据库乐观锁的一个常见示例 使用ja ...

  4. java高并发系列 - 第22天:java中底层工具类Unsafe,高手必须要了解

    这是java高并发系列第22篇文章,文章基于jdk1.8环境. 本文主要内容 基本介绍. 通过反射获取Unsafe实例 Unsafe中的CAS操作 Unsafe中原子操作相关方法介绍 Unsafe中线 ...

  5. java高并发系列 - 第23天:JUC中原子类,一篇就够了

    这是java高并发系列第23篇文章,环境:jdk1.8. 本文主要内容 JUC中的原子类介绍 介绍基本类型原子类 介绍数组类型原子类 介绍引用类型原子类 介绍对象属性修改相关原子类 预备知识 JUC中 ...

  6. java高并发系列 - 第4天:JMM相关的一些概念

    JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战.如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴.对于串行程 ...

  7. Java高并发系列——检视阅读

    Java高并发系列--检视阅读 参考 java高并发系列 liaoxuefeng Java教程 CompletableFuture AQS原理没讲,需要找资料补充. JUC中常见的集合原来没讲,比如C ...

  8. 年薪60W的Android程序员究竟多累、多苦?一条高赞评论扎了无数人的心

    为啥经常听到程序员朋友说自己太辛苦了.太累了,其实原因很简单:干活苦.竞争大.技术致富难. 干活苦: 有新闻说晚上十点某领导在微信群要求下属在十分钟内回复,一员工因休息早而没及时回复被裁了. 对于程序 ...

  9. elixir 高可用系列 - 目录

    1. elixir 高可用系列(一) Agent 2. elixir 高可用系列(二) GenServer 3. elixir 高可用系列(三) GenEvent 4. elixir 高可用系列(四) ...

随机推荐

  1. CSS隐藏元素 display、visibility、opacity的区别

    关于使指定元素无法在视野内看到,有3个方法 display: none; opacity: 0; visibility: hidden; 1.display: none; 该方法会改变页面布局. 元素 ...

  2. 基于Spring AOP实现的权限控制

    1.AOP简介 AOP,面向切面编程,往往被定义为促使软件系统实现关注点的分离的技术.系统是由许多不同的组件所组成的,每一个组件负责一块特定的功能.除了实现自身核心功能之外,这些组件还经常承担着额外的 ...

  3. windows下使用Jenkins+Gitea持续集成

    关于Jenkins持续集成: 一.Gitea 1)https://git-scm.com/download/win下载Git并安装 https://gitea.io/zh-cn/ 下载Gitea私人仓 ...

  4. 性能测试:Jmeter压测过程中的短信验证码读取

    问题背景 现如今国内的大部分软件或者网站应用,普遍流行使用短信业务,比如登录.注册以及特定的业务通知等. 对于这些业务,在使用Jmeter进行性能测试的过程中,就会需要自动获取和填入短信验证码,否则性 ...

  5. 使用Xming显示Oracle Linux图形界面

    如果你在尝试各种官方说明文档中的方法之后,xclock仍然无法远程显示. 系统 Win10 - Oracle Linux 7.5 Xming的文档以及网上教程都说的是Xming相关的配置 但是,要显示 ...

  6. .Net Core API使用ODP.NET操作Oracle数据库

    .Net Core API使用ODP.NET操作Oracle数据库 1.下载Oracle.ManagerDataAccess.Core. 右键依赖项——管理NuGet程序包. 在浏览选项中查询Orac ...

  7. Python3程序设计指南:02 数据类型

    目录 1.标识符与关键字 1.1 规则 1.2 约定 2.Integral类型 2.1 整数 2.1.1 数值型操作符与函数 2.1.2 使用数据类型创建对象 2.1.3 整数位逻辑操作符 2.2 布 ...

  8. 让button的文字换行和左对齐

    btn.titleLabel.numberOfLines = 0;   btn.contentHorizontalAlignment = UIControlContentHorizontalAlign ...

  9. Enum枚举学习- java5之前和之后的写法

    enum枚举 JDK1.5以前枚举的写法 /** * java5.0以前,定义枚举类.类中的对象是有限的 * @author amber * */ public class Season { priv ...

  10. 基于Groovy搭建Ngrinder脚本调试环境

    介绍 最近公司搭建了一套压力测试平台,引用的是开源的项目 Ngrinder,做了二次开发,在脚本管理方面,去掉官方的SVN,引用的是Git,其他就是做了熔断处理等. 对技术一向充满热情的我,必须先来拥 ...