坐在电脑前不能解决问题可以吗?[关闭]


12

我是一个业余程序员和初学者。大多数时候,我坐在电脑前无法解决问题。例如,我试图找出一个数字是否是另一个的幂。直到我握住笔和纸然后分析问题,我才能找到解决方案。在大约3分钟的时间内,我解决了该问题,并使用Python编写了脚本。

有时候,我坐在电脑前可以解决问题,但是有些挣扎。那样行吗?


6
对我来说,这并不是一个坏问题,实际上,很多人过多地盯着计算机,最终没有意识到他们在较小程度上遇到了这个问题。许多专业程序设计将涉及非常死板的更改,而不是通常作为作业分配的棘手逻辑公式,如果您至少可以完成这些任务,那么这并不是什么大问题。
Katana314 '16

2
我认为您可能只想重新表达您的问题,以使编程更具意义。
史努比

8
这是完全主观的。每个人的学习和工作方式都不一样。做对您有用的事情。

7
在电脑前可能是尝试解决问题的最糟糕的地方,因为您在想的时候就很容易开始打字。通常从机器上脱身是更好的方法,因为它迫使您认为采取行动。我大多数最棘手的问题已经解决,早上步行到办公室即可。
Gort机器人

2
还有一个问题是问题有多困难。随着您获得更多的经验,一些现在很困难的问题将变得很容易。但这仅意味着您可以解决更困难的问题。对于我自己,在远足或越野滑雪时,我解决了很多非常困难的问题。
jamesqf 16-3-12

Answers:


34

我倾向于解决最棘手的问题:

  • 在白板前(有时甚至没有画任何东西-仅考虑如何可视化问题有时可能会导致解决方案)
  • 向同事解释时
  • 看着窗外
  • 散步时
  • 在淋浴下
  • 上厕所

远离监视器通常对于集中精力解决问题本身非常有用,而不仅仅是关注实现的实现。

解决问题发生在您的脑海中。输入程序代码就是您解释计算机解决方案的方式。


1
谢谢!没错,我与电脑的距离越远,我对问题的关注就越多。
马哈茂德·穆罕默德·纳吉布

2
我记得读过一本书(不幸的是,它不记得了),建议将橡皮鸭放在您的书桌上,当您被绊倒时,向橡皮鸭大声描述问题。
砸死了机器人

7
@StevenBurnap这被称为橡皮鸭调试,您可能在Addison Wesley的The Pragmatic Programmer中读到了它。
菲利普

2
“键入程序代码就是您解释计算机解决方案的方式。” –艾伦·珀利斯(Alan Perlis)说:“程序应该供人类阅读,而只能由机器执行。” 我宁愿这样看:输入代码就是向同事解释解决方案的方式。一旦您以任何人(包括您自己,从现在起六个月)都能清楚地描述解决方案的方式来描述该解决方案,那么该解决方案也可以由机器执行,这只是对该解决方案进行了严格描述的副作用足以确保没有歧义。...
约尔格W¯¯米塔格

4
回复:橡皮鸭。还有一个与泰迪熊相似的故事。麻省理工学院的老师过去常常在办公室外面坐泰迪熊。向熊解释您的问题后,才允许您敲门。一半的学生在向熊解释时发现了他们的问题后,从未敲门。在StackExchange上编写一个写得好,研究得好的,格式正确的,详细的,高质量的问题可能具有相同的效果,这就是(原因之一)为什么我们这么干!
约尔格W¯¯米塔格

7

我认为这是一个好问题。从我的解释来看,我想你要问的是:“我定期离开计算机可以吗?”

我不认为有一天我不必起床去问别人他们的想法,也不必掏出一张便条纸并写下一个方程式来解决问题。同样,当您更多地学习编程时,除非事先创建图表/架构,否则您甚至可能不会开始编写代码。

我上大学时正在上一门数据结构课程,但在设计排序算法时遇到了麻烦。当我向教授寻求帮助时,他知道我没有事先考虑过这个问题。他告诉我的第一件事是我还没有准备好开始编写代码。于是他拿出一张纸,画了几个正方形,然后他从数组中输入数字。接下来,他画了几张图片,在其中移动正方形,并直观地向我展示了排序算法的工作方式。

您可以做一些事情来清除思路并解决问题:

  • 休息一下
  • 与同事交谈
  • 白板问题/概念
  • 睡吧!

如果您在半夜醒来后就知道了,请不要感到惊讶。


1

我认为,如果可以的话,一定会成为一名高效的专业程序员/开发人员。但是,在将解决方案转换为程序逻辑恕我直言时考虑问题需要培训,因此如果您序列化这些任务,我认为不会有问题-您只需要能够成功完成这两项任务即可。开始编写代码之前从头到尾思考解决方案肯定有其优点,但是您需要对此有所耐心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.