고민상담

코딩 실력 향상법(손코딩)과 슬럼프 극복 조언 부탁드립니다.

안녕하세요. 현재 본전공 외에 데이터 분야에 관심이 생겨 데이터 분석 관련 학과를 다전공하고 있는 대학생입니다.

지금까지 파이썬, R, SQL 등을 공부하고 틈틈이 머신러닝 모델링 프로젝트 등도 진행해 보았는데요. 겉핥기 식으로 툴은 다룰 줄 알게 된 것 같은데, 막상 로직을 짜거나 근본적인 코딩 실력의 벽에 부딪힐 때마다 너무 막막합니다. 요새는 '내가 왜 사서 고생하며 다전공을 선택했을까' 하는 후회와 자괴감마저 들어 동기부여가 바닥을 친 상태입니다. ㅠㅠ

답답한 마음에 현직자 혹은 선배님들께 현실적인 조언을 구하고 싶습니다.

1. 코딩 실력을 근본적으로 키우려면 어떻게 해야 할까요?

알고리즘이나 코드의 흐름을 확실히 잡으려면 '손코딩'이 정말 실효성이 있는지, 아니면 추천해 주실 만한 다른 효과적인 공부법이 있는지 궁금합니다.

2. 슬럼프 및 동기부여 부족은 어떻게 극복하셨나요?

비전공자 베이스로 데이터와 코딩을 공부하다 보니 진입장벽이나 한계를 남들보다 더 뼈저리게 느끼는 것 같습니다. 다들 이런 짙은 회의감이나 번아웃이 오는 시기를 어떻게 멘탈 관리하며 극복하셨는지, 선배님들의 경험담을 꼭 듣고 싶습니다.

바쁘신 와중에 읽어주셔서 감사합니다. 따끔한 팩트폭력이나 따뜻한 격려 모두 감사히 받겠습니다!

1개의 답변이 있어요!

  • 손코딩 자체가 컴퓨터 도움 없이 내가 로직을 끝까지 설명할 수 있는지 확인하는 과정이라고 생각하시면 됩니다. 실제로 알고리즘 대회나 기술 면접을 준비하는 사람들도 종이에 먼저 흐름을 적거나 의사코드를 작성하는 습관을 많이 가지고 있습니다.

     다만 실무에서는 손코딩보다 의사코드 작성, 플로우차트, 그리고 디버깅을 반복하는 시간이 훨씬 많습니다.

    제가 추천드리고픈 방법은 문제를 풀기 전에 바로 IDE를 켜지 않는 것입니다.

     먼저 입력값이 무엇이고, 출력값이 무엇인지. 또, 예외 상황은 무엇인지, 어떤 순서로 처리할 것인지를 종이에 5분 정도 시간을 정해두고 쫙 적어보세요. 

    그 다음 코드로 옮기고, 마지막에는 문제를 풀었던 다른 사람들의 코드와 비교하면서 내가 어떤 사고를 놓쳤는지 또 다른사람들은 어떻게 코딩 풀이를 하고 있는지 확인해보는 과정을 거치면서 나에게 부족한 부분과 남들이 가진 장점을 동시에 배우고 흡수할 수 있어서 실력이 가장 빨리 늘었던 방법입니다. 

    그리고 지금 말씀하신 <툴은 다룰 줄 아는데 막상 로직이 안 짜진다>는 고민은 의외로 데이터 분야에서 정말 흔하게 하는 고민입니다. SQL이나 pandas, scikit learn API를 사용하는 것과 프로그래밍 사고력은 별개의 능력입니다. 현업 데이터 엔지니어나 머신러닝 엔지니어들도 새로운 문제를 만나면 IDE보다 메모장을 먼저 여는 경우가 많습니다.

    또 주변에 관련 학과 출신들에게 물어보면 하나같이 모두가 나는 개발에 재능이 없는 것 같다 라고 생각하는 시기를 한 번 이상 무조건 겪어보았다고 이야기들 합니다. 사실 이런 고민은 되려 더 성장하기 위한 밑거름이 되기 때문에 너무 깊게 빠져들지 않고 여러 문제들을 계속 풀어보고 부딪히는게 중요하겠습니다.

    실력이 늘기 직전에는 항상 내가 아무것도 모른다는 느낌이 강해집니다. 예전에는 문법도 몰라서 무엇을 모르는지도 몰랐다면, 지금은 로직의 부족함을 인지할 만큼 시야가 넓어진 것입니다. 성장하고 있는 것은 체감되기 쉽지 않기 때문에 발전이 없다고 생각하기 보다도 계속해서 더 성장하기 위한 발판과 경험치가 쌓이는 중이라고 생각하면 되겠습니다.

    그리고 데이터 분야는 특히 비교를 하면 끝이 없습니다. 통계도 해야 하고, 프로그래밍도 해야 하고, 머신러닝도 해야 하고, 수학도 해야 합니다. 처음부터 모든 것을 잘하는 사람은 거의 없습니다. 현업에서도 SQL만 전문으로 하는 사람, 모델링만 하는 사람, 백엔드 시스템을 담당하는 사람이 나뉘어 있는 이유도 그만큼 범위가 넓기 때문입니다. 그래서 다전공 하고 계신 상황이 미래에 다가올 상황들에 대비하는 경험이 될 수 있으니 지치더라도 포기 마시고 계속 작은 성공이라도 소중히 하며 도전해보시면 좋겠급니다.

    하루에 어려운 문제 하나를 붙잡고 5시간 고민하는 것보다, 오늘은 알고리즘 문제 하나를 완전히 이해하고, 내일은 직접 구현하고, 모레는 아무것도 안 보고 다시 구현하는 방식이 훨씬 오래 기억에 남기 때문에 이런 방식의 공부 방법도 도움이 될 수 있을까 싶어 남겨봅니다.

    마지막으로 조급하게 언어를 더 배우기보다는 한 언어로 문제를 많이 풀고, 직접 설계하고, 스스로 설명할 수 있는 연습을 꾸준히 해보세요. 코딩은 천재성이 아니라 반복해서 사고하는 습관이 실력을 만듭니다. 

    지금 느끼는 답답함은 포기해야 한다는 신호가 아니라, 한 단계 올라가기 직전에 거의 모든 개발자가 한 번쯤 겪는 과정이라고 생각하셔도 됩니다.

    채택 보상으로 50베리 받았어요.

    채택된 답변