我日常会在TG群、QQ群、微信群和知乎上解答新手问题,一贯给人的印象都是态度不是很好,冷嘲热讽。这并不是因为我鄙视菜鸟,我也曾是菜鸟。除了一些我好为人师的性格之外,更多时候我希望提问者能自己意识到问题所在,为什么错了,这比他直接得到一个答案有帮助得多。这么久在社区里摸爬滚打以来,我发现一些问答上不好的行为,不吐不快。

提问的方法

这个问题,已经老生常谈,我不想再赘述,但必须再强调一次,阅读下面的链接应该就可以了。

其实除了提问者的问题,回答者也有不好的行为,这也是我写这篇文章的冲动所在。

瞎回答

有的时候,某水友正抽丝剥茧分析盘问,找出bug所在或提供一个可用解决方案,结果另一个水友刚刚打开「电视机」,就蹦出来一句「用XXX就好了」。这就很要命了,新手无从判断解答方案的正确与否,他会倾向于选择一个比较容易理解的、直接了当的解决方案。而且前面那个水友跟那耗了半天,什么结论也没有,后面的水友直接一句话就解决了,此时该小白就天然偏向取信后者。殊不知认真盘问才是负责任的表现,而扔出一句解决方案的很可能是错的。非但如此,还会增加小白到达成功彼岸的成本:他选择了错误的路径,等他发现不行了,他还要费精力回到原来的状态。果然是「造谣一张嘴,辟谣跑断腿」。

这种行为不局限于社区中的互动,也大量存在于搜索引擎中的低质内容中,一句两句就说明白的解决方案,显然比那些长篇大论的英文文章更有吸引力,然而前者可能是作者胡乱尝试,碰巧解决,然后记录下来的产物而已。

别用你的了,用我的吧

Q: 用Flask如何达到XXX效果?

A: 用Django吧。

某小白终于鼓起勇气,开始学某一框架,碰到了瓶颈,结果上来一提问,被安利了另一个框架,好嘛,白学了。这也很不负责任,我觉得要说服人用一个新的框架,接触新的知识,你得对两者都有相当的熟悉度,并且清楚两者的优劣。有两种情况我会做这样的事:

  1. requests v.s. urllib, 用requests
  2. xpath v.s. BeautifulSoup4, 用xpath

其他情况,除非已有方案确实做不到,或者很难做到,我会尽量沿用提问者已经选择的方案。