编程问题与解决方案






4.67/5 (9投票s)
本文概述了查找编程问题解决方案的一些技巧、如何正确使用社区论坛以及如何作为回答者为论坛做出贡献。
引言
引用本文不包含任何源代码或技术讨论,更像是一份指南。
我参与各种技术社区论坛已有多年(截至撰写本文时,确切地说是11年),例如forums.asp.net、codeasp.net/forums、aspforums.net/forums、forums.xamarin.com、c-sharpcorner.com/forums以及最近的CodeProject社区。我帮助解决了数百甚至数千个问题,从简单到非常复杂的问题。身处社区是一件很棒的事情,因为我有机会学习并帮助世界各地的同行开发者。大多数时候,我遇到的问题模糊不清、重复,甚至更普遍。所以我想分享一些我对这个话题的看法,并为那些开发者,特别是正在寻找问题解决方案的新手提供一些指导。
问题对于人类来说是很正常的。问题不仅存在于我们的个人生活中,也适用于编程世界或你所从事的任何职业。如果你是一名学生或专业程序员,每天处理问题是很正常的。如果你不能接受问题的存在,那么你最好放弃(~当然,我只是开玩笑:))。问题使我们变得更好,并作为一名专业人士成长,只要你知道如何处理它。
那么,本文主要讲些什么呢?
本文概述了查找编程问题解决方案的一些技巧、如何正确使用社区论坛以及如何作为回答者为论坛做出贡献。
如何找到问题的解决方案?
当我们遇到编程问题和错误时,大多数开发人员首先可能会想到的是“论坛”。我们大多数人都知道社区论坛是讨论问题的最佳场所,但这并不意味着你可以滥用它。滥用?是的。论坛不是你的个人日记,你可以随意写任何你想写的东西。所以在论坛上开启新帖子之前,请考虑遵循以下一般规则
-
学习如何使用调试工具来找出你的代码出了什么问题以及为什么会出错。在大多数情况下,调试可以为你节省大量时间,而不是在页面崩溃时立即在互联网上寻找解决方案。例如,如果你在使用.NET技术栈并将Visual Studio作为开发工具,你可以利用它提供的调试功能。请参阅:在Visual Studio中调试
-
使用Google。如果你在开发过程中遇到不熟悉的错误,或者想了解某个特定技术。论坛和新闻组上发布的大多数问题都已经被问过并回答了。通过搜索可以节省大量时间。我发现如果你搜索错误消息或你想了解的术语,效果特别好。
-
如果你正在与团队合作一个项目,那么试着向你的队友询问你遇到的问题。他们中的某人可能已经遇到过你遇到的相同错误,并可能能够帮助你。这可以为你节省大量时间,而不是等待论坛中的答案和在互联网上寻找解决方案。提问是学习的关键,它不会让你显得愚蠢。只需确保提出正确的问题,并确保在向团队提问之前先完成第1和第2点。请记住,他们也有工作要做。
-
如果你的问题是普遍性的,比如“如何在
GridView
中编辑、更新和删除?”或“MVC是什么?”,那么请先阅读一些教程。如果你在论坛中发布同样的问题,很可能人们只会给你教程链接。这会浪费很多时间。 -
利用论坛。如果你已经尝试了第1-4点,但仍然没有得到任何解决方案,那么这是在论坛中开启新帖子的最佳时机。
在论坛中找到你的路
引用鸣谢:我从Mike的帖子中获得了一些关于如何让你的论坛问题得到回答的技巧,我想在这里重申这些要点。
你需要做的第一步是找到合适的技术论坛。虽然有些在线社区提供了各种论坛版块,你可以在其中发布一般性问题,但最好还是在专用论坛中发布你的问题。这将给你更大的机会获得答案。请参阅这篇关于正确发布论坛的常见问题解答。
无论你是社区论坛的新成员,还是已经在这里待了一段时间,这篇文章都旨在帮助你充分利用论坛。
与任何在线社区一样,应遵循标准规则和准则。虽然本文不代表一套完整的论坛准则,但它涵盖了你开始参与时可能遇到的一些更常见的问题。
现在言归正传
-
避免劫持帖子。劫持帖子是指将你的问题附加到论坛中现有的帖子并复活旧的和已解决的帖子。将你的问题添加到当前帖子中可能会被认为是粗鲁的行为。这有点像闯入别人的谈话并大喊“嘿,你能看看这个吗?”。如果有人回答你的问题,帖子很可能会变得非常混乱,没有人会确定谁在解决哪个问题。所以请为自己的问题创建自己的帖子。
-
将你的问题发布到更具体的论坛版块。这意味着不要将SQL Server问题发布到ASP.NET Web开发论坛版块。对于任何在线社区网站上的论坛数量感到有些不知所措的情况并不少见。找到正确的论坛提交你的帖子对于最终收到问题的答案起着非常重要的作用,所以请花点时间环顾四周,熟悉所有可用的内容。
-
避免重复发帖,不要将相同的问题发布到不同的论坛版块。这将帮助你轻松管理你的帖子并只专注于一个帖子。请记住:始终选择与你的问题最相关的具体论坛。
-
为帖子提供一个有意义的标题。“我遇到问题!求助!!”没有意义。“紧急!”表明你的作业迟交了,没有人对此感兴趣。此外,在主题中添加感叹号“!”有点粗鲁,所以要小心。
-
使标题与你的问题相关。“
GridView
问题”后跟数据库更新失败的描述,会吸引错误的人查看你的帖子。 -
具体一些。不要只说你的代码“不起作用”或“坏了”。解释你试图实现什么。你采取了哪些步骤?发生了什么?你已经尝试了哪些方法来解决问题?请注意,你正在寻找解决方案,而不提供问题的详细信息只是浪费大量时间,99%的情况下你不会得到任何答案。
-
请说明你到目前为止为解决问题所做的尝试。我见过很多次有人在回复帖子时给出建议,而原始发帖人/主题发起人回复说“我已经试过了!!”那简直是浪费时间。
-
如果合适,请显示相关的代码和错误消息。我所说的“相关”是指足以在上下文中看到产生错误的代码行。除非必要,否则发布整个源代码或附加整个项目只是浪费时间,因为大多数贡献者时间有限,没有时间自己弄清楚整个代码。
-
粘贴你实际使用的代码——而不是充满拼写错误、语法混乱的“看起来像那样的东西”。别人怎么能帮助你阅读不了的代码呢?另外,在发帖时务必格式化你的代码,使其可读。没有人有兴趣看混乱的代码。
-
如果你的帖子需要使用图片,请务必预览以确保链接有效。
-
如果你的代码不明显,请指明你偏好的语言。如果你的问题与数据库相关,还要说明你使用的数据库类型和版本。请记住:要具体。
-
不要将你的帖子与不同的问题混在一起,因为这会让阅读的人感到非常困惑。此外,帖子中的答案会混淆,未来的读者将很难找到对你有帮助的正确解决方案。相反,为你的每个问题创建一个单独的主题。
-
在提交帖子之前,请阅读你所写的内容。如果英语是你的第一语言,并且你没有费心确保你的帖子有意义,那么没有人会花时间为你理清思绪。
-
不要为自己是新手而道歉。每个人都曾经是新手。
-
当你在论坛中没有立即得到成员的回复时,不要马上感到沮丧。你应该记住,大多数成员都像你我一样只是志愿者(无偿成员)。所以你不能指望得到及时的回复,特别是如果你的问题更复杂且不熟悉,需要更多的分析和时间。像你一样的志愿者也为生计而工作。所以请耐心一点 :)
-
最后,当你得到问题的答案时,务必将帮助你的帖子标记为答案。这样,未来偶然发现你的帖子寻找相同解决方案的读者可以轻松确定哪个帖子真正帮助了你。当你得到答案后,不要仅仅放弃你的帖子。请注意,论坛是一个社区,所以请履行你作为“提问者”或“主题发起者”的责任。
为论坛做贡献
技术论坛是社区中非常重要的一部分,你可以在这里寻求帮助,同时分享你针对特定问题的解决方案。说实话,开发者社区帮助我成为了一个更好的开发者。我是一个自学成才的人。我记得当我得到第一份工作时,被分配到使用.NET开发解决方案,这让我很害怕,因为我对这个框架没有任何经验,最糟糕的是对网络以及无状态世界中的事物运作方式并不真正熟悉。那些时候我挣扎了很多,在技术社区的帮助下,我能够理解基础知识,并且每天都学到一些东西。反过来,我通过帮助其他开发者解决问题来回馈社区。
如果你认为现在是你从“提问者”转变为“回答者”的时候,或者如果你希望通过为论坛做出贡献来回馈社区,那么这里有一些建议给你。
“回答者”在论坛中扮演着至关重要的角色,因为这些人是为你的问题提供答案或至少引导你走向正确方向的人。
如果你作为“回答者”做出贡献,那么我希望指出以下一些技巧
- 如果你是为了积分,就不要尝试回答。我知道积分有助于激励成员更多地参与,但它也可能导致错误的方式。请记住,当你帮助别人时,你应该忘记积分;相反,专注于为问题提供高质量的答案。回答的真正回报是你解决了问题。
- 给出高质量的答案。发布链接作为参考是可以的,只要你支持它并且它与问题相关。如果你的答案需要示例代码,那么请随意提供代码片段并附上代码解释。
- 回复时要善待他人,并相互尊重。如果你看到有人粗鲁无礼,请随时通知网站管理员。
- 在回复之前仔细阅读问题。我经常看到人们只是给出链接和错误信息;这是因为他们只会阅读问题标题,而不是问题的详细信息。这可能导致帖子充斥着无意义的回复,有用的回复将不会被注意到。
- 不要发布重复的回复。我见过有人只是复制前一个回答者的答案。这不会给帖子和“提问者”带来任何价值。
- 不要停止为论坛做贡献。参与论坛确实可以帮助你成长为一名专业的开发者。你将随着时间的推移学到很多东西,并测试你解决实际问题的能力。
论坛礼仪
有如此多的成员和如此多的观点,我们不可能总是在问题的正确答案上达成一致。事实上,通常正是这些关于某个主题的不同意见,最终将成员的问题与真正有用的答案联系起来。
如果你看到一个当前话题,而你不同意现有帖子中表达的观点,请继续发表你的意见。但请保持所有帖子礼貌、客气并切合主题。
免责声明
本文中表达的一些观点摘自Mike的帖子,其余只是我个人的看法,我希望这至少能指导开发者找到解决问题的方法。
其他参考文献
就这些了!如果你想在列表中添加任何内容,请随时留言,我将相应地更新文章。谢谢。希望本文有所帮助。