注册 登录
编程论坛 C++教室

[科普]如何问问题,才能得到有效回答,而且不被训斥

peach5460 发布于 2013-07-31 19:50, 2431 次点击
本来想写的标题是"我为什么讨厌你们这些新人"
但是又怕有些心理承受能力低的人进来哭哭啼啼的骂人...
我这篇教程,只写给真正想学好C++的人,如果确认自己不是请自行离开...
底下的回复如果不出现过激回复,我尽量摒弃我一贯的语言风格,尽量循循善诱一点...


1,提问的智慧
阅读本文的同学,请先去看这篇文章
http://www.

再次我特此提醒
1,提问前,请先确认一些事情...代码是否能编译通过...如果编译不过,编译器提示胜过任何大牛
如果编译器能编译过,调试过没?代码逻辑是否如你预先设想的那样???
2,是否已使用搜索引擎???
推荐使用谷歌,不会翻墙就找翻墙教程去...百度的相关性匹配太烂了...

2,我和你们的关系
在这个世界上,除了你的家人,没人跟你有半毛钱关系...
我们来到这个论坛,聚集在一起,大家的预想是相互扶持,相互帮助...
这里不是培训机构,没有人拿你半毛钱的报酬...

曾经在论坛里,有一个人发短信质问我..."你每天训斥那些新人,打击新人...那么这个论坛有什么存在的意义?难道只是为了高手找快感?"
我回答他:
找快感没错,要是我技术再高一点,我就去CSDN找快感了,呵呵
但是,论坛对于新手存在的意义,不是说为你不劳而获开一扇门...
假如你手脚健全,有自我谋生能力,那么你去公益组织领救济金,有人会理你吗?
公益组织存在的目的,是帮助那些真正有困难的人,尽人事,行人道...不是为你不劳而获开一扇门...

论坛里,我看大部分也就是新注册的新人,看到这么多的新人我很开心,说明编程世界每天都在增加新的血液...
但是,你们问问题的思维和逻辑真的是不敢恭维...
作业贴撇开不谈,我不知道谁会去写,反正我不会...即使有酬劳...

我自我定位,是一个比你们多吃几年饭的普通人而已...
我可以简介一下我自己...毕业四年...入国企荒废了两年...
去年毅然决然的辞职,回归编程行业...
现在C++烂的一塌糊涂,MFC一窍不通...懂一点设计模式,有一点面向对象思想...说不清面向对象和面向过程有什么区别...
在公司写的代码BUG频出,凑合能用...目前在公司的底层架构中打拼,远离界面...
在这个坛子里,只想尽一点绵薄之力...帮助一些新人成长,最好超过我,然后我向你学习...
三人行必有我师嘛...

3.什么叫作业贴?
我的定义是,只有题目,没有思考过程,没有自我思考的帖子...
举例:"XXX管理系统"...大家司空见惯的吧...每年八九月会充斥大量这样的帖子...
技术上无非就是链表加结构体...增删改查基本功能...
如果你贴了题目,说求大牛给代码,我绝对不会给的...
如果你上网随便找一段代码,你就祈祷我看不出来吧?
曾经有一个人,做类似的题目...洋洋洒洒贴了一大段代码...最后说编译不过,求修改...
我差点以为这人水平还可以了...因为他的C++代码用到了对新人而言极其复杂的函数指针,模板...
结果编译错误无非就是少个分号,字符集不对...
于是我把编译错误贴出来问他,这个编译错误是什么意思?(错误提示记不清了,但肯定是常见的编译错误)
结果他反问我:"不帮就算了,拽什么拽?"
我无话可说...

4.好了,说回正题...如何问问题...
首先,我再次确认一下...你看过那篇<提问的智慧>了...
那么问问题分为几个步骤...
第一步,自己找错误,这是提高最快的方法...
而且可以确保你第二次不要问过于白痴和弱智的问题...
第二步,如果确认使用过搜索引擎了...
如果你是新手,那么你碰到的大部分问题,一定有别人遇到过...
大家都是新手过来的...谁没犯二的时候?有时候你想了半天想不出答案,搜索引擎搜一下,看到相似的问题,突然就茅舍顿开了...

但是犯二得有个限度...
给你们讲个笑话,小学里,老师出题,已知一个胡萝卜5毛钱,求三根胡萝卜多少钱...
过了一会儿,有一个学生举手...老师说,你有什么事啊...
学生说,是一个胡萝卜五毛吗?
老师说是呀...
学生说哦,之前算错了,我以为是卷心菜呢...

我说这个笑话是为了告诉你,要学会灵活变通...
说回作业"XXX管理系统"和"XXX商城购物车"有什么区别?
没区别,同样是链表存储结构体,包含增删改查等常规操作...
所以,请学会透过现象看本质...
我上班第一年...我的技术总监问了我一句话:"你觉得程序员是什么?"
我答不上来,因为书本上没有参考答案...
他说,他觉得,程序员就是一个外语翻译...将用户的需求,翻译成计算机语言,然后用某种语言实现出来...
写程序和翻译是一样的...翻译而言,两种不同语言不可能一字一句都丝丝紧扣,两种语言肯定会有出入...所以翻译需要把握源语言的段落大意,然后使用目标语言将他阐述出来...
写程序,也就是把握你的客户需求里面的操作流程(这里我不知道怎么表述好)...然后使用编程语言实现他...
而把握需求的数据流程,操作流程这个过程,更深入一点说,这个思想过程,就是OOA...面向对象的分析...(好吧,你也可以面向过程,面向XXX)...
大牛们说得很玄乎,很绚烂夺目...说白了,00A就是你的思考过程...

好吧,我已经不知道扯到哪去了,说回来
第三步.好吧,请确认你实在找不到找不到为什么了,那么大胆提问吧...
如何提问...
首先,你要阐述清楚,你的用户需求...就是你要做一个什么样的软件...
这里给你们普及一下知识...
没有任何一款软件可以包罗万象...世上存在的软件一定是在一定的框架上搭建出来的...
比如PS,美化图片的旗舰级软件...但是他处理不了GIF,处理不了SVG...因为他的设计之初的定位就是处理像素图片,例如PNG,JPG...
有没有可能支持GIF呢...不可能...因为底层的框架限定了他的处理范围...
除非他抛弃自己的已有技术,重新做一套新的软件...
说小一点的东西吧...大家课程设计都做过计算器之类的东西吧...支持加减乘除运算...
其实这也有限定范围,比如,上百位的数加减乘除,你能支持吗?
大部分的人的实现无非就是int和int运算一下吧...
所以软件的需求决定了软件的框架...
所以你提问题的第一步是需要正确的阐述你的软件需要解决什么问题...

其次,如果需求比较复杂,啰嗦...最好带上测试用例...
也就是说,假如你的需求很麻烦,最好你还要带上期待的输入输出是什么...
这里再给你们普及一个知识...在用户的眼中,软件是什么?
软件是一个黑盒...
就像绞肉机,进去的是大块的肉,出来的是肉丝...
软件可以设想成一个机器...进去的是用户待处理的数据...出来的是用户需要的数据...
如果任意一个待处理数据都能出来正确数据,就是正确的软件...
如果进去一个数据,出来的错了,那就是软件BUG了...
所以,在第一个提示里面,我们解决了,我需要什么样的机器...
第二个问题,你需要告诉我们,你需要进行如何操作的机器...

第三,你的分析...
你们贴的代码,少的几十行,多的上百行...
作为想帮助你的人...我要做什么,你换位思考一下...
我需要吧你的代码全部拷贝到我的工程中...也许你的代码还include了一些不知道什么东西的玩意...
也许我把你的代码拷进来还编译不过...
即使能编译过,可能你的代码还需要我调试一下...
如果你能告诉我你的分析,那么将大大缩短我找出问题的时间...通过比较自己的分析和最终的答案,自己也可以更快的提高...
time is money friend...

第四,学会找出自己的核心代码...
曾经有个人写了一个XXX管理系统出错了...
贴了完整代码...我当时很想帮他...
但是我把他的代码考下来...发现又是密码验证,又是保存文件,读取文件(问题不在文件操作上)
然后我考下来,编译还可以过...但是运行时,密码验证有问题,我大致瞟了一眼代码没看出什么问题就放弃了...
其实他的代码问题出在增删改查操作上...后来那天晚上项目组开会,实在闲得无聊了,就盲看了一次,发现是操作逻辑有问题
为什么他得不到帮助...因为你给了太多的庞杂因素...
所以当时我不想去浪费时间...
好吧,这里有一个逻辑悖论...我又希望你给的代码够核心,又希望你能贴出完整的代码...
所以,请你分析,自己的代码核心在哪里?这也是自己提高的一个途径...
当然,新手可能分辨不出...
以后有空,我可以再写新的教程...

[ 本帖最后由 peach5460 于 2013-8-1 08:08 编辑 ]
31 回复
#2
peach54602013-07-31 19:50
困了,就写这么多吧...

第一次当C++的版主...希望能帮到大家...
问问题是要有诚意的...你有诚意的问,我自然有诚意的回答...
伸手不打笑脸人嘛...

你们问问题的时候,扪心自问,自己想过上面的那些话没?
新手并不可怕,可怕的是你不思进取...
没有人有资格嘲笑新手,顶尖的大牛也是从新手过来的...

但是任何人都有资格嘲笑那些不思进取的人...
如果你发帖时,注明...
我只是为了过二级,我不想学编程...
或者我只是为了做作业,我不想学编程...
我保证不在底下训斥你...

另外,请你们去学一下什么叫调试,如何调试...
程序代码80%都是调试出来的,但是基本不会有书介绍调试功能...
如果有空,我可以写一点教程...不过最近项目比较忙...

至于我的签名,很多人说我歧视新人...
我只想说,请你区分"问的问题SB"和"问问题的方式SB"...
如果你语文不是体育老师教的,你看完我以上说的教程,你应该可以区分开吧?
如果区分不开,我无话可说...我只能说,你不适合编程...

此贴本月,我会置顶给你们看...等我不当版主了,我就不保证了...


[ 本帖最后由 peach5460 于 2013-7-31 21:13 编辑 ]
#3
peach54602013-07-31 21:06
最近闲得好蛋疼啊...上班没激情...

http://programonkey.me/beginners-progression-will/
去看看吧,那些所谓的初学者们...


[ 本帖最后由 peach5460 于 2013-8-24 19:32 编辑 ]
#4
wp2319572013-08-01 07:35
哈  支持一下
#5
yuccn2013-08-01 12:16
新手应该阅读一下

#6
peach54602013-08-01 17:16
回复 5楼 yuccn
哎,木啥子人气嘛...
#7
yuccn2013-08-01 19:53
回复 6楼 peach5460
放假了啊,到考试的时候人气高点
#8
TonyDeng2013-08-01 20:46
嘿嘿,他们会看么,老静那个帖子,我置顶了四五次,每次都一大堆人跟帖说学习了,结果还不是一样前赴后继地犯禁。
#9
TonyDeng2013-08-01 20:50
你教他叙述清楚问题,有人问自己的程序执行结果与书上不同,他不说书上是什么结果、自己又得了什么结果、在什么环境下得到的,我锁了,还有人放开了,既然有人纵容这种行为,从此我不会再锁任何帖,也不会再行使管理权,这版主对我而言是多余的(我从来就不投过选版主的票)。

[ 本帖最后由 TonyDeng 于 2013-8-1 20:51 编辑 ]
#10
peach54602013-08-02 06:12
回复 9楼 TonyDeng
淡定淡定...算了...我也对这群孩子没什么信心了...

PS:我一向觉得T版很V5...比我高出几个层级,哈哈...我每次都投你的票

[ 本帖最后由 peach5460 于 2013-8-2 09:04 编辑 ]
#11
wp2319572013-08-02 08:17
我猜测大都是应付考试  混个60分 毕业
真正能坚持下来的不多
#12
embed_xuel2013-08-02 23:19
真没啥用,现在的孩子傲着呢
#13
peach54602013-08-03 06:38
回复 12楼 embed_xuel
我也发现了,是没啥用...哎,算自己脑残了一回,下不为例把.懒得再写下去了...
#14
gobraves2013-08-06 23:18
虽然说你有的话很刻薄,但的确有道理。以后,我如果有你说的这样的问题,就请你不要留情面。
#15
gobraves2013-08-06 23:19
谢谢
#16
未未来2013-08-08 20:07
回复 13楼 peach5460
你没发现我是一颗冉冉升起的新星吗
#17
PBLIU2013-08-09 00:25
刚入新人,请各位盟友多加关照!呵呵。。。
#18
a22911338442013-08-16 20:09
在这个世界上,除了你的家人,没人跟你有半毛钱关系...
合我胃口
#19
love云彩2013-08-16 20:50
新手来阅读了,求指教
#20
peach54602013-08-17 07:32
回复 16楼 未未来
你primer第二遍看完了没撒...有没有什么新的感悟呀...

你当初跟我说你一天看一章,我真的是惊为天人啊...
就差早晚三炷香供着了...
#21
yim2013-08-18 13:45
很认真的拜读完了,边看边流汗。回想我上次的贴,应该会让你觉得我没药救了吧?不过多亏了你详细的说明,还是想感谢你。我是很想学的,但是发现真的不会问问题,而且自学很慢,看了记不住,总学不会融会贯通。很容易揪无用细节,不会抓重点。其实只要有被训,就是希望别人更好吧,所以我不怕被训,只希望可以学习到一些东西。
#22
TonyDeng2013-08-18 13:53
不能受训的,提早打个招呼,可以不训他,也不搭理他,让他自生自灭,没人有义务非要教他不可。有的时候,特別是新人,人家对你的品性不熟悉,训了一两句,是看你有什么反应,反应好的,自然会有针对性指点你,慢慢就不会训你了。保卫性太强,学不到东西是自己的事,对人家没损失的。
#23
peach54602013-08-18 16:35
呵呵...不管做哪一行,都是从挨训开始的...
我现在当组长还不是经常被总监训得狗血淋头...
#24
TonyDeng2013-08-18 23:21
道吾好者是吾贼,道吾恶者是吾师。
#25
yuccn2013-08-18 23:45
其实有很多都是注册个帐号,发给作业贴就变僵尸了的
#26
TonyDeng2013-08-18 23:58
是的,所以我现在对那些没互动的帖,基本上不再理会。
#27
TonyDeng2013-08-19 00:05
还有那种“程序没问题”的求助帖,能让人吐血。
#28
zklhp2013-08-19 01:00
我竟然现在才看到 相见恨晚啊

如果排排版 可以让站长发到首页了

我也要端正态度 努力搬砖了

与楼主共勉
#29
额外覆盖2013-08-19 13:21
标新的我拜读了!
#30
wxm49552013-08-29 21:20
只能说真心喜欢学编程的人不多,大半都是为了完成作业。顶一下楼主好了,这么坎坷的经历
#31
冷读者2013-12-14 12:24
认认真真地看完了,版主是个有心人。
#32
xiaodu0002014-05-15 15:02
艾玛,好久的帖子了,我现在才看到。
像版主这样的好银现在真是不多见,我以前也是看见作业帖子就无脑的回了完整的代码,但很快就发现这样不好,就不会代码,专门挑出问题,无脑回代码对我对他都没有好处,做程序员一是要多多的看书学习,二就是多多的打代码,从自己的bug中学习,尽早从玩具式的程序开发走向具体项目的开发(虽然会不好走),我们选择了程序员的职业,我们就要热爱这份职业,虽然很辛苦,但是我仍无怨无悔.
再次感谢楼主。
1