성공하는 프로그래밍 공부법


책을 보며 적어 놓고 싶은 부분을 요약 해놓았다.

  • 작은 프로그램 (로또, 볼링점수판 등)이라도 반드시 만들면서 성취감을 느끼며 재미를 붙여야 한다.

  • 1만 시간의 법칙을 생각하자. 연습을 하다보면 늘 것이다.

  • 스터디를 하면서 다양한 사람들을 만나 토론하고, 리뷰하라.

  • 의식적인 연습을 통해 몰입하라.

  • 작은 목표를 세우고, 작은 성공의 맛을 보자. 그 성공을 통해 꾸준히 성장하는 내 자신과 발전해가는 나의 결과물을 보면서 자신감과 에너지를 얻어라.

  • 시작부터 너무 잘 하려는 마음, 완벽 하려는 마음, 실패하지 않으려 하는 마음을 버리고 일단 시작하자.

  • 처음부터 너무 거창한 목표를 세우지 말자. 거창한 목표를 세우고 완벽함에 집착할 경우 한 발자국도 나가지 못하고 포기하는 경우가 대부분이다.

  • 학습에도 애자일 방법론을 적용해보자.

    • 목표를 세운다.
    • 목표일정을 세운다. 길지 않게 4주
    • 완료를 하면 회고를 하자.
  • 공부를 하면서 8가지 방법을 활용해보도록 하자.

    1. 새로 배운 것을 인출하는 연습
    2. 시간 간격을 둔 인출 연습
    3. 다양한 문제의 유형을 섞어서 공부하기
    4. 새로운 지식을 기존의 지식과 연결하는 정교화
    5. 나름대로 문제를 풀어보고 표현하는 생성
    6. 배운 것은 검토하고 스스로 질문해보는 반추
    7. 기억을 붙잡아두는 정신적 도구, 기억술
    8. 무엇을 알고 무엇을 모르는지 알아보는 추정
  • 발표자료를 만들고 대중 앞에서 발표를 해본 후 Q&A 시간도 갖는다. 내가 정확히 무엇을 알고 무엇을 모르는지 명확히 알 수 있는 방법이다.

  • 페어프로그래밍은 컴퓨터 앞에서 입력하는 사람을 드라이버라고 하고 뒤에서 의견을 전달하는 사람을 내비게이터라고 한다. 내이게이터가 프로그래밍의 방향성을 전달하고 드라이버가 수행하는 방식인데 과정에서 서로 토론을 할 수 있다. 서로가 알고 있는 지식이나 문제해결 방식이 다를 수 있기 때문에 토론을 통해서 서로의 지식을 공유할 수 있게 된다.


  • 회고를 하며 반드시 되돌아 보는 시간이 필요하다.

  • 회고 진행 방법

    • 회고 분위기 만들기
    • 데이터 모으기
    • 회고하고 통찰 찾기
    • 개선할 사항 도출하기
    • 회고 종료하기
  • 회고할 때 생각해 볼 것

    • 잘 하고 있는 것은 무엇인가?
    • 잘 하지 못하는 것은 무엇인가?
    • 우리를 괴롭히는 것은 무엇인가?
  • 공부를 위해서는 회복 탄력성이 중요하다. 공부를 하기 위해서는 체력도 중요하고 멘탈 관리도 중요하기 때문이다. 회복 탄력성을 갖기 위해서는 긍정적인 마인드는 필수이다.

  • 코딩의 왕도는 : 다독, 다작하기

  • 코딩 학습의 몇가지 중요한 훈련 방향

    1. 양질의 코딩 정보 검색과 이를 위한 영어 활용 능력
    2. 예제 기반 학습
    3. API 문서 공부
    4. 작성한 코드 공개하기
    5. 내가 만든 프로그램 배포하고 광고하기

나는 군대 있을 때 부터 한 부분의 전문가라고 불리는 사람들의 공부법에 대한 관심이 많았다. 동기부여가 필요했을 수도 있고, 그들의 이야기를 보며 적당한 모방을 거치면 나도 성공에 접근할 수 있지 않을까 하는 생각도 있었다. 궁극적으로는 내가 하고 있는 공부법에 대한 의심에서부터 성공한 공부 방법에 대한 관심이 시작되었을 수도 있다.

최근 다시 공부에 대한 동기부여가 필요하여 회사 라이브러리에서 찾아낸 책인데, 이 책을 읽으면서 군대를 제대한 후 갓 복학 했던 시절이 떠올랐다. 친구 자취 방에서 인터넷 프로그래밍 수업의 과제를 하기 위해 새벽까지 열띤 토론을 하며 버그에 대한 해결책을 찾던 그 시절이 불현듯 머리를 스치고 갔다. 그 당시에는 인터넷과 책을 뒤지면서 문제를 해결하기 위해 모든 열정을 쏟아 부었던 시간이었다.

마땅한 꿈이 없어서 게임을 좋아하니까 컴퓨터공학과에 진학을 해야겠다고 생각했던 그 시절에, 지금와 돌이켜 보면 무엇보다도 더 필요 했던 것은 “동기부여”가 아닐 까 생각해본다. 내가 프로그래밍을 열심히 해야 하는 이유, 내가 이것을 열심히 해서 이루고자 하는 것에 대한 조금 더 명확한 목표.. 조금 더 거창하게 이야기 하면 꿈이 있었다면 좋았을 뻔 했다는 아쉬움이 있다. 하지만 이제라도 그 아쉬움을 달래고자 이 책을 찾게 된 것이 아닐까 싶다.

이 책을 읽으며 나를 다시 돌아보게 되는 기회를 갖게 되었는데, 우선은 너무 잘하려는 마음. 완벽하려는 마음. 실패하지 않으려 하는 마음을 버려야 겠다고 생각했다. 사실 참 어려운 일이기도 하다. 어떤 일을 시작하면 모두들 잘하고 싶어하는 것은 당연한 것 아닌가? 하지만 그 잘 하려는 마음 때문에 항상 조급해하고, 계획이 틀어지면 불안해 하는 마음이 들었다. 사람이 항상 완벽하고 잘 할 수만은 없다. 실패에서 오는 경험도 매우 소중한 경험이 될 수 있으므로 겸허히 받아 들일 수 있는 마음가짐을 가질 수 있었으면 하는 바램이다. 그 다음으로 일을 시작할 때 거창한 목표와 황금빛 미래를 그리는 경향이 있었는데, 그러다 보니 앞서 이야기 했던 거창한 목표를 달성하기 위해서는 계획대로 일이 착착 진행해야돼 ! 실수하면 안돼 ! 라고 생각하는 경향이 있었다. 이런 생각을 하다보면 스트레스는 덤으로 생길 수 밖에 없는 것 같다. 성급하게 접근하지 말고, 차근차근 조금씩 하려는 습관을 가져보아야 겠다.

프로그래밍 공부법 책이었지만, 나름 나에 대해서 다시 생각해 볼 수 있는 기회였다. 끝.

Share