现在的位置: 首页 > 综合 > 正文

初学者怎么去提问?要注意提问的方法

2013年02月26日 ⁄ 综合 ⁄ 共 3213字 ⁄ 字号 评论关闭

//转载请注明出处:http://blog.csdn.net/KuGames 谢谢。欢迎去我的个人网站:KuGames.Net

【首先感谢“提问的艺术”带来的灵感】
文/Sε√ēη(KuGames) 

每次在逛论坛看贴吧玩知道的时候,总能看到很多人提问题的方法千奇百怪。我就一直很想写个文章来表态一下,提问也是一门学问!初学者怎么去提问?要注意提问的方法!要懂得提问的艺术!写下这篇文章旨在帮助你更快地解决问题,让你获取你想要的答案。当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度, 同样取决于你提问的方法。本文旨在帮助你提高发问的技巧,以获取你最想要的答案。

第一点,也是最重要的一点!别问应该自己解决的问题!
就是自己的问题自己先尝试解决!不要遇到什么问题就马上问!

在提问之前,你可以先尝试从以下途径里寻找答案:   
1.查阅使用说明书(例如假设你是VS用户,可以通过MSDN),试着自己寻找答案。如果找不到再选择问别人,如果自己解决了也会对这个问题更有印象,下次再遇到的时候也许你就能马上想起解决方案了。  
2.在FAQ(即"常见问题解答")或帮助文件里找答案   
3.在网上搜索,注意关键字的选择,不要盲目把一整段代码或错误直接就拷贝到搜索引擎里,要有针对性
4.向你身边精于此道的朋友求解。
当然有些人就是碍于面子不肯向认识的朋友询问。也懒于自己动手去寻找答案,于是自己还没有思考的情况下就直接发帖求助了。
举个简单的例子,我曾看过这样的一个问题“代码运行不了,请大侠帮我查查”
其他代码省略,例子只需要这一句:
int main()
{
   xxxxx;
)

你看到错在哪了吗?

提问者问这个代码哪出错了,我真想不明白,就算你没发现main函数结尾是')'而不是'}',那么编译器错误提示总该有吧!!!你看了编译器的提示信息了吗?你发张帖子的时间早就够你把')'改成'}'改一百遍了!
首先,我就极力反感这种一点都不独立思考的人!当你提出问题的时候,首先要说明在此之前你做了些什么。这也能帮你树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果提问者能从答案中学到东西,我们更乐于回答你的问题。

第二点,这是问题最严重的一点!
有些人,二话不说,帖子一上来,直接贴一个几百上千行的代码。等一大堆代码贴完后,就直接附上一句“代码错误,请各位大侠大哥帮我查查”等等。。。
代码出错很正常,没有错误,就不会进步!可是遇到这种情况,作为一个合格的程序员,我们首先要做的不是求助,而是去查错,怎么查?
你先根据编译器提示的错误,以及在哪错了,然后再到相应位置检查代码,如果实在找不出,你起码知道大概哪一块错了吧?你总有自己的一点想法和理解吧?你总要描述一下你想干嘛然后实现不了吧?
就像你去看病,到了医院,医生问你怎么了,你说不舒服,他问你哪不舒服,你也不说,直接让他来一个全身大检查。你是闲着没事,想烧钱烧时间吗?

所以,在你实在无法通过编译器找出问题原因的时候,请你要做好周全的思考。准备好你的问题,做好描述和分析,以及锁定某一小块的出错点,代码要工整,注意缩进和注释,要有好的代码习惯。草率的发问只能得到草率的回答,甚至根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。  
另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心。

第三点,问题的题目一定要先写清楚,相信大家也见过下面的几种提问方式:
    ①.C++初学者的求助。。。
    ②.请各位大侠帮帮忙啊
    ③.搞不懂啊,求解释。。。
    ④.一个简单的C++问题
    ⑤.本人菜鸟一个,想求助各位大虾!
还有很多很多,我就不一一举例了。说了这些并不是要针对谁,只是举例分析我们常见的一些提问的症结。
大家看了这些后有何感想?这些题目给我的感觉就是敷衍人,你说连题目都没明确表达出自己想说什么,还谈如何提问?
如果你以以上类似情况问问题,只能让我们感觉你对回答问题者的不尊重!互相学习,也顺便互相交个朋友,我希望大家都能互相尊重,珍惜大家的时间,这样问题也能圆满解决,何乐而不为呢? 
使用含义丰富,描述准确的标题。大约50字以内的主题标题是抓住资深专家注意力的黄金时机。别用喋喋不休的“帮帮忙”(更别说“救命啊!”这样让人反感的话)来浪费机会。不要妄想用你的痛苦程度来打动我们,别用空格代替问题的描述,哪怕是极其简短的描述。
大家再看看下面的几个问题:
    ①.堆和自由存储区有什么区别?
    ②.关于指针和引用的问题,请帮帮忙!
    ③.提个小问题,有关MFC下多线程的
    ④.如何将输出对齐
    ⑤.关于内存泄露的问题求助!谢谢各位帮忙!
这几个首先就把大概问题给表述出来了。也许有人会问,“都不知道错在哪,怎么写得出大概的问题?”但是,你可以把你代码的目的描述出来,这也是好的。就比如第④个。而第⑤个不光写出了问题大概,还附带“谢谢各位帮忙”,简简单单一句话,却体现了提问者对回答者的尊重与感激。

如果你有很多问题无法解决,礼貌将会增加你得到有用答案的机会。   
问题解决后,加个简短说明并记得感谢提供帮助的朋友。  
问题解决后,要跟帖说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在帖吧引起了广泛关注,应该在那里贴一个补充说明。补充说明不必很长或是很深入,简单的一句“原来是××出了问题!谢谢大家!尤其是××××,感谢你们耐心的回答!”比什么也不说要强。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇学术论文更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。这种补充有助于所有提供过帮助的人从中得到满足感。这种感觉对于那些你向他们求助的导师或者专家而言,是非常重要的。问题久拖未决会让人灰心;好人有好报,满足他们的渴望,你会在下次贴出新问题时尝到甜头。

第四点,口气过于嚣张,问题让人无语。
不知道大家有没有被下面这种问题雷倒过,不是大家不想帮你,是你的问题没法让大家回答。
比如:
    ①.求MFC教程和教材
       需要代码,还要详细注解!可以发送到我邮箱×××
       我用的是VS2008,所以请用2008版的教材给我!谢谢!
       题目就这么简简单单几句话。
       估计这样提问的口气,就没有几个人愿意回答了,你是在提问还是在提要求,大虾们还要为你服务不成?
    ②.c++新人求助啊,大一作业
       …………(问题描述)…………
       一直以来,大家都说了,不要问作业,不帮你们是对你们负责。你应该自己完成,遇到问题再来询问!
    ③.还有就是喊着编译器报错,然后一没给代码,二没给截图,怎么回答?

以上三个问题也基本反映了提问的一些问题,不要问作业,问问题的语气不要求你有多柔和,但也不能反客为主,并且作为提问者,题目首先得让大家弄懂。

最后,就是那些被讨论烂了的话题,比如么学好C++?学C++看哪些书好?学哪门语言好?这类问题个人觉得没有太多必要讨论,当然问了也无伤大雅。偶尔讨论交流还可以,但是希望提问者对于这类问题自己百度谷歌,因为这种问题永远没有一个正确的答案,也永远没有讨论结束的一天!

最后总结下:对于提问问题,首先要百度,谷歌,可以在网上查到的,就先去查,如果查到了还无法解决,再去提问;其次,提问时,要注意上面我说的几点问题 。

相信提问时注意了这三个问题,一般问题都可以圆满解决的。

转到我自己的贴吧去了,欢迎去:http://tieba.baidu.com/kugames

原帖地址是我之前的博客:http://blog.csdn.net/seven807173440/article/details/6820075 现在搬到这个。

抱歉!评论已关闭.