Today I../Today I Learned

200503) 좋은 질문을 하는 방법

HJChung 2020. 5. 3. 23:53

How to Ask

 

codestates immersive과정의 '시작하기 전에 - 좋은 질문을 하는 방법'과 

코드스쿼드 정호영님 동기부여 - 질문 잘 하는 법을 듣고 개발을 공부할 때(뿐만 아니라 새로운 지식을 배우고자 할 때) 필요한 질문의 자세에 대해 정리하였습니다. 

그러나 아무리 좋은 지식도 행동으로 이어지지 않으면 아무 소용이 없기에 꼭!!!!!! 반드시 실천할 것입니다.

“Do something today that your future self will thank you for.”Sean Patrick Flanery 

 

1. (글로 적어서) 질문하는 법을 알고 & 배우는 것은 개발자로서 선택 사항일까?

개발 직군에서는 새로운 것을 계속해서 배워야 하고, 많은 내용을 온라인에서 질문/답변/공유하는 문화가 있기 때문에 질문하는 법을 알고 & 배우는 것은 '필수'입니다. 

그리고, '나만의' 물어볼 곳/물어볼 대상/물어보는 방식..등 을 구축하는 것은 매우 중요합니다. 

 

2. 어떻게 좋은 질문을 하는가?

  • step 0-1. 검색

    • 내가 모르는 것이 있다면 적어도 최소 1000명의 사람들이 동일한 내용에 대해 궁금할 것이고 discussion이 있었을 것입니다. 그래서 대부분의 문제는 검색에 적절한 시간을 쏟는다면 문제에 대한 해결책을 얻을 수 있습니다. 
    • 1. 에러 메세지 읽어보기
      1. 나에게만 발생하는 특수한 에러일 경우, 나에게만 해당하는 특수한 naming들은 제외하고 검색해야 합니다. 전체 복붙식 검색은X
      2. 검색을 통해서 원하는 답을 얻지 못한 경우, 내가 어떤 링크를 찾아봤고/그 링크에선 어떤 사항이 있었는지 등에 대해 기억/기록/트래킹 할 수 있어야 합니다. 
        " 검색을 해 봤는데, 여기서는 이런 얘기를 하는데 도움이 안됐고, 여기서는 이렇게 알려주었는데 해 봤는데 다시 이런 문제가 발생했습니다."  식으로  
    • 2. 에러가 났을 경우 뿐만 아니라 내 질문을 개선하기 위해서도 검색: 내 상황을 설명하기가 힘든 상황일 때, 답을 얻기 보다는 더 나은 질문 keyword를 얻기 위해 검색을 활용해야 할 수도 있습니다.

 

  • step 0-2. 노력, 시도

    • 해결이 될 법한 다른 방법을 세가지 정도 시도합니다. 그리고 후에 step 3. Background Info에 포함시킵니다. 

 

  • step 1. 질문

    • 질문을 해서 내가 필요한 것을 얻어내는 것이 위너입니다. 혼나도 그 책망은 나의 발전을 위하는 소중한 사람의 마음이란는 것을 받아들이고 질문하는 용기를 가지는 것이 필요합니다. 
    • 질문을 못한다는 건 답변을 못한다는 것과 마찬가지.
    • 체크사항1. 내가 질문을 고민없고 검색 없이 그냥 던지듯이 하는가
    • 체크사항2. 나의 질문 퀄리티는 나아지고 있는가 / 변함이 없는가 

 

  • step 2. 좋은 제목

    • 질문의 첫번째 조건은 좋은 제목: 질문만 보고도 답변을 달 수 있을 것만 같은 제목. 제목 = 질문의 요약
    • 예시)
      • bad: 세션 문제 도와주세요ㅜㅜ
      • good: [node] 페이지 리당렉트를 해도 세션을 유지하려면?
    • 바쁜 동료에게 물어본다고 생각하고 질문을 작성해야 합니다. 
    • 내 질문을 요약하는데 어려움이 있는 경우: 제목 작성을 생략하고 먼저 질문을 작성 한 후 그를 바탕으로 나중에 제목을 씁니다. 

 

  • step 3. Background Info

    • Intro처럼 코드를 붙여넣기 전에 나의 상황을 먼저 설명해야 합니다. 
    • 포함사항 1. 내가 시도한 흔적들
    • 포함사항 2. 그 시도들로 인해 얻었던 결과들 (그게 오답일지라도) 
    • 내가 무엇을 모르는지 모르는 경우: 그래도 '제가 뭘 모르는지 모르겠어요'라고 조차 물어보지 않는다면 그 다음은 없습니다. 
    • 내가 현재 겪고 있는 문제의 상황을 설명하기 쉽지 않은 경우: 질문 keyword를 얻기 위해 검색을 활용할 수 있습니다. 또는 내가 처해있는 문제를 다른 사람이 재연할 수 있도록 정보를 제공하는 것도 한 방법입니다. 

 

  • Step 4. 코드 작성시

    • 코드 작성시 code snippet을 활용합니다. 코드 이미지 캡처나 전체 코드를 올리는 것은 좋지 않습니다. 
    • 발생한 에러 메시지는 정확하게 첨부합니다. 
    • 그리고 필요하다면 적절한 스크린샷을 첨부하기도 합니다. 
Reference
스니펫
Snippet이란 '조각'이란 뜻으로 프로그래밍에서는 코드 스니펫Code Snippet이라고 하여 재사용할 코드들을 사전에 정의되어 있어 빠르게 쓸 수 있도록 하는 기능이다.
https://blog.azulpintor.io/entry/snippets-in-vscode-for-html

VSCode, 코드 스니펫 (Code Snippet)

들어가며 스니펫Snippet이란 '조각'이란 뜻으로 프로그래밍에서는 코드 스니펫Code Snippet이라고 하여 재사용할 코드들을 사전에 정의되어 있어 빠르게 쓸 수 있도록 하는 기능이다. 이클립스에서 코드 템플릿Cod..

blog.azulpintor.io

 

  • Step 5. 질문에 도움을 받은 후 행동

    • 만약 누군가가 내게 도움을 주었다면 어떻게 그 답변으로 인해 문제를 해결할 수 있었는지 서술하고 감사 표시를 해야 합니다.
    • "감사합니다. 당신의 답변대로 이렇게 해봤더니 이런 과정을 거쳐서 이렇게 되었다. 내가 무엇을 잘 못 했던 것 같다." 의 형식

3. 질문에 반드시 포함되어야 하는 내용

  • 언어 버전
  • 플랫폼 환경
  • 운영체제 및 환경
  • 질문과 관련된 소프트웨어 상세 스펙
  • 기타 중요한 제약 조건