Child pages
  • 내가 프로그래밍을 공부하는 방법은?
Skip to end of metadata
Go to start of metadata

10년 이상을 프로그래머로 살다 학교에 온지 4개월이 되어간다. 파트로 출근한 기간까지 합치면 2012년 9월부터니까 7개월 정도 되어가는 듯하다. 학교에 있다보니 프로그래머로 살 때와는 완전히 다른 고민을 할 수 있어 한편으로는 즐겁고, 한편으로는 고통스러울 때도 있다.

3월부터 본격적으로 학생들과 같이할 수 있었다. 한 달 동안 같이 하면서 느끼는 바가 있어 내가 프로그래밍을 공부하는 방법에 대해 공유하려 한다. 내가 접근하는 방법이 정답이라는 것이 아니다. 무엇인가를 학습하고 공부하는데는 다양한 방법이 있고 자신만의 스타일을 찾아서 학습을 해나갔으면 하는 바람으로 글을 적는다.

나는 프로그래밍을 학원에서 3개월 자바 전문가 과정 코스로 배웠다. 정말 3개월만에 front end부터 back end까지 경험할 수 있었다. 짧은 기간에 상당히 많은 양의 학습을 하다보니 정말 열심히 공부했던 기억이 난다. 그런데 아침부터 밤 늦게까지 배우는 프로그래밍이 지겹지 않고 정말 재미있었다. 프로그래밍이 즐거웠던 이유는 프로그래밍이 나에게 잘 맞았던 이유도 있지만 하루 하루 조금씩 변화 발전해 나가는 나만의 소프트웨어를 볼 수 있었기 때문이다. 하루 하루 소프트웨어가 성장해 갈수록 나 또한 성장해 간다는 것을 느낄 수 있었기 때문이다. 프로그래밍을 학습하는 것이 즐거웠던 또 하나의 이유는 기존 학교와의 교육 방식과 너무 달랐기 때문이라고 생각한다. 소프트웨어를 개발하기 위해 정말 필요하다고 생각하는 지식들을 전달했기 때문에 동기 부여 만큼은 확실했기 때문이다.

프로그래밍에 대한 나의 관심과 흥미는 위와 같은 과정을 통해 형성되었다. 그 이후에는 3개월 동안 학습하면서 부족하다고 생각되는 부분들을 내가 주도적으로 찾아 학습해 나갈 수 밖에 없었다. 주위 선배 개발자나 온라인에서도 어떤 방식으로 학습하고 공부해 나갈 것인지에 대해 가이드하는 경우가 많지 않아 거의 혼자 학습하면서 성장해 나갔다. 힘들고 더딘 과정이기는 했지만 내가 필요한 공부를 필요하다고 생각하는 시점에 했기 때문에 충분한 동기 부여가 된 상태에서 학습할 수 있었다. 이 같은 학습 방식은 1년, 2년에 끝나는 것이 아니라 10년이 지난 지금도 계속해서 자기 주도적인 학습을 하고 있다. 특히 프로그래머라는 직업이 한 5년 열심히 공부하고 끝나는 것이 아니라 프로그래머를 업으로 삼는 동안에는 지속적으로 공부해야되기 때문에 자기 주도적인 학습 습관은 무엇보다 중요하다고 생각한다.

공부도 그렇지만 삶 자체에서 무엇인가 느끼고 변화를 만들려면 시간이 필요하고, 동기 부여가 필요하다. 그렇지 않은 상태에서 주위에서 좋다니까, 필요하다니까 할 수 밖에 없는 학습과 고민들은 그 효과가 크지 않은 듯하다.

학교에서의 공부도 똑같다고 생각한다. 학교라는 공간은 조직적인 한계와 여러 명의 요구를 모두 수용해야 하는 하기 때문에 모든 학생들의 학습 스타일에 맞춰 커리큘럼을 맞추기는 힘드리라 생각한다. 물론 다양한 학생들의 학습 스타일에 맞추려는 노력은 계속하겠지만 한계가 있을 수 밖에 없다. 그렇다면 어떻게 해야할까? 나는 나만의 학습 스타일과 공부 스타일을 찾아 자기 주도적으로 학습해야 한다고 생각한다.

각 과목마다 정말 핵심적으로 학습해야할 학습 목표가 있을 것이다.  예를 들어 내가 지금 수업하고 있는 소프트웨어 공학 수업의 핵심 학습 목표는 "소프트웨어 개발 환경의 다양한 문제를 해결하는 능력을 키운다."이다. 이 학습 목표를 달성하는데 있어 내가 수업 중에 진행하는 강의와 실습을 통해서만 도달할 수 있는 것이 아니다. 자신이 소프트웨어 공학 수업 외에 개인적으로 개발하고 있는 소프트웨어가 있다면 이 소프트웨어의 문제점을 인식하고 이에 대한 해결책을 찾아 나가면서 자신의 문제 해결 능력을 키워나갈 수도 있다. 해결책을 찾을 수 없다면 수업 시간에 선생님이나 다른 학생들과의 논의를 통해 해결 방법을 찾고 적용한 후 경험을 공유하면서 느껴나가는 진정한 학습이다.

특정 과목의 과제가 너무 많은가? 어떻게 접근하겠는가? 과목의 과제를 모두 제출하는 것이 맞는가? 물론 맞는 말이다. 근데 아직 실력이 부족해 너무 많은 시간을 투자해야 되고, 과제를 하는 것이 너무 재미없다면... 그래도 계속해야할까? 이런 상황이라면 해당 과목의 핵심 학습 목표를 다시 들여다 봤으면 좋겠다. 핵심 학습 목표를 도달하는데 과제를 모두 완료하는 것이 중요한가? 아니면 과제 중 하나라도 내가 학습 목표를 도달하는데 의미가 있다고 생각하는 과제에 집중하는 것이 좋을까? 난 오히려 전자를 선택하기보다는 후자를 선택하고 싶다. 그러면서 자신만의 학습 스타일과 공부 스타일을 찾았으면 한다. 만약 과제를 통해 학습 목표에 도달하기 힘들다고 생각하면 자신만의 방법을 찾는 것도 좋은 선택이라고 생각한다.

그렇다면 성적은? 맞다. 성적은 좋지 않을 수도 있다. 하지만 성적을 위한 학습이 중요한가? 개인의 성장을 위한 학습이 중요한가? 지금까지 우리는 성적을 위한 학습에 너무 많은 시간을 쏟아 왔다. 하지만 대학에서의 학습과 사회로 진출했을 때의 학습은 성적과는 무관한 자신의 성장을 바라보면서 학습해야 하지 않을까? 그렇게 공부할 때 공부가 재미있고, 5년, 10년이 아닌 평생을 공부하면서 나아갈 수 있지 않을까?

지금부터라도 자신만의 학습 스타일을 찾아 자기 주도적인 학습을 하는 습관을 만들어 나갔으면 하는 바람으로 내가 지금까지 공부한 방법과 생각들을 공유해 본다. 아무쪼록 프로그래밍이 지겹고 힘든 것이 아니라 즐거운 것이라는 것을 느꼈으면 한다.

PS. 이제 경력도 좀 쌓이고 안정적인 생활하니까 참 말 쉽게 한다. 그죠? 나는 위와 같은 접근 방식이 모든 사람에게 맞는 것이라 이야기하는 것이 아니다. 모든 사람이 위와 같이 학습하라고 이야기하는 것도 아니다. 내가 이야기하고 싶은 것은 무엇인가를 학습하는데 다양한 방법이 있고, 자신만의 방법을 찾아 나가라는 것이다. 혹시나 나는 이런 방식으로 학습하는 것이 맞지 않은데 주위 사람들이 다들 열심히 하니까 나도 그들과 같은 방법으로 학습해야지라고 고민하는 친구들에게 다른 방식도 있다고 이야기해주고 싶어서이다. 공부에 정도가 어디있겠는가? 공부하는 것을 즐기고, 내가 성장하는 것을 즐기면서 평생을 같이한다면 그것이 공부의 정도이지 않을까?