문제를 해결할 수 없으면 어떻게됩니까? [닫은] 무섭게 보입니다 (최악의 상황은 코스

나는 대학을 졸업한지 1 년이 지났으며 실제 문제를 해결하기를 고대하고 있습니다. 특히 약간의 연구와 많은 생각이 필요한 사소한 것들이 아닙니다.

그러나 동시에, 그것은 나의 가장 큰 두려움입니다. 아무리 노력해도 해결할 수없는 문제에 직면하게됩니다. 또한 임박한 마감 시한에 대한 코드를 제공해야한다는 압력으로 유니의 안전한 놀이터에서 볼 때 약간 무섭게 보입니다 (최악의 상황은 코스 나 시험을 다시 실행해야한다는 것입니다).

더 이상 오랫동안 산업에 종사해 온 사람들에게 당신이 할 수 없었던 문제를 해결하라는 지시를 받으면 어떻게 될까요? 그런 일이 있었습니까? 그렇다면 어떻게 되었습니까? 그들은 방금 그것을 떨어 뜨리고 “아, 우리가 다른 것을 할 수있을 것 같아”라고 말했습니까? 결과가 있었습니까? 당신은 견책을 받거나 심지어 해고 되었습니까?



답변

우선, 당신의 두려움은 매우 건강하고 정상입니다. 소프트웨어 업계에서 약 15 년이 지난 후 나의 생각은 다음과 같습니다.
자신에게 물어볼 몇 가지 질문이 있습니다.

  1. 당신 은 문제 를 이해 합니까?
  2. 시간 / 예산 제약 내에서 문제를 해결할 수 없다는 것을 알고 있습니까?
  3. 문제를 해결하는 방법을 모르십니까?
  4. 고객 / 보스가 불가능을 요구하고 있습니까?
  5. 그만한 가치가 있습니까? (ROI)
  6. 그것은인가 REAL 문제?

1) 우선, 문제를 이해해야합니다. 어리석은 질문은 없습니다. 고객 / 보스가 요구하는 것과 요구하는 것을 이해하고 있습니까?

2) 이런 일이 일어날 것입니다. “내일까지 다리를 지어 라” . 제약 조건 내에서 문제를 해결할 수 없다는 사실을 알고 있어야합니다. 고객 / 보스는 시간 / 예산에 유연 할 수 있으며 시간 / 예산을 더 많이 제공하도록 수정할 수 있습니다.

3) 문제를 이해할 수 있고 제약이 합리적인 수준에 있고 문제를 해결할 수있는 기술이 있지만 충분하지 않다면 … 그게 StackOverflow인터넷의 목적입니다. 먼저 연구를 수행하십시오. 정량화 할 수있는 명확한 질문을하십시오. 동료에게 물어보십시오. 디자인 세션이 있습니다.

4) 이것은 답변 번호 2의 변형입니다. 고객 / 보스가 불가능한 것으로 보입니다 . 조사 좀 해봐. 이유를 정확히 알고 명확하게 설명하지 않는 한 문제를 해결할 수 없다고 절대 말하지 마십시오.

5) ROI투자 수익을 의미합니다. 이것은 시간 투자입니다. 당신의 시간!. 문제를 조사하고 해결하는 데 걸리는 시간을 보증 할만큼 문제가 충분히 중요합니까? 이것을 고객 / 보스와상의하십시오

6) 실제 문제입니까? 종종 고객은 원하는 것을 이해하지만 반드시 필요한 것을 이해하지는 않습니다. 고객 / 보스가 실제로 필요로하는 것을 이해하고이를 논의하십시오.

이 지침이 도움이 되길 바랍니다.


답변

당신이 겉보기에 해결 불가능한 문제에 갇힌 경우 기억해야 할 두 가지 :

  • 다른 사람들에게 당신이 가능한 한 빨리 갇혀 있음을 알리십시오. 너무 늦기 전에 시간에 맞춰 견적을 조정하는 데 도움이됩니다.

  • 문제를 해결하는 한 가지 방법으로 문제가 해결되지 않으면 너무 많은 시간을 낭비하기 전에 포기하십시오. 도움을 요청하거나 다른 접근법을 시도하십시오. 그것은 자신을 단단하고 똑똑하게 증명하는 것이 아니라 일을 끝내는 것에 관한 것입니다.


답변

StackOverflow 로 이동합니다 .)

그러나 모든 농담은 제쳐두고 미지의 것을 두려워하지 않습니다. 당신이 이미 풀었다면, 다음 번에는 문제가되지 않기 때문에, 당신의 전체 경력은 알 수없는 문제에 직면하게 될 것입니다.


답변

나는 간단한 대답을해야합니다. 도움을 요청합니다. 다른 사람들이 때로는 무언가에 대한 해결책을 찾으려고 노력할 때 도움을 요청하는 것처럼.

편집 : 나는 종종 동료에게 문제를 설명하거나 때로는 StackOverflow와 같은 사이트에 질문을 게시하기 시작할 때 해결책을 찾는다고 언급해야합니다.


답변

다른 각도에서 봐

나는 이것을 여러 번 보았습니다. 보통 발생하는 일은 다음과 같습니다.

  • 문제가 있습니다. 처음에는 문제를 어떻게 해결할지 생각합니다.
  • 실제로 솔루션을 구현할 때 작동하지 않는 것으로 나타났습니다 (실제 문제의 약한 모델로 인해).
  • 문제를 해결하기 위해 고군분투하고 나면 더 많은 연구를하거나 다른 사람들에게 물어보십시오. 순수한 좌절감은 없습니다!

마지막으로 원하지 않는 일을 선택하십시오->

“더티 핵”

작동하지만 더럽습니다 …


답변

보통, 나는 나보다 똑똑한 사람이 문제를 해결하도록한다. 그는하고 내 상사입니다. 내 자신이 멍청하게 느껴진다. 우리는 계속 움직입니다.


답변

그것은 왜 당신이 할 수없는 이유에 달려 있습니다 …

  • 논리적으로 불가능 : 요구 사항을 작성한 사람과 토론하십시오. 오해가있을 수 있습니다. 예 : 어느 시점에서 사양은 응용 프로그램이 모든 플랫폼 (Windows / Linux / Mac)에서 기본 모양과 느낌을 가져야한다고 말하고 다른 곳에서는 프로그램이 모든 플랫폼에서 정확하게 동일해야한다고 말합니다

  • 기술적으로 불가능 : 작업중인 도구를 다시 평가하십시오. 적절하지 않을 수 있습니다. 동료 및 프로젝트 관리자와 문제를 토론하십시오. 예 : 가비지 콜렉션이 불확실한 시간 동안 실행을 중지 할 수있는 환경의 어려운 실시간 요구 사항

  • 불충분 한 성능 : 잘못된 알고리즘을 사용 중이거나 문제가 너무 어려울 수 있으며 (예 : NP-hard) 요구 사항이이를 고려하지 않습니다. 사용중인 알고리즘을 다시 평가하십시오. 더 빠른 방법이있을 수 있습니다. 동료 및 프로젝트 관리자와 문제를 논의하십시오. 완벽한 결과 대신 좋은 휴리스틱으로 전환하십시오. 예 : 수십 또는 수백 개의 노드로 경로 최적화

  • 당신은 그것을하는 방법을 모른다 : 동료들에게 물어보고, stackoverflow를 요청하고, 인터넷을 검색하십시오. 사용중인 tool / lib의 지원 부서에 문의하십시오. 프로젝트 관리자와상의하십시오.

  • 작동하지만 작동하지 않습니다. 이유는 없습니다. 경쟁 조건을 고려하면 찾기 어려운 버그가 자주 발생합니다. 동료에게 도움을 요청하십시오. 네 눈은 둘 이상을 봅니다. 인터넷에서 사용중인 도구 / 라이브러리에 알려진 버그가 있는지 확인하십시오.