How to be a good CSer

Math_Still Lv2

Academic Integrity

Academic Integrity

诚实是做好学术工作的基础。无论你是在做习题集、实验报告、项目还是论文,都要避免抄袭、未经授权的合作、作弊或促进学术不诚实。遵循以下建议:

Plagiarism
Trust the value of your own intellect. Don’t purchase papers or have someone write a paper for you.
Undertake research honestly and credit others for their work. Don’t copy ideas, data or exact wording without citing your source.
Unauthorized Collaboration
Trust the value of your own intellect. Don’t collaborate with another student beyond the extent specifically approved by the instructor.
Cheating
Demonstrate your own achievement. Don’t copy answers from another student; don’t ask another student to do your work for you. Don’t fabricate results. Don’t use electronic or other devices during exams.
Accept corrections from the instructor as part of the learning process. Don’t alter graded exams and submit them for re-grading.
Do original work for each class. Don’t submit projects or papers that have been done for a previous class.
Facilitating Academic Dishonesty
Showcase your own abilities. Don’t allow another student to copy your answers on assignments or exams. Don’t take an exam or complete an assignment for another student.

How To Do?

从以下方面对不同的作业/实验/问题进行比较

基本原理 做事方案 正确性风险 代表例子
阐述 明确 基本正确 高中物理实验
阐述 明确 可能出错 程序设计作业
阐述 需要思考 基本正确 算法题
阐述 需要思考 可能出错 Linux等各种环境配置
需要探索 需要思考 可能出错 竞赛等业界和科研的真实问题

如何做?

遇到问题了, 随便改改试试, 说不定就过了
随便改改过不了, 赶紧找大腿/助教/老师来搞定
也不想多花时间精力按照提问的智慧和别像弱智一样提问中建议的方式来提问
这个函数/文件/命令看不懂, 反正也不是我写的, 算了就这样吧
宁愿在百度中舒服地浪费生命, 也不想用谷歌或者其他方法快速解决问题
有些相关内容反正跟任务没什么关系, 不看也没问题
反正任务还有一个月的时间, 最后一周开始做, 应该还能赶上

正确的做法是

  • 多思考为什么
    • 从问题开始着手理解系统也是个不错的方法
  • 独立解决问题
    • 即使是调一个很弱智的bug, “顺带”能学到的东西也比你想象中多得多
    • 换句话说, 如果你选择抱大腿, 你失去的机会也比你想象中多得多
  • 尝试尽可能理解每一处细节
    • 将来调bug的时候, 这些细节就是你手中强有力的工具
    • 换句话说, 当你在调bug的时候感到无从下手, 一定是你不了解其中的细节
  • 用正确的工具做事情
    • 这才是节省时间的科学方法, 而不是偷懒
  • 按时完成, 拒绝拖延
    • 这样你才有时间做到上面几点

How to Get Help

!!!最重要的是要找到官方的网站或者文档!!!
!!!最重要的是要找到官方的网站或者文档!!!
!!!最重要的是要找到官方的网站或者文档!!!
!!!最重要的是要找到官方的网站或者文档!!!
!!!最重要的是要找到官方的网站或者文档!!!
!!!最重要的是要找到官方的网站或者文档!!!

官方手册或者文档包含了查找对象的所有信息, 关于查找对象的一切问题都可以在官方手册中找到答案. 通常官方手册的内容十分详细, 在短时间内通读一遍基本上不太可能, 因此你需要懂得如何使用目录来定位你所关心的问题
如果你希望寻找一些用于快速入门的例子, 你应该使用搜索引擎

在学习和实验的过程中, 你会遇到大量的问题。所以,你需要掌握如何获取其它参考资料。

但在此之前, 你需要适应查阅英文资料。和以往上课遇到的问题不同, 你会发现问题越深入你越不容易搜索到相关的中文资料。
如何适应查阅英文资料? 方法是尝试并坚持查阅英文资料

搜索引擎 百科 问答网站
推荐使用 http://google.com http://en.wikipedia.org http://stackoverflow.com
不推荐使用 http://www.baidu.com http://baike.baidu.com http://zhidao.baidu.com
http://bbs.csdn.net (csdn不推荐,但是常用)

说明:

  • 一般来说, 百度对英文关键词的处理能力比不上Google.
  • 通常来说, 英文维基百科比中文维基百科和百度百科包含更丰富的内容. 为了说明为什么要使用英文维基百科, 请你对比词条前束范式分别在百度百科, 中文维基百科和英文维基百科中的内容.
  • stackoverflow是一个程序设计领域的问答网站, 里面除了技术性的问题(What is “:-!!” in C code?)之外, 也有一些学术性(Is there a regular expression to detect a valid regular expression?) 和一些有趣的问题(What is the “–>” operator in C++?).

当然,在这个GPT遍地都是的时代,还有一个很重要的方式就是去问GPT,当然GPT如何使用,这段路需要你们自己去探索。

总而言之概括为三句话

1.RTFM
2.STFW
3.ATFG (我自己造的Ask The ** GPT)
想了解前两个点这里

How to Ask for Help

在提问之前

  • 尝试在你准备提问的论坛的旧文章中搜索答案。
  • 尝试上网搜索以找到答案。
  • 尝试阅读手册以找到答案。
  • 尝试阅读常见问题文件(FAQ)以找到答案。
  • 尝试自己检查或试验以找到答案。
  • 如果你是程序开发者,请尝试阅读源代码以找到答案。
  • And So On ……

同时你要知道

  • Free 的正确翻译是自由,而非免费
  • 愿意回答问题的人,都是可爱的人。
  • 向帮助你的人感激是一个高尚的行为。即使回答你的人不是为了什么目的。
  • 不回答你的问题对其他人没有任何损失。
  • 准确描述一件事情或者问题是一项基本生存技能
  • 搜索是一项基本生存技能,学不会用Google的话,你可能真的不适合你所从事的行业。
  • 要知道,英文是一项基本生存技能,不认识英文的话,你可能真的不适合你所从事的行业。

当你提问时

学会描述问题是非常重要的
向别人提问的时候,要学会正确的描述问题。要用最精炼的文字和图片,向对方阐述明白一个事情的来龙去脉。

  • 学会什么时候贴图
  • 学会什么时候圈出重点

  • 学会什么时候贴文字
  • 学会……

不该问的问题

  • 我能在哪找到 X 程序或 X 资源?

回答:就在我找到它的地方啊,—— 搜索引擎的那一头。天哪!难道还有人不会用 Google 吗?

  • 我怎样用 X 做 Y?

回答:如果你想解决的是 Y ,提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知,也对 Y 要解决的问题糊涂,还被特定形势禁锢了思维。最好忽略这种人,等他们把问题搞清楚了再说。

  • 如何设定我的 shell 提示?

回答:如果你有足够的智慧提这个问题,你也该有足够的智慧去 RTFM,然后自己去找出来。

  • 我如何编译这个程序

回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。

  • 我的程序/设定/SQL 语句没有用

回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种
你还有什么要补充的吗?
真糟糕,希望你能搞定。
这跟我没啥关系吧?

  • 我的 Windows 电脑有问题,你能帮我吗?
  • 我的程序不会动了,我认为系统工具 X 有问题
  • 我在安装 Linux(或者 X )时有问题,你能帮我吗?
  • 我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?

最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。

聪明问题与蠢问题

蠢问题:

我可以在哪儿找到关于 Dlib的资料?

这种问法无非想得到 STFW 这样的回答。

聪明问题:

我用 Google 和Dlib的官方Manual搜索过 Dlib x.y.z版本的set_kernel函数如何使用,但是没找到有用的结果。谁知道上哪儿去找对这个函数的资料?

这个问题已经 STFW 过了,看起来他真的遇到了麻烦。

蠢问题:

我从 foo 项目找来的源码没法编译。它怎么这么烂?

他觉得都是别人的错,这个傲慢自大的提问者。

聪明问题:

foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗?

提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。

蠢问题:

我的树莓派有问题了,谁来帮我?

某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?然后按下删除键。

聪明问题:

我在 树莓派 主机板上试过了X、Y和Z,但没什么作用,我又试了A、B和C。请注意当我尝试 C 时的奇怪现象。显然 xxx 正在 yyy,但结果出人意料。通常在 vvv 主机板上引起 yyy 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题?

这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。

如果得不到回答

如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。

如何回答问题

态度和善一点问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。

对初犯者私下回复对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。

如果你不确定,一定要说出来一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。

如果帮不了忙,也别妨碍他不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。

试探性的反问以引出更多的细节 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。

尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是建议个 Google 搜索关键词)会更好。

如果你决定回答,就请给出好的答案 当别人正在用错误的工具或方法时别建议笨拙的权宜之计(workaround),应推荐更好的工具,重新界定问题。

正面地回答问题 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。

如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。授人以鱼不如授人以渔

不要因为以上内容而不敢提问和回答

讲这个的目的,不是遏制你们提问和回答,而且说提问和回答之前需要思考好,把双方效率最大化,而且也能让别人觉得你是一个聪明的人,同时也可以锻炼自身的操作能力。
勇敢操作,大胆问答!
勇敢操作,大胆问答!
勇敢操作,大胆问答!

  • 標題: How to be a good CSer
  • 作者: Math_Still
  • 撰寫于: 2024-01-23 15:38:46
  • 更新于: 2024-01-23 16:31:56
  • 連結: https://math-still.github.io/2024/01/23/CSer/
  • 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。
 留言