其他
为什么新手在编程社区提问经常得不到回答,甚至还会被嘲讽?
The following article is from Crossin的编程教室 Author Crossin先生
已获得原公众号的授权转载
学编程难免遇到问题,遇到问题就需要上网求助。然而有过不少同学向我诉苦,说在网上提问没有人回答,有的还收到一些不是很友好的回复。我自己也在经常上的论坛上目睹过类似的帖子。以至于有人说,程序员社区就是对新人不友好,不愿帮助新人,甚至说这是怕别人学会了来抢饭碗。
对此我想正名一下,程序员们大多很单纯,而且这或许是这个星球上最乐于分享的群体。但在这个充满理性、逻辑至上的群体里,有着自己一套规则。当一个不懂规则的人出现在群体中,往往会被“教做人”。
如果你也曾遭遇这样的问题,或今后打算在编程社区里成长,请务必看看我接下来要说的东西:
如何正确地在编程社区提问?
绝大部分得不到满意回答甚至引来不满的问题,都是问题本身的原因。我本人在网上回答了这么多年问题,也经常是深感困扰。提出一个好问题,对于提问者和回答者,都有很大帮助。
提问前准备
当你打算上网求助前,先问自己2个问题:
我搜索了没有? 我检查了没有?
关键词选得不准确; 你确实碰上了特殊情况; 你犯了某些低级错误。对新手来说,3的可能性更大。所以请务必自己检查下,单词拼写对不对、标点是不是英文、缩进空格对不对、括号引号是否成对、文件路径是否正确……
问题的表现 平台和版本 输出的报错信息 相关部分的代码
搜一步就可以解决的问题。比如“Python 里怎么读取一个文件的内容?” X-Y 问题。所谓 X-Y 问题,就是你要解决 X 问题,你认为可以用 Y 方法解决,然后你就问怎么实现 Y,但其实 X 问题根本就有更合适的解法。比如“我怎么取一个字符串的后3位?”,而实际他想解决的是“怎样获取文件的文件类型?” 笼统而抽象的问题。比如“我能不能学会 Python?”。这个问题被问的频率很高,但这不该问别人,问你自己。 不要乱猜原因,甚至声称是别人代码的 bug。你需要客观描述和分析问题。比如“我一输比10大的数就不对,是不是 Python 在我电脑上有问题?” 不要把多个问题混为一谈,分清楚因果。代码有不止一个错误是很正常的,如果别人的方法让你的报错发生变化,说明对上一个问题起了作用,这种情况需要进一步分析,而不是立刻回复一句“按照你的方法改了还是不行”。(这种属于真的不礼貌,会让回答者不想再理你) 在开放的论坛、讨论组、问答网站,尽量不要通过发私信、加好友的方式来提问。(事实上,这种方式大多也无效) 不要妄想让别人替你调试 bug、写作业、开发。
哪位懂Python的帮我看下这是什么问题?
(一张几十行的代码截图)
我的程序里将输入和变量比较大小,结果报错,请问是为什么?
我是Python3
报错:
TypeError: '<' not supported between instances of 'int' and 'str'
(代码+输出的截屏、代码文本)
我的程序里将输入和变量比较大小,结果报错,请问是为什么?
我是 Windows 下的 Python 3.7
报错:
TypeError: '<' not supported between instances of 'int' and 'str'
提示是第11行:
if answer < num:
我在前面加了 print,两个变量都是有值的。
(代码+输出的截屏、代码文本)
How To Ask Questions The Smart Way
http://www.catb.org/~esr/faqs/smart-questions.html
【中文版】提问的智慧
https://github.com/FredWe/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md
<END>
程序员专属T恤