🍎 개발자가 질문하는 방법
🍏 질문
- 생기는 모든 의문을 질문으로 만드는 것은 좋음
- 예시 ) 다른언어에서는 ~던데, swift에서는 왜 안그런가요?
- 그 모든 질문을 남에게 하는 것은 고민을 좀 해봐야 함!!
- 사람마다 질문을 받아들이는 방법이 다름
- 예시 ) 공격으로 받아들이기도 함, 일을 떠넘긴다고 느끼기도 함
- 질문은 학습으로 이어짐
질문은 학습으로 이어지고 학습은 성장이 이어지게 함!
🍏 해도 되는 질문 vs 하면 안되는 질문
- 개발을 처음 공부할 때 해도 되는 질문과 그렇지 않은 질문이 있음
◻️ 하면 안되는 질문
- 검색하면 나오는 지식 -> 검색을 해보면 알 수 있음 [ ex ) 지피티 ]
◻️ 해도 되는 질문
- 내가 한 삽질이 이미 있는 질문들 -> 검색해도 안나와요
- a, b, c 에 대한 검색을 해봤는데, a, b만나오고 c가 안나와요 c에 대해 알려주세요!
- 상대방이 대답이 가능한 질문
🍏 질문할 때, 준비해야 할 마인드 셋
- 질문은 부끄러운게 아니다!! [ 질문은 학습으로 이어지고 학습은 성장이 이어지게 함! ]
- 질문을 받아주는 사람에게 기본적인 예의를 잊지 말자! 상대방도 자신의 소중한 시간을 투자하여 대답해주고 성심성의껏 답변해주는 것임을 절대 잊지 말자!!
- 질문을 오픈 된 공간에서 했을 때, 지우지 말자. 정말 쉬운 질문이라도 누군가가 언젠가는 반드시 겪을 문제임. 내가 왜 이런질문을 했었지? 싶더라도 지우지말자 초보자에겐 도움이 되는 질문이다!!!!!
🍏 질문 할 때 주의할 점
◻️ 1. 먼저 질문을 하기 전에 검색하자
- 검색 하는 방법은 하단에 추가로 작성해 놓을게요!!
- 검색으로 해결되면 참 좋겠지만.. 개발의 세계는 ..... 쉽지않다
◻️ 2. 내가 질문하고자 하는 요점이 무엇인지 정리해보자
- 질문을 받아주는 사람이 아무리 개발을 잘 안다고 할 지라도 내 코드는 내가 제일 잘 안다!!
어느 부분이 해결이 되지 않는지 정확히 알고 질문하자
- 두괄식으로 질문을 작성하자.
- 또한, 자신이 현재 무엇을 하고 있었는지.. 어떤 수준 정도인지도 포함해주면 좋다.
◻️ 3. 내가 시도한 문제해결 방법을 제세하기
- 자신이 생각하는 발생한 문제의 원인을 적어보자
- 발생한 문제와 내가 생각한 원인, 그 원인의 해결방법을 생각해보고 결론 내려보기
- 그 결론을 통해 시도해보고 시도한 결과를 제시하기
◻️ 4. 코드만 던져주고 안돼요, 어려워요 절대 금지!!!!
- 초보개발자가 가장 많이 하는 실수가 아닐까 싶음
- 절대 코드만 던져주고 다 한것 같은데 어디가 문제인지 모르겠어요 어려워요 등 두루뭉실한 질문은 하지말자!!
→ 최소한 어떤 에러 코드가 발생했는지, 자신의 코드중 어느 부분에서 어떤 에러가 난건지 정도는 첨부해주자!!
→ 문제가 생겼을거라고 예상되는 부분의 코드라도 정리해서 공유해주면 좋다!
- 주석까지 달아서 주면 ... 나이스 하지만 그것이 어렵다면 정리라도!!!
[ 잊지 말자 질문을 받아주는 사람은 나를 위해 자신의 소중한 시간을 써서 알려주고 있다는 것을!! 내가 할 수 있는 최대한의 노력을 다하자!! ]
◻️ 5. 그리고 질문을 마지막으로 보낼 때, 스스로 다시 한 번 질문을 되새겨보자.
- 위의 사항들을 생각하며 문제를 파악하다보면, 현재 문제에 대해 감이 잡히기도 한다!!
→ 문제사항을 파악하며 스스로 문제를 해결 할 수도 있다!!
- 질분을 보내기 전 마지막으로 한번더 정리하는 과정을 통해 더 좋은 질문으로, 더 이해하기 쉽도록 정리하며 스스로 해결할 수 있는지 생각해보면 좋다
◻️ 6. 질문을 하고 답변을 받았다면, 피드백을 주는것이 좋다!
- 질문을 하고 답변을 받았다에서 끝내지 않는것이 좋다!
- 질문을 하고 답변을 받음으로 서로 건설적 대화가 이루어 질 수 있도 더 좋은 해결 방안을 찾을 수도 있다!!
◻️ 7. 해결한 질문은 정리하고, 공유하는 것이 좋다
- 질문을 하고 답변을 받으면 싹 지워버리는 경우도 있는데 그렇지 않는게 좋다!!
- 질문을 통해 얻은 결과를 정리하여 공유한다면, 정리하는 과정을 통해 문제점이 무엇인지 한번더 파악 할 수 있는 계기가 됨
- 내가 공유한 질문, 내가 받은 답변은 누군가 나중에 검색을 통해 해결 할 수 있는 쉬운 문제로 바뀔수 있음
◻️ 8. 피드백을 얻으면서, 똑같은 질문을 하지 않도록 새기자!
- 질문 하는 것 나쁘지 않다!!
- 하지만 똑같은 질문을 반복하는것 나쁘다!!
- but 다른 사람들이 "쟤는 왜 똑같은거 계속 질문해?"라고 생각할까봐 질문을 안한다? 그건 더더더더더더더 나쁘다!!!
- 같은 질문을 하지 않을 수 있도록 한번 질문했다면 잊지 않도록 피드백 받은것을 정리하고 새길 수 있도록 하고 정리해두어서 정리해둔것을 보고도 이해할 수 있도록 하는 것이 좋다!
질문 하는 방법 5가지를 바탕으로 좋은 질문의 예제를 보자
🍏 좋은 질문의 예제
- 자신의 상황을 공유
- 자신의 환경을 공유
- 내가 기대하는 상황을 설명
- 내가 지금 하고있는 것을 공유
- 내 기대와 다른 현재상태를 설명
5가지를 모두 담아 질문하는 것이 좋음
예시
제가 지금 계산기를 만들고 있는데요. (상황공유)
UIkit으로 Storyboard로 UI를 그리고 데이터 매니저를 따로 만들었어요 (환경공유)
버튼을 눌렀을 때 연산이 되었으면 좋겠는데 (기대하는 상황 설명)
이 함수에서 이 라인을 고치고 있는데요 (지금 하는 것 공유)
숫자가 붙어서 나와요(기대와 다른 현재 상태 설명)
무엇을 찾아보면 좋을까요? 어떤걸 더 공부해보면 좋을까요? 제가 어떤 코드를 잘못 작성한 걸까요?
등등의 질문을 할 수 있게 됨
질문자와 질문을 받는 답변자가 상황을 이해하고 답변하기가 쉬워짐
🍏 검색을 잘하는 방법
◻️ 먼저 나는 검색을 잘 하고 있는지 생각해 보자
-
코드를 작성하다가 모르는 것이 생겼을 때, 원하는 답과 유사한 답을 찾을때 까지 몇분내로 찾을 수 있나?
-
코딩을 하다가 모르는 것이 생겼을 때, 검색을 하여 정보를 얻는 것이 몸에 베어있는가?
-
코딩을 하다가 검색하면서 알게된 정보가 "새로 학습했다"의 느낌보다는 검색덕분에 "힌트를 얻었다" 혹은 "저번에 공부한 것을 다시 떠올렸다"의 느낌인가?
위 사항에 해당되지 않는다면, 검색을 잘하는 방법에 대해 알아보자!
◻️ 추천하는 검색 사이트
- Google
- Stack Overflow
- Github
- Official Docs
- 생활코딩
검색을 다 해봤는데 모른다? 안된다? 질문을 해야한다!!
질문 하려는 것에 대해 정말 잘 모르겠거나 초심자라면 1, 2 번까지 해보고 질문하는 것 추천!!
◻️ Google
🌈 Google에서 가장 양질의 결과를 얻기 쉽다
🌈 영문으로 검색하기!!
- 개발과 관련된 정보는 대부분, 영어로 된 자료들이 질이 높고 양이 앞도적으로 많다!
- 한국어로 검색하면, 언어의 뉘앙스 혹은 번역된 단어 선택에 따라 확실한 답변을 얻기 어려울 때가 있음
- 영문으로 검색하더라도 구글의 언어를 한국어로 해놓으면 한국어의 문서가 먼저 나옴. 구글의 언어를 영문으로 설정해 두는 것을 추천함!
- 검색어에 특수문자가 포함되어 있는 경우 영문으로 전환하여 검색하는 것을 추천한다!
- ex) ? → question mark, || → or , && → and, & → ampersand, \ → backslash
🌈 Google에서 지원하는 기능을 활용하기
- 특정 사이트 검색법
- 검색어 + site:stackoverflow.com
- 검색어에 해당되는 stackoverflow사이트의 자료들만 보여준다!
- 특정 키워드 검색법
- 키워드만 잘 넣어도 대부분 컴색페이지 최상단에 자료가 나옴
- 검색이 필요한 키워드를 "키워드" 큰따옴표 사이에 넣어서 작성해줄 것!
- 두가지 이상 키워드 "키워드" or "키워드" / "키워드" + "키워드"
- 키워드 제외 한 결과 -"키워드"
예시 원소가 2개 이상 담길 수 있는 집합을 표현하는 자료구조를 표현하는 swift함수를 찾고자 한다면
"swift" + "multiset" 을 활용해서 찾아보는게 좋다
💡 Tip. 정확한 키워드 알아내는 법 💡
1. 당연하게도 공식문서를 읽으며 정확한 용어를 눈에 익히는 것이 가장 중요함 원서를 많이보는 것을 추천
2. 내가 찾으려는 키워드를 잘 모르겠다면 multiset이라는 용어를 찾기위해
set allowing multiply elements 라고 입력해 볼것!
이 방법도 사용하기 위해선 평소..... 영어공부가 조금은 필요하다!
- 특정 날짜 검색법
- 프로그래밍 특성상 언어 및 프레임 워크들이 시시각각 변하기 때문에 문서를 검색했을때 언제 작성된 문서인지 확인하고 참고하는것이 중요하다!
- 라이브러리, 프레임워크( ~개월)
- 프로그래밍언어, 운영체제(~개월, ~년)
- 프로세스, 설계방법론 등 공학관련 주제들 (~년 ~십년)
- 알고리즘, 자료구조, 언어론, 운영체제론 등 전산학관련 주제들(~십년)
🌈 알게 된 검색결과는 꼭 정리하자!
- 해결했다고 생각하는 문제들은 보통 한번 더 마주쳤을 때 따로 정리해 두거나 내 것으로 만들어 두지 못하면 또 해결하지 못하게 되기 때문에!!
- 꼭꼭!!! 몇번을 강조해도 모자람!!
개인 노트 혹은 블로그 등등 어디에라도 꼭 정리해두자
◻️ Stack Overflow
🌈 구글 검색으로 얻어지는 결과는 Stack Overflow인 경우가 많음
- 영어를 못한다면 어려운 부분이 많음!
- 영어를 공부하면 좋지만 어렵다면 번역기를 사용하는것도 추천!!
◻️ 생활코딩
- 한국의 Stack Overflow와 유사한 역할을 하는 곳이다
- 그룹 검색 기능을 통해 검색어를 설정해서 검색하면 된다!
💡 Tip. 검색 용이하게 하는 단축키💡
Cmd+Tab
, Cmd+L
(편집기에서 브라우저로 전환하고 주소창으로 포커스 옮기기)
- 검색어 입력 후
Enter
J
, K
로 내비게이션하다가 적절한 문서가 있으면 Cmd+Enter
(새 탭으로 열기)
Ctrl+Tab
, Shift+Ctrl+Tab
으로 브라우저 탭 전환
Space ↓
, Shift-Space ↑
로 페이징하며 읽기
- 불필요한 탭은
Cmd+W
로 닫기
우수 TIL 축하드리러 왔습니다~~~ 열심히 잘 하시고 계시네요! 파이팅입니다