내용에 문제가 있는 경우 삭제,수정 조치 하겠습니다.
네이버 부스트캠프 2주차를 마쳤다.
참 좋은 시대에 태어났다고 생각하게 되었다.
이미 선배개발자들은 굉장한 문제들을 풀어냈고, 난 그걸 배우기만 하면된다.
배우고 느낀것들
질문을 두려워 말기
이걸 모르는건 부끄러운게 아닐까? 라는 생각을 버리게됐다.
모르는게 부끄러운게 아니고, 모르는 것을 안다고 넘기는 것이 정말 부끄러운 것이다.
모르는 것을 인정하고, 타인에게 질문함으로써 함께 지식을 쌓아가는 경험을 할 수 있었다.
도움을 주고 도움을 얻는 문화
누군가에겐 A가 쉽고, 누군가에겐 B가 쉽다.
누군가는 10시간걸려 해결하는 문제를 누군가는 1시간만에 풀어버리기도 한다.
지금까지 서로 배워온게 다르고 아는게 다르기 때문이다. 내가 죽도록 힘을들여 풀고자하는 이 문제가 누군가에겐 매우 쉬울수도 있고, 이미 해결해본 경험이 있을 수도 있다. 모르는 문제가 있으면 물어보자.
또한, 내가 해결하고 고민해본 문제라면 기꺼이 공유하자. 그것이 함께 자라는 길이다.
다양한 의견을 받아들이고, 배우기
학교에서 배우는 문제들은 대부분 정답이 있고, 때로는 명확하고 빠른 풀이과정까지 존재한다.
하지만, 현실의 문제는 다르다. 애초에 문제조차 제대로 정의되지 않은 경우가 많고, 같은 문제를 정의한들, 같은 풀이를 기대하기 어렵다. 그래서 어떤 것을 문제로 잡을지, 그리고 그것을 어떻게 풀어갈지의 방향성은 무궁무진해진다.
다양한 방향성을 보고 배워 문제 해결과정을 개선시킬 수 있다.
따라서 현실의 문제에서 타인의 의견을 묻고 토론하는 것은 매우 중요하다.
설계에 집착하지 않기(하향식 접근에 대한 미신)
… 보다시피 전문가는 추상성의 정도를 오르락 내리락거리고, 특히 탑다운과 바텀업의 방향이 전환되는 시점들에서 “아하 순간”이 찾아왔습니다.
이 내용은 2학년 OOP수업때 교수님도 하신 이야기이고, 이전에 읽었던 함께자라기에서도 나온 내용이다.
그러나 나는 이걸 까맣게 잊고, 코딩을 할때 무의식적으로 Top-Down형식이 옳다고 믿었던 것 같다.
전문가일수록 Top-Down, Bottom-Up중 하나에 집착하는게 아니라 두가지 전략을 유연하게 사용하면서 새로운 돌파구를 만들어낸다. 가장 새로운 돌파구가 많이 나오는 시점이 전략을 변경하는 시점이다. 한가지 전략에 집착하지말자.
그러려면 변경에 강한, 유연한 코드를 작성하는 능력을 길러야 한다.
또한 문제를 풀어갈때 어떻게 하면 설계를 잘할까? 가 아니라 가장 변경이 많을 부분은 어딜까?를 확인하고, 그 부분의 의존성을 최소화 시키려고 노력해야 한다.
성장한 부분
내 생각을 전달하기
내 머릿속에 있는 생각들을 온전히 전달하기란 어려운 일이다. 항상 말을 하다보면 생각했던 것들 중 뺴먹는 부분이 생기기 마련이었는데, 피어세션을 하면서 그부분이 많이 개선되었다.
피어세션을 진행하면서 많은 문제에 관해 이야기를 나눌 수 있었다.
이때 문제를 해결할 때 가장 중점적으로 생각한 부분이나 어려움을 겪었던 부분, 개선할 점들을 얘기하는 시간을 가졌는데 이게 많은 도움이 된 것 같다.
이런 연습이 하다보니 나의 의견을 표현할때 조금 더 명확하고 더 잘 이해할 수 있게 정리해서 전달할 수 있게 되었고, 타인의 의견을 더 잘듣고, 잘 요약할 수 있게 되었다.
코드 작성능력이 향상되는 것도 물론 좋지만, 더 중요한 의견전달, 커뮤니케이션적인 성장을 이뤘다는 점이 너무 만족스럽다.
문제 정의, 해결 능력
아무래도 제한된 시간속에서 미션을 수행하다보니 빠르게 문제를 해결하는 연습을 할 수밖에 없다.
이걸 2주동안 하다보니 어느새 문제를 분석하고 목표를 세분화하고, 해결하는 시간이 눈에 띄게 줄었음을 확인할 수 있었다. 이 덕분에 이번주는 수면시간을 더 확보할 수 있었고, 더 건강할 수 있었다!
개선할점
배운 점들을 적극적으로 활용하기
1. 설계에 집착하지 않기
2. 적극적으로 학습 커뮤니티에 질문, 토론하기
3. 다양한 의견을 적극 수용하고 배워나가기
배웠으면 더 적극적으로 써먹자.
문제 풀이 과정, 접근과정 기록하기
문제풀이시의 내 사고과정을 제대로 기록하고, 이를 통해 개선할 점들 찾아갈 것이다.
특히 문제 풀이과정에서 접근과정을 바꾼 경우를 기록할 것이다.
이 과정을 통해 해결한 문제, 변경하기 어려웠던 부분을 기록하면 이후 문제를 해결하는데에도 어디가 가장 변경이 많을지를 예측할 수 있을 것이고, 이는 전체적인 문제해결능력과 코드 품질을 향상시키게 해 줄 것이다.