글 작성자: Key Ryung

2편에서는 '왜 멘토링을 선택했는지'에 대해 리뷰해보려고합니다.

 

어느 순간 저는 개발이 다이빙이 아닐까라는 생각이 들었습니다. 멘토링 이전의 저는 다이빙을 한다면서 계속 배를 타고 여기저기 다니면서 수심이 얕은 곳만 다녔습니다. 

 


개발자에게 필요한 것은

 

에프랩에서 작성한 블로그를 한 편 보게 됩니다.

 

https://f-lab.kr/blog/importance-of-self-improvement

 

개발자는 왜 40살에 치킨집을 차리게 될까?

올해 하반기부터 블로그를 제대로 시작하면서 <Tech-Lab>이라는 콘텐츠를 기획하게 되었는데요. 이 카테고리에서는 개발 기술 관련 글, 프로젝트, 스터디 경험담 등 ‘좋은’ 개발자로 성장하기

f-lab.kr

 

블로그의 제목은 개발자는 왜 40살에 치킨집을 차리게 될까? 로 제가 가지고 있는 걱정에 대해 해결책을 말해줄 것이란 기대, 그동안 가지고 있던 의문들에 대한 답변을 기대하고 글을 읽기 시작했습니다.

내가 하고 있는 개발자로써의 방향성이 바로 이것이 아닐까라는 생각이 들었던 부분

글을 읽으면서 느꼈던 것은 지금의 나라는 개발자의 현재 혹은 미래의 모습이겠구나라는 생각이었습니다. 어떻게든 시간 내에 구현을 해나가나는 능력을 목표로 개발자라는 커리어를 진행하고 있던 스스로의 모습에 속상했습니다.

 

https://f-lab.kr/blog/problem-defining-ability

 

개발자는 문제 해결 능력에 앞서 문제 정의 능력이 중요하다.

안녕하세요. 좋은 개발자로 성장할 수 있는 환경을 만들고 서포트하는 F-Lab입니다. 개발자에게 필요한 능력인 “문제를 해결하는 능력” 이 무엇인지 정의하고, 이 능력을 키우려면 어떻게 해야

f-lab.kr

 

이어서 한편을 더 읽어보았습니다. 이번 편의 제목은 개발자는 문제 해결 능력에 앞서 문제 정의 능력이 중요하다. 였습니다.

 

개발자는 문제 해결 능력을 길러야 되고 문제 해결 능력이 높은 개발자들이 좋은 개발자다라는 문장은 어느 순간부터 너무나 많은 사람들에게 언급되는 문구가 되었지만 저는 개발을 처음 시작하면서도 실제로 현업에서 개발을 진행하면서도 문제 해결 능력이란 무엇인지 명쾌한 정의를 내리고 있지 못하고 있던 와중이었습니다.

 

문제 정의에 따라 문제 해결이 달라집니다.

문제 해결에 앞서서 문제 정의를 정확히 해낼 수 있도록 하는 방향의 교육이 필요하다고 이것이 내가 필요한 바로 그것이라는 생각은 오래 걸리지 않았고 바로 신청을 진행했습니다.

 

독학으로 채울 수 없는 것

 

정보의 바다에서 돌아다니다 보면 개발 공부를 위한 자료들이 무지막지 하게 많습니다. 그렇다면 독학을 해도 되지 않을까라는 생각도 듭니다. 금액적으로도 시간적으로도 부담이 확연히 적어지는 부분에서 고민이 많이 되었던 부분입니다.

 

커리어 부분도 고려한다면 정보의 바다에서 무엇을 찾아 공부해야 올바른 커리어 패스를 쌓아나갈 수 있는가에 대한 조건이 추가되는 순간 독학에 대한 고민은 순식간에 사라지게 됐습니다. 단순히 기술만 배우기 위해서라면 독학으로도 충분하다고 생각했기 때문입니다.

 

최근 유튜브에도 많은 개발 관련 정보들이 올라와서 보면 한 두개 쯤 댓글에 이런 내용을 본 경험이 있으실 겁니다.

 

안녕하세요! 선생님

올려 주신 정보를 통해서 많은 것을 배우고 깨달아 나가는 중입니다. 항상 양질의 컨텐츠 올려주셔서 감사합니다.
다름이 아니고 커리어와 관련하여 어떤 공부를 해야될지 모르겠어서 고민되는 상황입니다. 

저는 백엔드 개발자로 A라는 기술을 주로 사용하고 있는데 B를 사용하는게 전망이 좋을지 ㄱ을 사용하는게 커리어적으로 도움이 될지 판단이 안서는 상황입니다.

 

이런 댓글을 저는 남겨본 경험이 있습니다. 이 때의 느낌은 마치 바다에 알지도 못하고 프리 스킨 스쿠버를 하는 느낌이 었습니다. 새로운 기술 스택이 나올 때마다 사용법을 빠르게 익혀서 적용하여 코드를 작성하고 문제가 발생하면 그 때마다 문제를 해결하고 더 나은 방법이 없나 구글링까지는 해보지만 문제의 원인이 무엇인지 완벽하게 파악하지 못하는 상태였습니다. 원리를 모른 채 망망대해에서 일단 다이빙하는 상태였습니다.

 

개발 다이빙
개발에서의 많은 방향을 탐색하여 적성 혹은 전망 있는 영역 찾기 스쿠버 다이빙을 배를 타고 다이빙 스폿을 찾기
해당 영역의 기술에 대해 심도 있게 학습 다이빙하기

숙련자가 아니라면 프리 다이빙은 매우 위험합니다.

저는 어디에 다이빙을 해야될지 배는 어떻게 운전하는지 아무것도 모르고 일단 출발했다는 생각이 들었습니다. 어딘가에서 다이빙은 해야될텐데라는 이 곳이 내가 다이빙해도 되는 곳인가라는 의심이 많이 들었던 시기였습니다. 그렇게 여기저기 돌아다니면서 구현 속도에 초점을 맞추고 새로운 기술 트렌드에 깊이 없이 접근했었습니다. 이런 방식으로 커리어를 쌓아나아가다보니 명확한 한계가 서서히 보이기 시작했습니다.

 

눈 앞에 바로 보이는 한계로써는 이직이 가장 큰 문제였습니다. 더 많은 트래픽과 유의미한 트래픽을 받아볼 수 있는 서비스 기업으로 가고 싶다는 마음은 컸지만 Job Description과 동떨어진 나의 이력서를 보기도 하고 운 좋게 면접까지 갔더라도 실질적인 트래픽을 받아 본 경험이 있나요? 라는 질문 하나에 열심히 적었던 포트폴리오가 무용지물이 되는 상황을 겪고나니 어디서부터 잘못된 것인지 감조차 잡을 수 없었습니다.

 

실질적인 트래픽을 받은 경험이 있나요? / 그러려고 여기 오고 싶어요

 

멘토링? 멘토? 구루?

먼저 멘토링과 부트 캠프와는 다릅니다. 다르다는 것을 인지하고 신청했다는 것을 먼저 말하고 넘어가야 될 거 같습니다.

 

블로그 글을 통해 얻었던 갈급함을, 현재 상황을 벗어나고자 하는 절박함을 다른 교육 프로그램을 들으면서 방향성으로 흘리지 않고 싶었습니다.

 

프로그래밍이라는 것을 처음 접하거나 프론트/백엔드에 대한 전반적인 생태계에 대한 이해가 전무하다면 당연히 멘토링은 불필요하다는 생각이 들었습니다. 마치 드라마 일타 스캔들에서 나오는 유명 수학 강사가 이제 처음 수학을 배우는 단계에서는 더 많은 효과를 누릴 수 없는 것처럼 말입니다. 그래서 스스로에 대해 다시 점검했던 시간도 있었습니다.

 

처음 개발 시작할 때는 한 분야에 정말 최선을 다하여 GOAT가 되고 싶다는 목표도 있었습니다. 하지만 공부하면 할수록 저는 리눅스를 만든 토발즈도, 이더리움을 개발한 비탈리크 부테린 같은 개발자들과는 거리가 멀다는 것을 깨달았습니다. 게다가 이전 직장들에서 그 분야에서 정말 최고인 분들을 보면서 나는 GOAT가 될 수 없구나를 느끼면서 좌절했었습니다.

 

좌절하는 와중에도 포기하지 않았다는 것은 스스로 대견하다고 생각들지만 건강한 정신과는 멀다고 생각듭니다. 이런 건강하지 못한 정신이 멘토링을 통해서 극복할 수 있을지 배움 이외에도 또 다른 기대도 하고 있었습니다.

 

모르는게 적을수록 적게 안다.

 

'아는게 많을수록 모르는게 많아진다'를 반대로 '모르는 게 적을수록 많이 안다고 착각한다'라는 말로 체감하는 시기도 있었습니다..

 

처음 시작 시에 Java만큼은 그래도 공부를 탄탄하게 진행했다고 (혼자서?) 생각하고 얼른 진도를 끝내 이직할 생각을 하게 됩니다. 지금 생각하면 부끄럽다는 생각도 들지만 한편으로는 그만큼 성장한 자신이 자랑스럽기도 합니다.

Java만 하더라도 현재의 내가 과거의 나에게 질문을 한다면 하나도 답변 못하게 할 자신 있습니다.

상담한 그대로 기본기를 다지고 멘토링을 받으면서 개성 있는 프로젝트도 진행했습니다. 기본기는 많은 영역들이 내포되어 있어 무엇이다라고 말할 수는 없지만 계속 쌓아나가면 나갈수록 기본기의 중요성에 대해 뼈저리게 느낍니다. 물론 여기서 말하는 기본기란 Java의 문법, SQL 문법만 의미하는 것이 당연히 아닙니다.

 

멘토링에서 하는 다이빙이란?

 

멘토링을 다이빙까지 하는 과정에 비유해본다면 배를 대신 운전해주시지도, 대신 다이빙을 해주시지도 않습니다. 왜 배를 이곳으로 가야하는지를 프로젝트와 멘토링 시간을 통해 질답해나가고 어디까지 다이빙 할 수 있을지, 무엇을 조심해야 될 지, 왜 다이빙하고 있나에 대해 계속 알아가는 과정이 각 영역별로 진행되었습니다.

 

멘토링을 진행하며 정리한 노트

 

어떤 순간에는 의문이 들었습니다. 이렇게만 하면 진짜 좋은 개발자가 될 수 있나?

 

네 혹은 아니오, 이론적으로 배웠을 뿐 체화되지 않은 상태였습니다.

 

다시 개발 얘기로 돌아온다면 Java, Spring, Database 에 대해 이론적으로 배웠을 뿐 실제로 직접 적용해본 경험도 없기 때문에 준비는 되었지만 부족한 상태입니다. 프로젝트를 시작해야만 했습니다. 이론을 깊이 있게 학습만 하면 우매함의 봉우리에 머물러 있게 됩니다. 멘토링에서는 이런 부분을 해소하고자 프로젝트를 진행하는 것이 아닐까 생각들었습니다.

 

그래서 멘토링 과정에서 프로젝트를 진행하고 Pull Request의 리뷰를 대응해나가야 합니다. 멘토링하는 동안의 멘토님은 더이상 계시지 않습니다. 코드 리뷰해주시는 리드 개발자만 계실뿐...

 

하나의 질문을 하셨지만 정말 많은 것을 답해야 됩니다. 왜냐하면 추가로 또 질문하실 테니까요.

 

이런 과정을 계속 반복하고 프로젝트 마무리까지 진행하면 그동안 커리어를 이어나가면서 들었던 모든 의문들을 모두 해결할 수 있었습니다. 개발이 다이빙이라면 이제는 더 깊이 들어갈 수 있다는 자신감이 생겼습니다.

 

마치며

 

글을 읽으시는 여러분들에게도 성장을 위해 혹은 목표를 위해 무엇이 필요한지 생각해보는 글이 되었으면 합니다.

 

EOD