개발자는 항상 공부해야하는 직업입니다.
프로그래밍 분야는 끊임없이 변화합니다. 이런 변화에 뒤쳐지지 않기 위해선 꾸준히 학습해야 합니다.
그렇다면 도대체 어느 정도로 공부해야 할까요?
좋은 개발자가 되기 위해선 꼬리를 무는 공부를 해야합니다.
먼저, 공부하고자 하는 내용을 검색합니다. 그리고 검색 결과의 첫 페이지에 나오는 모든 링크를 하나하 눌려가며 공부합니다. 이 과정에서 이해가 되지 않는 내용이 있다면, 그 부분도 동일한 방식으로 검색하여 학습합니다. 이러한 과정을 더 이상 새로운 검색 결과가 나오지 않을 때까지 반복합니다.
예를 들어, 자바스크립트로 웹 페이지를 개발하던 중 "클릭한 버튼의 색상을 변경하는 방법"에 대해 막혔다고 가정해 봅시다. 이를 해결하기 위해 다음과 같은 과정을 거칠 수 있습니다:
"자바스크립트 버튼 색상 변경"을 검색합니다.
이 코드를 이해하기 위해 "자바스크립트 DOM 조작"을 추가로 검색합니다.
DOM 조작에 대해 공부하면서 "이벤트 리스너"라는 개념을 접하게 됩니다.
"자바스크립트 이벤트 리스너"를 다시 검색하여 학습합니다.
이 과정에서 "버블링"과 "캡처링"이라는 새로운 개념을 발견하고, 이에 대해 추가 검색을 통해 학습합니다.
이런 방식으로 공부하면 다른 프로그램을 짤 때 도움이 됩니다. 많은 프로그램의 동작 원리가 비슷하기 때문입니다. 대부분의 프로그램은 데이터를 저장하고, 불러와서 계산하고, 전송하고, 다시 저장하는 과정의 반복입니다. 따라서 한 분야를 깊이 있게 공부하면, 그 지식을 다른 부분에 응용하기가 훨씬 수월해집니다.
방금 예를 들었던 버튼 이미지 변경을 깊게 공부해두었다면 다양한 부분에서 응용할 수 있습니다.
이벤트 리스너를 등록하고 비동기로 처리하도록 하는건 백앤드에서 데이터처리로 인해 지연이 발생하는 등에 응용할 수 있습니다.
버블링과 캡처링에 대해 미리 고민해두었다면 계층적으로 작업을 처리하는데 응용할 수도 있습니다.
실제로 개발 과정에서 마주치는 어려운 문제들의 대부분은 다른 분야에서 이미 사용되고 있는 방법을 응용하여 해결할 수 있습니다.
꼬리를 무는 학습 방식은 취업 면접에서도 큰 도움이 됩니다. 면접관이 소프트웨어 관련 지식을 물어볼 때 단편적인 질문만 하지 않습니다. 면접자가 얼마나 깊이있는 지식을 가지고 있는지 알기 위해 꼬리에 꼬리를 무는 질문을 이어갑니다. 면접자의 질문에 면접자가 대답하면, 그 대답안의 내용에서 다시 질문을 이어가는 방식으로 면접을 진행합니다. 만약 앞서 소개한 방식으로 공부를 했다면 폭넓고 깊이 있는 지식을 바탕으로 자신 있게 대답할 수 있습니다.
꼬리를 무는 방식의 학습이 쉽지는 않습니다. 시간도 많이 걸리고 인내심도 필요합니다. 하지만 남들이 하기 어렵기 때문에 해낼 가치가 있기 마련입니다.