내가 학습하는 방향
Index
문제 정의
대학교 vs 회사
그래서 어떻게 배우냐?
지표로써의 블로그
1. 문제 정의
흐릿한 개념들로 업무 진행에 차질을 빚었던 경험이 있다면 저만의 배움방법을 공유드리고 싶습니다.
2. 대학교 VS 회사
대학교에서는 수동적인 지식의 주입이나 자유도 높은 프로젝트로 고민의 순간에도 흐릿하게 일반적으로 정해진 원칙 밑에서 빠르게 진행했었어야 합니다. 대학교내의 고민의 순간들은 흐릿한 지식 혹은 뚜렷한수 지식이거나 회사에 나와서 바로 적용하기 힘든 지식들의 경우들로 이루어져있습니다.
회사에서 업무를 배우고 진행하고 적용해보면서 고민하고, 뚜렷하게 정의하고 문제를 해결해 나가면서 배워나가게 된다는 것을 배웠습니다.
히스토리에 맞게 뚜렷한 정의를 진행합니다. (문제 도메인이 낯선 경우 팀에게 의존)
어떤 해결방법이 존재해왔고 필요한지 고민합니다.
해결방법들을 적용하고 실험해나감으로써 지식을 배워나갑니다.
이렇게 흐릿하게 알고 있던 지식들이 하나하나 선명하게 만들어 나가고 다른 사람들의 의문점을 해소해나감으로써 개념들은 뚜렷해집니다. 또한, "최악의 경우에 우리는 어떻게 대응해 나갈 것인가?", "이 해결법은 어떤 다른 문제들을 만들어낼것인가?" 를 해결 해나가면서 정답이라기 보다는 최적의 해를 찾아가게됩니다.
3. 그래서 어떻게 배우냐?
넥스트 스텝에서 미션 기반의 교육을 진행하고 코드리뷰를 받을 때 수동적인 노트 필기와 암기보다는 내가 모르는 부분들에 대한 인식을 하고 글로 적어봅니다.
설명할 수 없는 것(모르는 개념)을 인지한다.
이건 무슨 소리지? 객체간의 결합도를 왜 낮춰야하는거지?
주변 개념들을 찾아내기
결합도는 어떻게 측정하는걸까? 오.. OCP, 응집도는 무엇이지? 객체지향적 관점은 무엇이고 절차지향적 관점은 무엇일까?
적용방법과 사용되는 이유를 찾기
객체의 책임이 잘 분리 되있다면 결합도를 낮추고 소프트웨어 변경에 유연하게 대응할 수 있겠구나
이 방법론이 사용된 코드를 해보고 실제로 수정을 했을 때 낮춰지는가?
왜 이렇게 생각하고 진행했을까?
사람들이 보편적으로 사용하는 이유가 무엇일까?
"이해한 개념들을 코드 예시나 이미지를 들면서 설명할 수 있는가?" 테스트 하기
작은코드나 이미지들은 단위가 작을때 의도가 자명합니다. "다른 사람들에게 내가 이해한 바를 전달하면서 내가 실제로 이해하고 있는게 맞는지 (테스트) 꺼내 사용하면서 빠르게 학습할 수 있게 됩니다." 이렇게 학습 했을 때, 내가 아는것이 무엇이고 모르는것은 무엇인지 확실하게 알 수 있었습니다.
Last updated