프로그래머스 문제에서 level1도 잘 못풀고 있고, 심지어 쉬운문제도 잘 풀리지 않아 고민이 되서 글을 쓰게 되었다. 군바해서 지금까지 프로그래머스를 통해서 알고리즘 공부를 시작했다. 아직 짧은 기간이지만 대학교 1학년때 웹파이썬 프로그래밍을 할때도 마찬가지로 시험준비를 위해서 프로그래머스를 잠깐 했었는데 그때 느꼈던 고질병이 지금도 동일하게 발생하는것 같다. 그래서 곰곰히 나의 문제점을 생각해보았다.
나의 고민
- 내가 문제를 보고 생각한 아이디어대로 코드를 짰지만 이상하게 답이 안나오고, 그 답이 안나오는 이유를 잘 모르겠다. 내 생각이 왜 틀렸고, 내 코드가 왜 틀렸는지를 알고 싶어서 구문 한줄한줄 프린트를 해보았지만 문제점을 찾지 못하면 미친다. 피드백 해줄 사람이 없다. 때문에 1학년 1학기때 하루단위로 1문제를 고민한 과정이 있는데 이게 효율적인건지는 계속해서 의문이다. 그래서 더이상의 고민이 무의미하다고 생각되는 시간을 1-2시간으로 잡은것이다.
때문에 시간과 공간이 제한된 군대에서는 1-2시간정도 고민하고 잘 안되면 다른사람의 답을 보는데 수학문제 풀때 못풀어서 답지보는거랑 비슷한 현타가 오는 느낌이다.
수학문제를 풀때는 과외의 보조를 받아서 과외선생님을 내 질문셔틀(?)로 쓰면서 나의 궁금증과 문제점을 해결해나아가면서 성장했다는 느낌과 실제 결과물을 만들어냈는데 알고리즘은 아직 시작한지 얼마 안되서 그런지 모르겠지만 갈피를 못잡는 느낌이다. 주위에서는 “독학으로 했다, 어릴때부터 해서 정보올림피아드 나갈정도의 실력이다, 혼자 구글링해서 해도 충분히 가능이다, 프로그램을 직접 만들어보면서 top-down방식으로 접근해보라” 라고들 한다. 이런 케이스만 봐서 그런지 아직 내가 잘하고 있는건지 모르겠다.
-
주로 수학적 원리를 프로그래밍하거나 문자열부분에 대해서 내가 취약하다. 취약점을 공략해야하는데 아쉬운부분이 많다.
-
문제를 고민을 엄청나게 하다가 풀이를 보고 나의 무능력함을 깨달으면 내가 하는 방식이 맞나?하는 의심이 들기 시작한다.
4.모르거나 틀린 문제에 대한 처리를 어떻게 해야할지 고민이다. 수학 같은 경우에는 오답노트를 작성하거나 틀린문제를 다시 풀어보는 방식을 반복했는데 알고리즘은 그냥 넘어가서 새로운 문제들을 많이 접해야할지 아니면 오답노트처럼 계속 정리를 해야할지가 고민이다.
- 수학 과외 선생님같은 ‘선생님’이 없어도 혼자 독학할 수 있는 방법이 무엇일까
내가 생각한 솔루션
-
내 생각의 과정을 공유하고 지적해주는 선생님이 필요하다.(질문셔틀) 1-1) 형/ 주변친구 -> 내가 자주 질문할수가 없음. 내가 질문하는건 거의 질문 셔틀 수준이라 시간이 제약 -> 여러 친구들에게 돌아가면서 질문? 1-2) 대학교 조교 질문 1-3) 리얼로 과외 선생을 구하기 1-4) 스터디 1-5) 카페에서 질문 -> 실시간으로 불가능/ 비대면이라 명확한 의사전달 한계
-
여러 프로그램을 만들어보며 소스코드를 보면서 top-down방식으로 알고리즘 익히기 -> 형태를 보면서 익히기, but 알고리즘에 대한 실력은 크게 늘것 같다는 생각이 들지 않음
-
머리 깨져가면서 계속해서 지금처럼 공부하기. -> 지금처럼 하는데 실력이 늘지 않는다는 의심이 들음. -> 꾸준히가 중요
고민하다가 발견한 글
어찌보면 프로그래밍은 수학공부하는 거와 같은 거 같습니다.
-
기본 개념 이해, 기본 문제 풀이
-
연습문제 풀이, 문제풀이의 패턴 암기 <- 이해한 거 확인
-
발전문제 풀이, 패턴바탕으로 응용/체화 <- 해당 개념 바탕으로 난이도 있는 문제 풀이
-
심화문제 풀이 <- 연관 개념들 다 포함되어 풀이에 시간이 걸리거나, 상상력도 발휘해야 하는 문제
-
새로운 chapter에서 같은 방식으로 진도 나가기
아마 님은 2번 연습문제 또는 3번 발전문제 과정인거 같은데, 제가 아는 경우에 3번에서 진도가 느려도 문제 풀어내고 반복하면 수학점수가 80점 이상되고, 4번 심화문제과정을 풀어가면서 풀이과정이 오래걸리고 힘들어도 기쁨/쾌감을 느낀다면, 그런 내공이 쌓여서 수학100점 맞는 사람이 되는 것 같습니다.
학창시절에 심화문제 풀다가 해설지를 쓸쩍 보고 넘기거나, 문제를 풀고나서도 쾌감/감흥 없이 넘어갔다면 삶이 팍팍하거나 수학을 별로 안좋아한다는 뜻일 것 같습니다.
선행학습을 한 친구가 2번,3번을 쫌 한다고 해서 비교해서 상심할 필요가 없고, 소질과 적성은 4번 과정과 늘 새로운 chapter를 공부해야 하는 5번과정에서 확인된다고 생각합니다.
조금 더 생각하면 프로그래머 이후의 경력도 생각해볼 때에 늘 새로운 걸 공부하는 것을 즐겨야 계속 진도가 나가겠죠?
고수님들의 의견도 함께 나눠주세요!