intro
프로그래머에게 가장 중요한 능력이라고 생각하고, 가장 자신있는 능력이라고 생각하기 때문에 첫번째로 작성한다.
문제 해결 능력이란 무엇인가 하는 이론적인 내용은 평범한 내용이기에, 내 문제 해결 능력을 보여주는 사례와 이야기를 풀어보고자 한다.
그럼에도, 문제 해결 능력이란?
다양한 문제 상황이 있기 때문에 본 글에서 회고하고자 하는 문제 해결 상황을 규정하고자 한다.
개발자로서 가장 많이 마주하는 문제는
남들과 달리 에러가 발생한 경우
즉, 구글링한 검색 결과대로 했는데(알려준 대로 했는데) 에러가 발생한 경우일 것이다.
문제 해결 단계
1. 원인 분석
실행이 되는 환경과 오류가 뜨는 환경 간의 차이를 분석하거나, 에러 메세지를 통해 오류의 근원지를 파악할 수도 있다.
2. 가설 설정 및 검증
분석한 다양한 차이점을 정리해두고 하나씩 고쳐보며 결과를 확인해보는 과정이다.
검증과정에서 새로운 가설은 꾸준히 등장할 것이다.
3. 추가 검증
가설 검증 여부와 별개로 정리해둔 가설들을 모두 확인해보는 과정이다.
문제와 문제 해결 과정을 규정하니 문제 해결 능력이 무엇인가에 조금 더 가까워졌다.
문제 해결 능력
1. 가설 설정 능력
동료와의 작업 환경, 구글링으로 얻은 다양한 사례 등 같은 코드라도 결과값이 다르게 나올 수 있다.
가설 설정 능력은 차이를 유발하는 변수들을 파악하는 능력이다.
가설 설정 능력을 구성하는 유력한 변인으로 다음을 제시해본다.
- 에러 코드와 다른 이들의 코드를 이해하는 능력
- 에러 코드를 통해 문제 원인에 빠르게 접근한 사례
https://thoughthrough.tistory.com/49 - 다양한 구글링 자료 탐색 끝에 상황에 맞는 해결책을 발견한 과정
https://janghan.notion.site/nginx-dab998683dc7426e9b172145afa30214
- 에러 코드를 통해 문제 원인에 빠르게 접근한 사례
- 차이를 발견하는 능력
- 짧은 순간 사례 간 차이를 발견하여 오류 원인을 발견한 사례
https://janghan.notion.site/ec2-8c08d46ca6b04f41a37b52d13a1964b5
- 짧은 순간 사례 간 차이를 발견하여 오류 원인을 발견한 사례
- 분석해낸 차이점으로 세운 가설을 정리하는 꼼꼼함
self reflection (22.08.24)
필자는 여러 사례를 이해하고 차이점을 빠르게 분석하는 것에는 자신이 있다.
하지만 하나의 가설을 검증하여 문제가 해결되면 문제 해결 단계를 종료하고 미검증된 가설을 확인하지 않아 느낀 아쉬움이 있어, 이를 보완하고자 한다.
2. 해결책 제시 (코딩 능력)
문제를 발견하고 가설을 세웠어도 해결첵을 제시하지 못하면 말짱 도루묵이다. 코딩 능력은 그 자체만으로도 기술할 사항이 많기에 새 글에서 작성해보고 싶다.
3. 끈기
말 그대로 문제 원인을 분석하는데 많은 시간과 삽질을 포기하지 않는 것이다. 끈기는 문제 해결과 관련된 블로깅의 절대적인 수와 해결하는데 엉덩이를 붙인 시간 등 다양한 정량적 지표가 끈기를 보여줄 수 있다. 따라서 굳이 구성 변인을 분석하진 않겠다.
self refleciton (22.09.06)
필자는 아직 해결하려고 기록해둔 이슈들은 많지만 프로젝트가 진행되면 해당 프로젝트만 몰입하는 성향이 있어, 해결할 문제들이 쌓여만 있다. 사실 조금 더 부지런하면 해결해갈 수 있는 문제들인데 미루기만 한 것이 문제다. 앞으로 일정관리를 잘해서 끈기 있게 문제를 해결하가는 모습을 보이도록 하자!
'Programmer' 카테고리의 다른 글
[언어] Why Nest? (0) | 2022.09.23 |
---|