it-swarm.cn

如果您无法解决问题会怎样?

我距离大学毕业已经一年了,我真的很期待解决实际问题。尤其是非平凡的,需要一些研究和大量思考。

但与此同时,这也是我最大的恐惧-无论我如何努力,都面临着我无法解决的问题。由于迫切需要在即将到来的截止日期之前交付代码,在uni的安全操场上查看代码时,确实看起来有些吓人(最糟糕的情况是您必须重做课程或考试)。

因此,对于那些已经从事较长时间的行业的人来说,如果告诉您解决无法解决的问题,将会发生什么?它发生了吗?如果是这样,发生了什么?他们只是放下了,说:“哦,好吧,猜想我们可以做点其他的事情”?有后果吗?您受到谴责,甚至被解雇了吗?

58
gablin

首先,您的恐惧非常健康并且正常。这是我在软件行业工作约15年后的想法。
以下是一些要问自己的问题:

  1. 了解问题吗?
  2. 您是否知道问题是无法解决的(在您的时间/预算限制内)?
  3. 您是否不知道如何解决问题?
  4. 您的客户/老板是否在要求不可能?.
  5. 这值得么? (投资回报率)
  6. [〜#〜] real [〜#〜]问题吗?

1)首先,请确保您了解问题所在。没有愚蠢的问题。您了解客户/老板在问您什么以及他们需要什么吗?

2)这将会发生。 “到明天为我建一座桥”。确保您知道在约束内问题无法解决的事实。您的客户/老板在时间/预算上可能很灵活,可以对其进行修改以增加您的时间/预算。

3)如果问题是可以理解的,并且约束条件在合理范围之内,并且有可以解决问题的技术,但是您只是不够了解……这就是StackOverflow和Internet的用途。确保先进行研究。尝试问一些可以量化答案的明确问题。问你的同龄人。进行设计会议。

4)这是答案2的变体。它似乎就像您的客户/老板在问不可能的事情。做一些研究。除非您确切地知道原因并且可以澄清,否则请不要说问题是无法解决的。

5)[〜#〜] roi [〜#〜]代表投资回报率。这是指对时间的投资。你的时间!。问题是否足以解决需要解决的问题,以保证您将花费大量时间来研究和解决问题。与您的客户/老板讨论

6)这是一个真正的问题。客户常常会理解他们想要的东西,但不一定理解他们的需求。尝试了解您的客户/老板的实际需求,并与他们讨论。

希望这些指南对您有所帮助。

56
funkymushroom

如果您遇到一个看似无法解决的问题,要记住两件事:

  • 让其他人尽快知道您被困住了。这将有助于他们及时调整估算值,以免为时已晚。

  • 如果您发现解决问题的一种方法不起作用,请在浪费太多时间之前将其丢弃。寻求帮助或尝试其他方法。这并不是要证明自己努力又聪明,而是要把事情做好。

57
user8685

我去 StackOverflow ;)

但是所有开玩笑的人,不要害怕未知的事物。您的整个职业将面对未知的事物,因为如果您已经解决了未知的问题,那么下一次它将不再是问题。

26
Arcturus

我将不得不回答一个简单的问题:我寻求帮助。就像其他人有时在试图为某事找到解决方案时,他们会向我寻求帮助。

编辑:我应该提一下,我通常只是通过向同事描述问题来找到解决方案,有时甚至是当我开始在StackOverflow之类的网站上发布问题时。

10
MetalMikester

从不同角度看

我遇到过很多次,通常会发生以下情况:

  • 您有一个问题,最初您脑子里有个解决办法。
  • 当涉及到实际实施解决方案时,事实证明这是行不通的(可能是由于实际问题的模型较弱)。
  • 在努力解决问题之后,是进行更多研究还是要问别人。没有任何效果,纯属无奈!

最后,您选择不想做的事情->

“肮脏的黑客”

可以,但是您感觉很脏...

9
Darknight

这取决于您无法执行...的原因...

  • 从逻辑上讲是不可能的:与编写需求的人讨论,也许有误解。 示例:规范在某一点上说该应用程序必须在所有平台(Windows/Linux/Mac)上都具有本机外观,而在另一地方,它表示该程序在所有平台上必须看起来完全相同

  • 从技术上讲是不可能的:重新评估您使用的工具,也许它们不合适。与您的同事和项目经理讨论问题。 例如:在垃圾回收可以在不确定的时间内停止执行的环境中的严格实时要求

  • 性能不足:也许您使用的算法错误,或者问题太难解决(例如NP问题),并且要求未考虑到这一点。重新评估您使用的算法,也许有更快的方法。与您的同事和项目经理讨论问题。考虑切换到足够好的启发式方法,而不是完美的结果。 示例:具有数十个甚至数百个节点的路径优化

  • 您只是不知道该怎么做:询问您的同辈,询问stackoverflow,搜索Internet。请与您使用的工具/库的支持联系。与项目经理讨论。

  • 它应该工作,但是不起作用,您也不知道为什么:重构程序以使其更具可测试性。考虑到比赛条件,它们通常是难以发现错误的原因。向同伴寻求帮助,四只眼看到两只以上。在Internet上检查正在使用的工具/库中的已知错误。

5
user281377

通常,我会找一个比我聪明的人来解决它。他做到了,他是我的老板。我觉得我好笨。我们继续前进。

5
johnny

我认为其他人很好地指出了如何以专业的方式处理它。我想说说如何处理沮丧,恐惧等个人感觉。

最重要的是,即使您没有及时解决问题,您也将保持良好状态。生活仍在继续。

有时,时间表会被推迟。该项目要么成功要么失败。您可能会被解雇,然后干得不错。你只是永远不知道。

不要误会我的意思。这并不意味着可以解决问题。我们所能做的就是尽力而为。

有时,我认为无奈,担心无法解决问题是我作为普通开发人员的生活。

4
exiter2000

我不确定我会说我无法解决问题,但是在某些情况下,我确实放弃了尝试解决问题的意愿。在投入大量时间尝试修复错误或实现某些我不知道如何执行的功能后,我可能会告诉团队,团队负责人或经理中的某人:“我坚持下去。你要我做吗?”让他们知道我在哪里。他们可能会说:“坚持下去,我们认为您会成功的”,或者“继续进行一些不那么重要的事情”,或者其他一些事情,然后我就会知道我应该做什么。

当然,我有一些我无法解决的错误以及一些未完成的功能。尽管我可以尝试完成某件事,但并非所有事情都可以在合理的时间内解决。关键是要进行沟通,以便您的上司知道您的位置。

也就是说,我确实有几次遇到过一些非常特殊的情况:

  1. 在多伦多的一家加拿大大型银行工作时,我会被要求做各种各样的事情,当我接到任务时,我不知道该怎么做。例如,我被要求测试这种保护笔记本电脑安全的方法,其中在启动时交换了“ Esc”和“ Enter”键,并且使用正确的键序,笔记本电脑将再次可用,试图找出数字似乎很奇怪。出来,“这可以吗?我怎么知道这对用户是否可行?”还有其他任务,我只是没有硬件或其他资源来完成它。同时,这是很有教育意义的,因为这给了我很多预防未来麻烦的信息。在这里向我详细说明了诸如确保我何时付款,如何跟踪时间以及其他沟通问题等我并未真正忘记的事情。

  2. 在卡尔加里的应用程序服务提供商工作期间,我得到了这个项目,试图在我们作为服务出售的内部应用程序中创建另一个网站的副本。这里的关键点是,我没有给出时间表或开始做什么的建议,只是一般研究,一个月后我被要求进行演示,因为我对某些止痛药反应不佳。这种反应持续了一个星期,我突然下班,然后第二周,我参加了一次微软活动,这是我第二天被解雇时的最后一根稻草。这里要注意的是,我与老板之间的关系很差,因为只要他靠近我的区域,我立即想到的是:“现在怎么了?”对某人的许多次反应往往不是一件很健康的事情。

2
JB King

正如其他人所说的那样,沟通是至关重要的-当您陷入困境时,让人们知道(将受到影响的人):您的老板,团队成员,客户等。

一位敏锐的同事曾经向我灌输,成功源于两件事:

  1. 人际关系
  2. 期望

我想,良好的关系是良好的沟通和预先设定期望的功能。

2
gcraig

我遵循Polya原则:

“如果存在您无法解决的问题,那么将存在一个您无法解决的更简单的问题:找到它。”

乔治波利亚

该原则的优点在于,在某个时刻将存在一个很小的问题,您将能够解决该问题,如果您做对了,希望它可以使您bootstrap解决原始问题的方法这个原则还没有使我失望。

2
davidk01

我解决问题的顺序(只有下一个步骤无效时,才执行下一个步骤):

  1. 尝试谷歌
  2. 问人家
  3. 搜索SO直接(绕过Google)
  4. 认为
  5. 冒烟(==头脑清醒)
  6. 在SO上提问
  7. 等到早晨(==进一步清醒头脑)
  8. 使用那个肮脏的技巧,让自己感到难过:(

在第5-6步中解决了讨厌的问题。

真正非常糟糕的问题通常需要一些时间(第7步是解决大多数“似乎我无法做任何事情”的问题)。我的意思是-在一天中的其余时间切换到另一项任务,并尝试在早晨首先解决问题。那确实令人惊奇。

然后只有步骤8。

1
Jefim

寻求帮助 ”答案绝对正确。您极不可能是第一个遇到特定问题的人。

但是作为一个实验,如果没有帮助怎么办?如果您必须自己解决问题怎么办?解决问题最重要的能力是识别挑战自己的假设的能力。如果您可以逐一列举关于问题的假设并依次消除每个假设,那么您最终将得出错误的假设,结果将为解决方案带来新的可能性。

(顺便说一句,当您在求职面试中看不到问题的答案时,这也是最好的方法。逐字列出您的假设,确定哪一个是错误的,然后重新攻击该问题。几乎所有“技巧性问题”都是基于自然而错误的假设)。

1
JP Alioto

寻求帮助确实是最好的答案,但是这里可能还有用。

因此,对于那些已经从事了较长时间的行业的人来说,如果告诉您解决无法解决的问题,将会发生什么?它发生了吗?如果是这样,发生了什么?他们只是放下了,说:“哦,好吧,猜想我们可以做点其他的事情”?有后果吗?您受到谴责,甚至被解雇了吗?

是的,这发生在我身上,不,我从来没有为此受到谴责或开除,因为...

在行业中,一切都取决于您是否按时且在预算之内解决问题,体面的管理人员知道这并非总是可行。

实际发生的是您的经理说:“我希望您做X,您认为这会发生什么?”您可以给出很多答案。好的包括:

  • 我所做的事情确实与此相似,所以我认为这需要三周时间和价值3,000美元的测试硬件。
  • 我大致上与此类似。因此,让我考虑一下,今天下午回覆您。
  • 我从来没有做过这样的事情。因此,让我研究一下,明天再回头。
  • 这个星球上没有人做过。如果您想研究一下,我将需要两个星期的时间来做足够的实验以进行估算。

决定是否以及如何进行是经理的工作。如果他们确实选择继续,那么您的工作就是达到您的估计,或者让经理知道是否有障碍。只要您这样做,在一家合理的公司中就不会有负面后果。

当然,也有不合理的公司没有给您时间或资源来完成您的工作。我曾在其中一些公司工作过,每个人都遇到了在公司的约束范围内无法解决的问题。其中一个人在八个月内解雇了约98%的编程人员,这当然是后果,但这并不是直接针对我的,我仍然认为我的老板和他的老板是好朋友。

1
Bob Murphy

您会遇到很多不同类型的问题,许多问题都有不同的处理方式。

一种类型的问题是实现了您以前从未见过的东西,例如奇怪的声音API或其他东西。在这种情况下,我会认真询问。

另一个是要解决的非常大的问题。此类问题可以迭代解决。他们告诉您“实施庞大”。您仔细查看并写出尽可能多的步骤。然后,您将复杂的步骤分解为较小的步骤。当您不得不考虑较小的步骤时,它们将变得更加清晰。如果您遇到技术困难,请尝试测试实施,并在必要时在此处询问。

较烦人的问题之一是要求不明确的请求。他们只是想要一个做“ x”的事情,而没有告诉你应该怎么做。对于这些,一种好的方法是为接口(通常是GUI)制作原型,然后让某人使用它。

然后是无法满足的时间限制。这通常涉及修改期望并提供功能原型。

通常,您会通过一种或另一种方式找到自己的方式。这很可怕,但是一旦进入它,您几乎总能找到一些解决方法。

最好的选择就是在笔记本计算机的外部涂上“不要惊慌”字样。而且不要忘记你的毛巾。

1
Bill K

我的经验是,应届毕业生不会陷入深渊。相反,您可能会加入一个由经验丰富的开发人员组成的团队。

我的建议是:利用它们。当您不确定如何解决问题时,或者如果您想知道解决方案的方向是否正确,请与他们讨论。如果您觉得自己被困在某个地方,请抓住一位经验丰富的人,向您解释问题并寻求帮助。

大多数情况下,仅说明您的问题即可发现解决方案,而说明您的解决方案也可能同样揭示其缺陷。

0
Bart van Ingen Schenau

经常发生这种情况是因为您没有正确,准确地定义问题。也许您正在尝试解决先入为主的解决方案,而不是实际问题本身。

问题仅在于您所观察到的,而不是您所想象的。

“我的血腥汽车无法启动”是一个问题。 “电池没电了。”是解决汽车起步问题的先决条件。即使测试电池也不能证明这是问题的唯一原因。除非您已实际充电或更换过电池并成功启动了汽车,否则您将无法证明电池是问题所在。

简化并保持简化。将其分解成小部分。如果您无法解决这些部分,请将其粉碎。你会好起来的。然后将其分解为不同的小部分。这些部分中的每个部分都必须是可观察到的现象。

0
CAD bloke

我还没有听说过这样的事情。首先,您永远不会遇到根本无法解决的问题。该问题可能很困难,可能需要花费一些时间才能解决。当遇到问题时,您必须告诉我这是我需要的时间。如果在研究中您认为确实无法解决此问题,则必须举起一个旗标,并告诉经理该问题将花费更多时间,或者确实很难解决。一切都是关于时间表。如果您答应了一些东西而无法交付,那就是问题了。但是,如果您不断说出自己的状态和疑虑,则经理有责任照顾好它。他应将您重定向到可以提供帮助或调整计划的适当人员。

0
Manoj R

这里有一些很好的建议!我的两分钱是;不要被BIG问题淹没,不要忘记解决问题的令人兴奋和具有挑战性的部分将其分解为一系列可管理且更重要的是可理解的子问题,这些子问题又一次又细分为小问题子问题。任何优秀的程序员通常都会在创建代码时(使用函数,方法,子例程等帮助降低代码段的整体复杂性)在几分钟内完成此操作,这种方法通常适用于您遇到的任何BIG问题面对生活(不仅仅是工作)。

0
Rob

显然,这取决于具体问题是什么。但是响应可以是以下任何一种:

  1. 查找解决方法/替代
  2. 购买近似您想要的商业解决方案
  3. 不要放弃并继续努力只要您需要,直到成功为止

3号可能需要时间解决问题,并在数周或数月后重新进行讨论。这通常会有所帮助。

0
GrandmasterB

在我的经验中,有时存在您无法解决的问题,至少在时间限制方面。因此,请尽快寻求帮助,经过一番努力,您失败了

记住经验法则:总是看看老板雇用你的原因。尽您所能为获得最佳工作结果而做的事情,有时这是早期的失败报告(远比延迟的报告要好)。

简而言之,如果您认为可以找到解决方案,请随时尝试,但要给您的老板估计风险和时间成本。现在是他们的问题。

0
Hoàng Long

如果即使有经验的人,亿万美元的项目也会失败,那么当您还是学生的时候,您就不必担心失败。我遇到了需要解决的问题,我发现如果这是您遇到的问题,则必须记录解决该问题的所有尝试。

有帮助:

  1. 解决问题的尝试证明。
  2. 记录这种类型的故障很重要,因此您可以从中学到东西,几天后再做一次,以为它会起作用。
0
dimitarie