'학생'에 해당되는 글 7건

  1. 2008/05/25 컴공학생들이 해보는 짝프로그래밍의 고찰 (2)
  2. 2008/04/20 아니 이런코드가 컴파일 되는거? (1)
  3. 2008/04/19 학생증 가지고 마이크로소프트 제품 무료로 사용하기 (3)
  4. 2008/04/12 구구단 출력, 이대로 좋은가?
  5. 2008/04/07 비주얼스튜디오 2008에서 VC++ 하기 (학생용) (2)
  6. 2008/04/02 프로그래밍 공부도 방법론을 적용하자 (3)
  7. 2008/04/01 열정을 가져라? 경험하라! (2)

애자일방법론을 아시나요?

본인은 애자일방법론을 아주 좋아합니다.(현재 열심히 배우고 있습니다)

쉽게 애자일방법론을 말하자면

알파 -> 베타 -> 베타 -> RC1 -> RC2

위와 같은 순환으로 점진적으로 App를 완성시킨다는 것이죠. 처음 핵심만 만들고 점점 살을 붙이는 격이라 하겠습니다.

위키백과 - 애자일








이에 반면에 폭포수는 프로젝트마다 다르겠지만 대부분 위에 왼쪽 사진과 같습니다.(ㄷㄷㄷ)

여기서 말하고 싶은것은 애자일이 가지는 짝프로그래밍입니다.

짝프로그래밍을 말하려 하는 배경은 본인은 틈틈이 많은 학생들의 코드를 유심히 관찰해 보았습니다. 역시 학생이다 보니 명명법을 비롯해 제대로 된게 하나 없죠. 이것은 배워야 하는 문제이니 스스로가 노력해야겠죠.

하지만 문제는 모두 로직과 스타일이 다른데 스스로가 제대로 한 건지 못한 건지 모른다는 것입니다. 심지어 자신이 잘 짜고 있다고 믿는 학생도 있습니다. 출력만 예쁘게 잘 나오면 장땡인가 봅니다.

자 그럼 본론으로 코드는 사람마다 모두 다르다고 합니다. 맞습니다. 사람의 환경이 서로 다르니깐요. 그래서 인도나 미국회사들은 정해진 스타일의 틀을 지정하죠. 그래야 유지보수가 한결 쉬워지니깐요.

그런데 학생들은 자신의 코드에 대해 망각에 빠진 채 아무런 지적 없이 코딩을 한다는 것이죠. 하지만 정확히 지적하냐는 건 힘들기에 배제하겠습니다.


한컴퓨터로 두명이상이 코딩하기?

처음 이런 소리 들으면 도저히 이해가 안될 것입니다.(저도 그랬으므로)

하지만 애자일 관련 도서나 블로그를 보면 짝프로그래밍의 장점이 분명 있다는 것이고 프로젝트에 있어 매우 효과적이라는 것입니다. 짝프로그래밍 하다가 성격 안 맞으면 욕나오겠지만 유지보수 안돼서 버그나서 욕나오는거랑 맘먹을 것입니다.


그럼 어떻게 짝프로그래밍을 해야 할까요?

일단 학교 숙제를 가지고 서로 한다는건 엄두도 안날 것입니다. 왜냐면 코드가 같으면 낙제니깐요.ㅎㄷㄷ

또 짝이라 하지만 포기한 학생들 분명 있습니다. 즉 한명만 열심히 코딩 할 수도 있다는 것이죠.

그러므로 수업정책상 하기힘든 방법일 것 같네요.

하지만 스스로가 발전되길 바라는 학생이 있을 것입니다. 그런 학생들이 모여 서로 구현을 하려 한다면 분명 발전이 생긴다는 것 입니다.


결론!

프로그래밍 공부는 책을 가지고 반복

프로그래밍 구현은 두명 이상이 한명은 코딩치고 나머지 참여자는 같은 모니터를 보면서 의견내보고(여건이 안되면 어쩔수....)


장점.

컴퓨터대 개인으로 인해 생기는 망상이 깨진다.

코드가 더 정교하게 된다.

단점.

서로 잘났다 하는 친구랑 하면 싸움이 난다.


애자일하면 이렇게 된다.(잘 뭉치면 승리한다)

짝프로그래밍의 장단점에 대해 잘 정리된 글이네요. http://mars.egloos.com/1635173


생각

분명 팀 과제는 있지만 현실은 팀이 아니고 웬수라고들 합니다. 이런 상태에 이런 방법까지 제안한다면 A+ 받기 힘들죠.

그리고 코드는 그저 네이버검색에 의존하여 나온 코드 위주이고 또는 스스로 생각해낸 코드이니 서로 독특하죠.

그래서 개인이 작성한 코드를 학생들끼리 서로 교환하고 서로 지적받고 물어봐야 한다고 생각을 합니다.

즉 분명히 코드의 피드백은 있어야 한다고 생각을 합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

비주얼스튜디오에서 한글은 가능하단건 알았지만 실지로 한번 전부 한글로 해보았습니다.

소스는 저번 구구단에 대한 얘기를 할때 만든 소스를 사용해 보겠습니다.


#include<stdio.h>

#define 한줄의총커서 72
#define 엑스문자표시총행 16
#define 구구단한계산의글씨량 5

#define 구구단앞숫자 9
#define 구구단뒷숫자 9

void 야너곱하기만해(int x, int y)
{
        printf("%dX%d=%d",x,y,x*y);
}

void 몇줄띄기(int count)
{
        for(int i=0;i<count;i++)
               printf("\n");
}

void 몇칸띌래?(int count)
{
        for(int i=0;i<count;i++)
               printf(" ");
}

bool 짝수이면_(int value)
{
        if(value%2==0) return true;
        else return false;
}

void main()
{
        int
여태총몇줄했어= 0;
       
int
총몇개계산했어= 0;

        int 임시1야= 0;
       
int
임시2야= 0;

        for(int i=1 ;i<=구구단앞숫자;i++)
       
{
               for(int j=1 ;j<=
구구단뒷숫자;j++)
              
{
                      
총몇개계산했어++;
                      
임시1야= (여태총몇줄했어%엑스문자표시총행)+1;

                       if(임시1야<= 엑스문자표시총행/2)
                      
{
                              if(!
짝수이면_(총몇개계산했어))
                             
{
몇칸띌래?((임시1야-1)*구구단한계산의글씨량);
                             
}
                              else
                              {
몇칸띌래?(한줄의총커서-(임시1야*구구단한계산의글씨량)-(임시1야-1)*구구단한계산의글씨량);

                              }

                              임시2야= 임시1야;

                       }

                       else

                       {

                              if(!짝수이면_(총몇개계산했어))

                              {

몇칸띌래?(임시2야*구구단한계산의글씨량);

                              }

                              else

                              {

                                      몇칸띌래?(한줄의총커서-(임시2야*구구단한계산의글씨량)-(임시2야+1)*구구단한계산의글씨량);
                             
}
                       }
야너곱하기만해(i,j);
                       if(
짝수이면_(총몇개계산했어))
                      
{
몇줄띄기(1);

                              여태총몇줄했어+= 1;

                              임시2야--;
                      
}
               }
        }
        getchar();

}

VS 2003부터 가능하지만 VS2003은 앞글자가 영문이어야 한다고 하더군요.

솔직히 지저분하고 쫌 웃기지만  초보들이 읽기에 더더욱 편할 것 같네요.

모로 가든 서울만 가면 되지 않을까요? ^^ (서울을 출력으로 비유한게 아니라 배움)

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

학생들의 혜택을 모르고 개발도구나 제품들을 얻기 위해 많은 수고를 하셨을 것입니다.

그것도 불법으로 찝찝하게 말이죠.

이젠 정정당당히 공부하고 개발하세요!

일단 무료 버전은 두가지가 있습니다.

하나는 ISIC로 고가의 정품을 무료로 다운 받을 수 있지만 학생이어야 하고 두번째는 Express 버전을 다운 받는 방법입니다.

ISIC로 제품 받기

학생들은 ISIC(International Student Identity Card)라는 학생을 증명하는 학생증이 있을 것입니다. 그럼 준비는 끝!

학생증을 보시면 ISIC 고유번호가 있을 것입니다.

학생인증은 S로 시작하는 번호를 사용하게 됩니다.

Channel8를 통하여 제품을 얻게 되는데 Channel8의 자세한 설명은 박중석님의 블로그를 참조하세요.

Channel8

준비가 되었다면 다운로드 사이트에 접속하셔서 마이크로소프트 계정으로 로그인 하시기 바랍니다.

다운로드 설명보기

제품 고르기

원하시는 제품을 고르시면 로그인이 안되어 있을시 로그인창이 뜨고 로그인 되면 학생인증창이 뜨게 됩니다.

일단 국가를 고르는데 아무국가나 고르시고 Step3에서 ISIC를 선택하시면 됩니다.

그 다음 버튼(Select and Continue)을 누르고 ISIC번호를 입력하면 됩니다.

S는 대문자로 쓰시고 마지막 문자는 제외 하시고 입력하세요.

그후 다운로드페이지가 나오고 Get Key를 눌르면 Key도 다운을 받을 수 있습니다.

아직 한글언어팩으로 한글화가 가능할지 모르겠지만 일단 정품은 소유하게 되었습니다.

Express 버전으로 받기

마이크로소프트의 Express사이트에 가시면 여러가지 제품을 무료로 받으시면 됩니다.

쉽죠?

아무나 누구나 개발 할 수 있는 환경은 열려 있습니다.
열심히 하셔서 재밌고 멋진 작품 많이 만들었으면 좋겠습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

매번 언어를 배울때 "Hello World"의 출력문으로 본격적인 배움을 시작하게 됩니다.

그 후 if문과 for문 등을 마치면 서로 약속 한듯 구구단출력을 하게 되는게 일반적이죠.

구구단 출력은 제어문과 반복문을 알기에 좋은 과제인듯 싶습니다.


그런데 간혹 구구단만을 주장하는 학생들을 보기도 합니다.  출력형태를 바꿔봄으로 자기만의 학습을 꾀하게 되는데 여기서 무척 않좋은 습관을 가지게 된다는 것입니다.

소스가 어떠하든 어떻게든 출력해라

그들의 소스를 보자면 가독성이라곤 보이지도 않는 출력은 제대로이지만 재활용 될 수없는 그런 상태인 것을 줄 곧 보게 됩니다.

저는 이런 문제를 많이 제기하였지만 이미 출력위주에 성향이 깊은 학생에게는 좀 무미건조한 지적일 수 밖에 없겠죠.

실무에도 마찬가지이듯 오로지 출력만 장땡으로 자기만 알 수 있고(또한 알수 없고) 버그 발생이나 요구 사항 변경시 엄청난 보수를 치뤄야할 문제가 도살이는 광경을 보게 되는데(본인 얘기) 이런 일을 대비해 학생때부터 그런 출력위주의 관점을 탈피하였으면 하는 바램입니다.

아 그럼 어떻게 짜야하는데?

출력은 첫번째이지만 스스로가 잘 된 코드인지 검토하고 보수하여 발전시켜야 합니다. 먼저 책의 예제를 잘 따라하면 책의 저자는 고수일 것이기에 고수의 스타일을 익히게 됩니다. 그런 반복을 통해 코드 스타일이 더 고수다워지겠죠. 즉 많이 보고 많이 접해야 코드 품질이 향상될 것이라고 말씀드리는 것입니다.

넌 어떻게 하는데? 보여줘!

알겠습니다. C언어로 본인이 한번 구구단을 출력해보겠습니다. 그리고 쫌 복잡하게 출력을 해보겠습니다.

먼저 본인의 코드는 "왜 내가 지금 구구단을 짜야하지?"라는 생각으로 씩씩거리며 코딩하였기에 품질은 우수 하지 않습니다. 그래도 "배움의 길을 걷는 학생들에게 도움이 되겠지"라는 믿음으로 코딩한 것이기에 본인의 수고를 위로해 주시고 복사해서 과제 제출은 삼가하시길 바랍니다.(전국 대학 과제에 돌거라 예상ㅋ)

먼저 출력을 보여드리겠습니다.


X자 형식으로 출력을 해보았습니다.

코드는 다음과 같습니다.

#include<stdio.h>

//한줄의총문자입력가능한수
#define TotalLineCursor 72

//하나의표시에사용되는문자갯수
#define RoundReturnCount 16

//하나의계산의글자크기지정
#define ReturnLength 5

 

//구구단
#define FirstValueCount 9
#define SecondValueCount 9

//곱하고출력하는함수
void MultiplyAndPrint(int x, int y)
{
        printf("%dX%d=%d",x,y,x*y);
}

//입력받은수만큼줄바꿈
void AddLine(int count)
{

        for(int i=0;i<count;i++)

               printf("\n");

}

 

//입력받은수만큼빈공간삽입

void AddSpace(int count)
{

        for(int i=0;i<count;i++)

               printf(" ");

}

 

//짝수판별

bool IsOdd(int value)
{

        if(value%2==0) return true;

        else return false;
}

 

void main()
{

        //총라인수
        int iLineCount = 0;

        //총계산수
        int iReturnCount = 0;

 

        int iTemp1 = 0;
        int iTemp2 = 0;

 

        for(int i=1 ;i<=FirstValueCount;i++)
        {

               for(int j=1 ;j<=SecondValueCount;j++)
               {

                       iReturnCount++;
 

                       iTemp1 = (iLineCount%RoundReturnCount)+1;
 

                       if(iTemp1 <= RoundReturnCount/2)
                       {
                              if(!IsOdd(iReturnCount))
                              {
                                      AddSpace((iTemp1-1)*ReturnLength);
                              }
                              else
                              {                                     

AddSpace(TotalLineCursor-(iTemp1*ReturnLength)-(iTemp1-1)*ReturnLength);
                              }
                              iTemp2 = iTemp1;
                       }
                       else
                       {
                              if(!IsOdd(iReturnCount))
                              {
                                      AddSpace(iTemp2*ReturnLength);
                              }
                              else
                              {
AddSpace(TotalLineCursor-(iTemp2*ReturnLength)-(iTemp2+1)*ReturnLength);
                              }
                       }

                       MultiplyAndPrint(i,j);

                       if(IsOdd(iReturnCount))
                       {
                              AddLine(1);

                              iLineCount += 1;

                              iTemp2--;
                       }
               }
        }
        getchar();
}

참으로 복잡하죠?

여기서 말씀드리고 싶은 것은 변수의 이름과 자주 사용되는 내용을 분리하였는데 여기 예제는 좀 손볼때가 많은 코드이니 대충 이렇구나만 하고 넘어가 주시길 바랍니다.

보시면 함수에 AddLine와 AddSpace가 있고 매개변수에 따라 반복을 하게 됩니다. 이 함수만으로도 엄청난 복잡성을 줄일 수 있고 표현을 다양하게 할 수 있었다라는 것을 강조하고 싶습니다.

마무리

이런 것 까지 신경쓰기에는 좀더 느리고 신경쓰일테지만 나중에는 더 쉽고 더 빠른 결과를 표현할 수 있습니다.

아름다운 코드가 시간을 단축시킵니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

다니고 있는 학교의 개발도구 현황을 보면 대부분 비주얼스튜디오(이하 VS) 6.0을 사용하고 자바관련 수업은 최신버젼의 이클립스를 사용하는 것을 보게됩니다.

왜 VS6.0만 고집하면서 이클립스는 최신버젼을 사용할까요? 단지 무료이기 때문일까요?

단언컨대 이클립스는 자주 사용하지 않아서라고 할 수 있습니다. 학교의 커리큘럼에 1학년과 2학년의 수업은 대부분 C와 C++ 관련되어 있어서 이클립스를 만져 볼 기회도 없거니와 수업은 VS6.0 위주로 가기 때문에 마치 VS6.0은 개발도구의 단계라고 여기고 있는 것 같습니다. 즉 이클립스는 안해왔기 때문에 최신버젼이라도 어색하지 않는 반면 VS는 늘 6.0만을 다루었기 때문에 VS 6.0 이상 도구는 어색 하게 느껴지며 더 불편하단 소리로 접근 조차 하지 않으려고 합니다.

본인은 학부때 숙제를 VS 2003, VS 2005 로 개발하여 제출 해왔고 프로젝트는 혼자 다른 플랫폼을 사용하여 주목을 받곤 하였습니다.


그럼 VS2008에서 C++을 어떻게 사용하는지 간단히 보여드리겠습니다.


먼저 VS2008을 설치합니다. 닷넷 3.5기반이고 멋진기능들이 가득해서 설치가 오래 걸릴 것입니다.

그럼 이 세 분이 기다리고 있을 것입니다.(설치 중에 대화도 해보세요.)

설치가 잘 마무리 되었다면

첫 실행을 하면 자기의 주류의 언어를 선택하고 그에 맞는 스타일을 자동으로 구성을 하게 됩니다.

프로젝트의 종류를 선택합니다.

늘 숙제는 Console(콘솔)형태로 하기 때문에 아래 그림처럼 선택을 합니다.

그림과 같이 Win32 콘솔 응용 프로그램을 선택하고 프로젝트 이름을 입력 후 확인 버튼을 누릅니다.

그럼 아래와 같이 마법사가 시작이 됩니다.

다음 장면에 주의 하실점은 바로 "미리컴파일된 헤더" 체크를 해제 해야 한다는 것입니다. 이 것은 컴파일시 매번 필요없는 컴파일을 미리 해준다는 것인데 큰 프로젝트가 아니므로 체크 해제를 반드시 하시기 바랍니다. 만약 체크 하시고 하신다면 미리 컴파일을 해두는 파일에 헤더를 설정하여야 합니다.(어렵진 않습니다.)

그냥 단순히 헤더를 미리 컴파일 할꺼냐 말꺼냐라는 옵션입니다.

나중에 프로젝트 옵션에서 재설정 할 수 있습니다.

 

자 그럼 프로젝트는 만들어지게 됩니다. 처음 솔루션창을 보시기 바랍니다.

조금 잡다한 파일들이 있는데 본 소스파일만 남겨두고 나머지 파일을 과감히 삭제 하시기 바랍니다.

이제는 소스 내용을 봐 볼까요?

 

진입점(main)도 이상하고 이상한 글자들이 괴롭히십니까? 그럼 그냥 다 지우세요.

그리고 즐겁게 코딩하시면 됩니다.


using namespace std; 구문은?

각종 함수가 각각의 패키지로 들어가 있어야 하는데 만약 패키지가 없다면 모든 함수는 일관성없이 한곳에 모여 있을 것입니다.

현재 코드는 cout함수가 있는 std의 패키지를 사용하겠다라는 구문입니다.

그리고 옆에 그림을 보시면 눈에 확들어오는 인텔리센스가 펼쳐지고 원하는 함수에 마우스를 올리면 그림과 같이 입력과 출력 타입을 알 수가 있습니다.

atof의 함수는 char * 타입을 변수로 받고 double 타입으로 출력을 하며 stdlib.h 헤더에 들어가 있다는 것을 알 수가 있네요.

이래도 힘들어 보입니까?

초보인 학생들은 좋은 툴이 정말 좋은 길을 제시할 것 입니다.

간혹 위 그림처럼 나오는 인텔리센스 덕에 "학생들이 너무 의존하게 되어 버릇이 없어진다." 라고 함구하는 분들이 간혹 계십니다.

저는 그 분들에게 이렇게 답변을 하고 싶습니다.

"학생들에 있어서 코드가 전부는 아닙니다."

생각하고 만들고 박수 받을 시기에 먼 훗날 코딩을 대비해야 할까요?

생각하세요. 펼쳐보이세요. 재미있는 것을 해보세요.

과정에 있어서 중요한 건 코딩도 언어도 아닙니다. 중요한 건 만들어질 작품의 기대입니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

후배1 : 어떻게 공부해야지 프로그래밍언어를 쉽게 있을까요?

본인이 어느 후배에게나 듣는 상담내용입니다. 이 물음의 본인의 답변을 요약 하자면 다음과 같습니다.

  1. 책을 읽어라.
  2. 손으로 읽어라.
  3. 지속해라.

뻔한 답변에 뻔뻔하기까지 한 듯 하네요, 하지만 실제로 하나하나 살을 붙이며 이야기를 전달하고 각종 예를 들어가며 더욱 이해시키고 있습니다.

그럼 책을 어떻게 읽고 지속하는지를 말하기 전에 경험상 실패 사례를 말씀 드리겠습니다.

학생 김철저.

맘먹고 공부하려는 김철저학생은 열심히 공부하겠다는 독한 맘을 먹고 주먹을 불끈 쥔 학생입니다. 이 학생은 철저하고 확실하게 공부하기 위해 두껍고 어려운 책을 골랐습니다.

그 다음 그 두꺼운 책의 한 장을 넘기고 한 글자 한 글자 놓치지 않고 밑줄 그으며 공부를 했습니다. 하지만 처음부터 이해 못하는 것 투성이고 무슨 요상한 단어들로 가득하여 졸음만 올 뿐이었습니다. 그래도 독한 맘은 오래 가서 일주일이 지났습니다. 하지만 갈수록 어려운 단어에 도저히 이해가 되질 않고 이제 겨우 100페이지도 넘겼는데 전에 내용은 하나 생각이 안 나고 과연 할 수 있을까 하는 의심만 생기게 됩니다.

그리고 곧 여태껏 배운 내용은 까마득할 뿐 뭔 발전이 있겠냐며 핑계를 합리화 하고 포기를 하게 됩니다.

이와 같은 학생의 사례는 아주 많이 봐왔습니다. 그리고 도서관의 기초적인 자바나 C,C++ 책을 보면 100페이지 이내는 공부한 흔적으로 닳아 있으나 100페이지 넘어는 깨끗하다는 것을 볼 수 있습니다.

의심이 시작되면 흔들리기 마련이게 되고 포기의 시작이기도 합니다.

폭포수

저는 이 방법론을 단계별 완성을 목표로 하는 폭포수공부법이라고 하겠으며 나쁜 방법이라 말하진 않겠습니다. 이 같은 방법은 지루하지만 앞 단계가 확실히 하고 다음 단계를 학습 해야 하는 학습에 적용 할 수 있을 것입니다.

드럼을 예로 들자면 먼저 원스트록으로 1비트 2비트 3비트 4비트 8비트 9비트 16비트 24비트 32비트를 단계별로 다양한 템포에 연습을 하고 더블 스트록으로 넘어 가야 합니다. 바로 넘어갈 순 있겠지만 오히려 더 늦은 학습이 되거나 뭔가 부족한 게 여력 할 것 입니다.

그럼 프로그래밍언어는 어떻게 공부해야 할까요?

언어는 거대한 건물과 같습니다. 그 건물은 하늘에서 내려다 보거나 멀리서 보면 전체를 볼 수 있지만 볼 수 없다고 가정하고 무척 가까이에 있다고 생각을 해보십시오.

자 그럼 이 건물을 이해하려면 구석구석 살펴봐야 합니다. 위에 글에 김철저학생의 방법은 처음 보이는 벽부터 열심히 조사했다고 할 수 있습니다. 이 벽이 어디 벽이고 어떤 용도의 벽인지 열심히 살펴보고 있다는 것이죠.

쉽게 그리고 반복

우리는 벽이 있구나 하고 지나 다른 곳을 살펴봐야 합니다. 한번 손으로 만져보기도 하고 또 그 다음 벽을 보고 계속 보다 다 보았으면 다시 처음 그 벽을 조사합니다.
그때 처음 이해되지 않았던 벽은 (예를 들어)화장실을 가리는 벽이라는 것을 깨달을 것입니다.
또 반복을 합니다. 그럼 더 깊이 어느 벽하고 연결이 되어 있고 어떤 벽하고 재질을 비교 할 수 있게 됩니다. 이 후 계속 반복을 한다면 벽의 구조가 학습이 되어 어느 정도의 건물을 이해하게 됩니다.


저는 이 방법을 민첩하게 반복하고 회귀하는 애자일공부법이라고 말하겠습니다.반복 주기

본인의 방법은 애자일공부법으로 한 권의 책을 3번 읽은 적도 하나의 챕터를 몇 번씩이나 읽은 적이 많습니다. 그리고 하나의 책보다 많은 책을 보려고 노력 하였고 그 와중에 좋은 책들은 정독을 하였습니다.

저는 되도록 많이 그리고 빨리 그 와중에 자세히라고 말하고 싶습니다.

저의 프로그래밍언어 공부 법을 정리 하자면

  1. 책을 읽어라.
  2. 이해가 되지 않는 챕터는 그냥 읽고 예제를 타이핑해본다.
  3. 그리고 이해되지 못한 챕터를 다시 읽어본다.
  4. 그래도 이해가 안 된다면 그 챕터를 무시하고 다음 챕터를 읽는다.
  5. 책을 다 읽었다면 이해가 되지 못했던 챕터를 다시 읽어본다.
  6. 그래도 이해가 안 된다면 완전 무시해라.
  7. 다른 책을 찾는다.
  8. 다시 1번으로..
  9. (다른 책을 읽어보고 다시 이해가 안되어 완전 무시된 챕터를 다시 읽어본다.)

임하는 자세를 정리하자면

  1. 절대 의심하지 말고 꾸준히 읽어라.
  2. 긍정적으로 생각해라.
  3. 주의에 학습에 대한 핍박이 있더라도 절대 흔들리지 말아라.

학습에 있어서 반복은 아주 큰 도움이 될 것이며 책의 '머리말'이나 '들어가며'라는 부분을 꼭 읽어보시길 바랍니다. 그 곳에 학습하는 방법이 녹아져 있으며 완독에 있어서 중요한 부분이라고 생각을 합니다.

많은 학생들 중 어떤 학생은 책은 소용없고 그냥 프로그램 하나 짜거나 분석하는 게 좋다라는 학생도 있고 강의를 듣는 게 좋다고 하는 학생이 있습니다.

저는 딱 한 권이라도 완독하라고 강조를 합니다.
그리고 책의 첫 장에서의 자신과 끝장에서의 자신은 엄청난 차이가 분명 있다고 덧붙입니다.

꾸준히 반복해라


읽으세요, 그것만큼 빠르고 쉬운 학습은 없습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

"열정을 가져라! 그러면 성공한다." 라는 말을 줄 곧 하였고 주위에서 열심히 했단 사람들이 또한 줄 곧 하는 말입니다.
그런데 이런 말을 듣는다고 해서 열정이 생길까요? 또한 뭔가 인생에 큰 가미가 될까요?
이런 말을 주로 사용한 본인을 토대로 절대 이런 말로는 눈이 반짝이는 열정을 생기지 않습니다.
그럼 무엇이 열정의 씨앗이 될 수 있을까요? 먼저 성공했다고 여겨지는 분들을 살펴 보겠습니다.

처음으로 누구나 아는 김연아선수의 어떤 동기로 이처럼 유명한 선수가 되었는지 보겠습니다.

그녀는 당시 가족과 같이 '알라딘'이란 아이스 쇼를 관람한 , 자신도 열심히 스케이트를 타서 국가대표선수가 되겠다고 일기장에 적고, 담임선생이었던 <윤명자> 씨에게 편지로 보냈다고 한다.

편지를 받은 윤선생님은 "국가대표 선수가 되겠다고 다짐한 연아가 너무나 대견합니다.

목표대로 열심히 노력하면 반드시 성공할 있다" 라고 격려의 가정통신문을 보냈다고 한다.

<아주 특별한 사람 카페에서>

이 글을 보면 "가족과 같이 알라딘이란 아이스 쇼를 관람"이란 대목이 나옵니다. 바로 무엇을 관람했고 자극을 받았다는 것이지요.

두번째 사례는 박태환선수인데 이 선수는 천식을 치료하기 위해 수영을 시작하게 되었다고 합니다.

여기서 살펴보면 열정은 그 이전에 동기부여가 필요한 것이고 동기부여는 어떠한 사건으로 이루어 진다는 것이죠.

본인이야기를 하자면 고2때 집에 곤히 잠자는 통기타를 잡고 책을 보며 C코드를 꾸역꾸역 스트록을 해보았습니다. 그 순간 아름다운 선율이 흘러나오는 것에 스스로가 놀라웠습니다. 예술과는 상관이 없을 줄 알았던 저의 자신이 손가락의 움직임으로 아름다운 선율이 나온다는 것에 흥분을 가라앉힐 수가 없었습니다. 단 하나의 코드의 스트록으로 몇 달간 집에 붙어 기타연습만 하게 되었습니다.

프로그래밍 공부는 좀더 악랄했습니다. 몇 년간 도서관에 닥치는 대로 책을 읽고 예제를 타이핑 해보았죠. 그의 동기는 바로 전 학기에 숙제를 통해 였습니다. 저는 누군가와 차별되고 더 나은 결과를 위해 많은 노력을 하였습니다. 주위 선배나 친구들은 이런 숙제로 왜이리 고생스럽게 하냐 라며 저의 행동을 한심해 했죠. 그래도 꿋꿋이 결과를 내고 그 결과를 발표할 때 단연 주목받을만 했습니다. 교수님도 칭찬이 여력 하였고 그때 느끼게 되었습니다.

'나의 결과에 모두가 부러워하고 놀라워하는구나’ 라고 말이죠. 그 당시 자신감에 벅차 방학 내내 도서관에서 살게 되었던 것입니다. 그 이후 대회에 상도 타고 프리랜서로 일도 하게 되고 계속 동기부여가 되어 지금까지 온 것이며 아직까지 식지 않는 열정으로 임하며 노력하고 있습니다.

저는 이제 열정을 가져라 라고 하지 않습니다. 움직이고 경험하라고 말을 하죠. 많은 움직임과 경험을 통해 자신을 통찰하고 깨달을 수 있는 기회가 많아 진다는 것이 이유인 것입니다.

저는 늘 동기부여를 찾습니다. 영화를 보더라도 대화를 하더라도 어떤 식으로든 동기를 부여하여 스스로를 쉬지 않게 합니다.

늘 곧 학생들을 보면 동기 부여될만한 행동은 하지 않는 것을 보게 됩니다. 그런 학생들에게 이런 주문을 하고 싶습니다.

· 책을 통해 경험해라.

· 블로그를 통해 경험해라.

· 취미를 통해 경험해라.

· 관련행사를 통해 사람과 기술을 경험해라.

자극 받고 열정을 얻으라는 부가적인 내용 이전에 경험을 강조하고 싶습니다.

수동적인 자신의 행동을 벗어 어디든 스스로를 움직이길 바랍니다. 움직일 때 자신의 할 일이 명확해질 것입니다.

이젠 자신의 범위벗어 나보세요!

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
1 

글 보관함

get rsstistory!