컴퓨터 프로그래밍 언어 학습 방법?!

2008.06.14 22:24 컴퓨터/컴퓨터 이야기

제가 처음 컴퓨터에 입문하면서 배운 프로그래밍 언어가 Apple II+ Basic 이었습니다. 그 당시의 Basic은 지금의 언어와 비교할 수 없을 정도로 그 기능이 빈약했지만, 진정 저에게 컴퓨터 프로그래밍의 재미가 무엇인지를 알려준 고마운 언어였습니다. 물론 누가 시켜서가 아닌 제가 좋아서 학습했기 때문에 즐겁고 행복한 시간이었습니다.

이후로 Apple 6502 어셈블러를 배우면서, 그렇게 궁금했던 숫자들의 향연을 이해하게 되었고, 취업해서는 C 언어를 주로 사용했습니다. DOS 시절 Turbo-C의 인기는 당연 최고였습니다만, 제가 주로 사용한 C 컴파일러는 Microsoft C 6.0 이었습니다. 그야말로 든든했습니다. 제가 실수하지 않는 한 절대 에러가 발생하지 않았습니다.

MS C 6.0을 애지중지하다 보니 오랫동안 C 언어를 사용했습니다. 그러나 Microsoft 에서 Microsoft Windows 를 내 놓은 후에는 하는 수 없이 다른 언어를 사용할 수 밖에 없었는데, 회사에서 구매해준 CA-DB Fast. 지금 생각해도 몸서리가 처지는 엉터리망터리 컴파일러였죠. 이후에 Microsoft Visual C/C++을 알아 보았지만 학습 기간이 너무 길고, 생산성이 매우 떨어진다는 생각에 다시 Microsoft Visual Basic을 선택했다가 불안하고 느린 성능에다가, 특히 오라클 DB와 연동해야 하는데 쉽지 않고 불안해서, 다시 바꾼 것이 델파이 였고 지금껏 주력 개발 툴로 사용하고 있습니다. 정말 델파이는 저를 어둠에서 구해준 은인으로 생각될 만큼 감사하고 훌륭한 개발 툴이었습니다. 이렇게 편리하고 생산성 높은 개발 툴이 또 있을까 하는 생각이 듭니다.

김영삼 정부의 경제 파탄 시절에 직장을 잃고 힘들 었을 때, 웹 프로그래밍에 관심이 있어서 PHP를 학습했었고, 새로 얻은 직장에서는 Visual Fox Pro를 사용하고 있어서 또 몇 년을 여우와 함께 지냈습니다. 지금 생각해 보면 정말 대단한 프로그램이라고 생각합니다. 아쉽게도 제가 그렇게 싫어하는 인터프리터 언어였고, 예쁘게 디자인할 수 있는 컴포넌트가 적어서, 아무리 노력해도 투박한 모습이어서 항상 속상했지만, 약국과 같은 소규모 데이터베이스 프로그램에는 그야말로 똑 소리 나는 로컬 데이터베이스 프로그램 언어였습니다.

Fox Pro 후에는 역시 델파이를 주로 사용해 왔습니다만, 몇 년 전부터 임베디드 리눅스 보드를 사용하게 됨에 따라 다시 gcc 를 해야 했습니다. gcc도 C 언어이지만, 그래서 문법이 비슷하다고 하더라도 생소한 유닉스 환경에서 프로그램을 작성해야 하기 때문에, 또 다시 유닉스 프로그래밍에 대해 학습을 해야 했습니다.

그리고 최근에는 자바가 필요해서 틈이 날 때마다 학습하고 있습니다.

Apple II+ Basic과 6502 어셈블러, C 언어, PHP 학습은 제가 좋아서 배웠다고 한다면,  CA-DB Fast나 Visual Basic, 델파이, Visual Fox Pro, gcc, 자바 등은 직장에서 업무로 프로젝트를 진행하기 위해, 그것도 주어진 개발 기간 안에 학습해서 프로그램을 작성해야 했습니다.

저 만의 학습 방법

이런 사정으로 빨리 학습을 해야 했는데, 나름대로 저 만의 학습 방법을 가지고 있어서 그나마 견뎌내지 않았나 생각합니다. 그 방법을 정리하여 올리려 합니다만, 이것은 지극히 저 개인적인 방법이라 옳은 방법이라 할 수 없습니다. 그러나 프로그래밍 언어 학습 방법 중에 이런 방법도 있구나 하고 참고해 주시면 감사하겠습니다.

  1. 책을 사러 놀러 갑니다.

자, 갑자기 임베디드용 리눅스 프로그램을 작성하게 되었습니다. 저는 한번도 리눅스에서 프로그램을 작성한 적이 없습니다. C 는 조금 압니다. 그렇다면 리눅스에서 실행되는 프로그램을 작성해야 되는데 어떻게 해야 할까요? 저는 아직까지 책에 의존합니다.

인터넷 서점을 통해 책을 구매할 수 있겠지만 무슨 책을 사야 할지 모르면서 책에 대한 서평만으로는 모자를 때가 많습니다. 다행이 선배가 좋은 책을 권해 준다면 다행이지만 이런 도움을 받지 못한다면, 날을 잡아서 대형 서점으로 갑니다. 그리고 최소한 4시간 이상은 논다 생각하고 들어 갑니다.

유닉스 프로그래밍에 대한 책이 여러 권 있습니다. 그러면 목차를 먼저 봅니다. 도대체 뭔 소리인지 모르는 내용이 빼곡합니다. 그러나 그 중에 몇 가지 내용을 선택한 후, 그 부분을 읽어 봅니다. 처음부터 읽어 나갈 수 있지만 시간이 많이 걸리고 대부분 경우 앞 부분의 내용은 쉽습니다. 또 경험이 쌓이다 보면 앞 부분 보다는 중간이나 후반 부분에 궁금한 경우가 많습니다. 잡지나 인터넷에서 익숙하게 보았던 단어가 눈에 뛰는 경우도 있는데 이 기회에 알아 보죠. 먼저 그 부분을 읽어 봅니다.

그 부분을 읽었다면 다시 다른 책을 선택하여 같은 주제 부분을 읽어 봅니다. 그리고 또 다른 책을 선택해서 역시 같은 부분을 읽어 봅니다. 그렇게 몇 권의 책을 읽다 보면 이해하기 쉽고 나에게 맞는 그런 책이 몇 권 눈에 띄게 됩니다.

물론 이 책, 저 책을 읽어야 하므로 목이 아픕니다. 그러므로 책을 어깨 높이까지 쌓여진 곳에 올려 놓고, 얼굴을 들어 가급적 편한 자세로 차분히 읽습니다. 절대 책을 손에 들고 아래로 내려다 보면서 읽지 마세요. 금방 목이 아파 옵니다. 그래도 다리가 아프고 허리가 아프면 커피샵이나 다른 쉬는 곳에서 경직된 목과 다리를 풀어 줍니다. 뭐, 책을 사러 왔지만 놀러 왔으니까요. 한 권의 책만 제대로 구한다면 오늘의 미션은 성공입니다.

여유 있게 쉬다가 다시 가서 몇 권으로 줄어든 책 중에 다른 부분을 읽습니다. 읽는 중에도 왠지 인쇄 상태가 나에게 맞는 것이 있습니다. 예제나 설명도 중요하지만 읽기도 편하고 왠지 친근하고 읽기 편한 그런 책이 있습니다. 점수를 후하게 줍니다.

이렇게 해서 최소 한 권이나 두 권의 책을 구매합니다.

  1. 처음부터 끝까지 3번 읽습니다.

대부분 학습하시는 것을 보면 컴퓨터 앞에서 책을 읽습니다. 그리고 예제가 나오면 책을 무릎 위에 접어 놓고 열심히 두들깁니다. 그러다 막히면 다시 책을 보고, 또 무릎 위에 놓고 키보드 치고 모니터 보고, 다시 책, 키보드, 모니터.

그렇게 이해하면 다시 다음 내용을 읽습니다. 그러나가 눈에 띄는 예제를 보면 역시 무릎에 책을 놓고 바로 컴퓨터로 예제를 따라 하는데, 저는 이 방법이 가장 최악이라고 말씀드리고 싶습니다.

물론 이 방법을 선호하시는 분도 계시겠습니다만 시간이 너무 걸립니다. 그리고 며칠 안 하다가 다시 보면 뭘 했었는지 기억도 안 납니다.

자, 제가하는 방법을 말씀드리면 컴퓨터를 끕니다. 그리고 처음부터 끝까지 읽습니다. 가급적 이해하려고 노력하면서 정독합니다. 그러다 도대체 뭔 소리인지 모르겠다 싶은 것은 다시 앞으로 돌아가서 다시 읽기를 시작하지만 절대 여기서 시간을 많이 소비하면 안 됩니다. 몇 번을 읽었는데도 모르겠다 하면, 그 부분을 표시하고 다음 부분을 읽습니다.

다시 말씀드립니다만, 모르는 부분에서 너무 힘을 빼면 안 됩니다. 아~, 책을 한 번 읽어서 모두 알아 버리면 저 같은 사람은 무엇으로 밥 벌어 먹고 살겠습니까? 모르는 것이 당연합니다. 그래도 가급적 이해하려 노력하면서 정독합니다. 또 매우 주의하실 것은 하루는 건너 띄셔도 이틀을 건너 띄시면 안됩니다. 이틀 이상 건너 띄시면 지금까지의 고생은 헛고생입니다.

힘든 일입니다. 정말 인내와 끈기가 필요합니다. 며칠이 걸릴 수 있습니다. 그러나 마지막 장을 읽었을 때, 최소한 유닉스 프로그래밍에 대한 책을 한 권을 정독하지 않습니까. 축하 드립니다. 정말 고생 많으셨습니다. 오늘은 더 읽지 마십시오. 뭐 다 읽었는데 읽을 것도 없지요. 시원하게 맥주 한 잔. 자축하십시오. 저도 끝까지 읽은 책이 몇 안되기 때문에 정말 뿌뜻합니다.

다음 날입니다. 그러면 이제 컴퓨터를 켤까요? 절대 아니죠. 다시 처음부터 읽으십시오. 이 지겨운 짓을 또 하라구요? 네. 다시 정독으로 읽어 가십시오. 역시 힘이 듭니다.

그러나 처음과 달리 익숙한 부분도 있고, 이전에 이해했던 내용이 굵게 볼일 때도 있습니다. 이제 중요한 부분을 맞나면 꼭 표시를 해 둡니다. 줄을 그어도 좋구요, 책꽂이를 꽂아도 좋겠습니다. 그런데 또 이해가 안 되는 부분에서 걸리네요. 역시 여러 번 반복해서 읽어서 이해하려 노력합니다만 절대 시간을 많이 뺐겨서는 안 됩니다. 역시 넘어 갑니다. 어차피 저의 밥일 뿐입니다.

두 번까지 읽었습니다. 정말 고생 많으셨어요. 그러나 이 글의 작은 제목처럼 다시 읽으십시오. 힘들기는 마찬가지이지만 속도는 이전보다 더 빠릅니다. 역시 이해 못하는 부분도 있구요.

그러나 이제는 정확히는 모르지만 전체적으로 유닉스 프로그래밍에는 어떤 방법이 있다는 것을 알게 되었습니다. 기본 C 언어의 문법과 함께 함수도 어떤 함수가 있는지 알게 되었구요, 파일처리, 쓰레드,  세마포어, 공유메모리 등등 전반적인 내용에 대해 알게 되었습니다.

자세히도 모르고 프로그램을 짜 본적도 없습니다. 그러나 누구와 유닉스 프로그래밍에 대해 얘기를 나누게 된다면 이해를 하거나 오히려 설명할 수 있습니다. 즉, 선무당이 된거죠.

  1. 예제를 설정하고 프로그램을 완성합니다.

이제 알고 있는 지식으로 프로그램을 작성해 봅니다. 도대체 뭘 만들어야 할지 모르겠다면 책에서 눈 여겨 보았던, 아니면 기억나는 예제를 떠 올리고, 책을 덮어 놓고 작성합니다.
저 같은 경우는 몇 줄 적었지만 도대체 다음이 진척이 안 됩니다. 그럴 때 책을 읽어 다음 진행에 대한 힌트를 얻습니다. 가장 좋은 방법은 예제 부분이 아닌 설명 부분을 읽어 보고 막혔던 부분을 해결하는 것입니다. 설명 부분으로 안 된다면 예제 부분을 전체적으로 다시 봅니다. 그리고 인쇄되어 있는 예제를, 자신이 컴퓨터다라고 생각하면서 머리 속으로 한 행, 한 행을 실행해 봅니다.

자, 힌트를 구했으면 다시 책을 덮어서 멀리 놔두고 다시 도전합니다. 또 막혔다고 촐랑거리면서 또 책을 피면 안됩니다. 해 보려고 노력해 보십시오. 기억에 떠 올리려 노력해 보세요.

그래도 너무 시간을 뺐기면 안 되겠죠. 다시 책을 보더라도 이해가 안 되는 부분만 촐랑거리며 보지 마시고 전체적으로 다시 확인해 봅니다.

이제 코드가 완성이 되었다면 컴파일해 봅니다. 에러가 납니다. 윽~ 그러면 또 책을? 절대 안 됩니다. 초보자가 범하는 두 번째 실수가 바로 에러가 났을 때의 대처 방법입니다. 컴파일러는 무책임하게 컴파일 작업을 중지하지 않습니다. 뭔가 메시지를 남깁니다.

그 메시지 내용을 꼭, 반드시 확인하십시오. 물론 무슨 말인지 모르는 경우가 있지만 찬찬히 읽어 보면 “아!!” 소리가 나는 경우가 있습니다. 수정하시고 다시 컴파일을 합니다. 또 에러가 나도 아까와는 다는 문제라면, 조금 전의 에러는 잡으신 것입니다. 이렇게 반복하여 에러를 직접 하나 하나 잡아 갑니다.

정말 모를 경우에는 책이나, 아니면 친절한 포럼의 도움을 받습니다. 아니면 선배를 고롭혀야 겠지만 역시 에러가 발생한 행을 보고 어디가 잘못되었는지 직접 문제점을 잡으려고 노력하십시오. 정말 이 과정에서 실력이 배가됩니다. 정말입니다. ^^

  1. 그래픽이나 만질 수 있는 것을 작성합니다.

어느 정도 예제 프로그램을 작성하셨다면 더 많은 경험을 하셔야 하는데, 가급적이면 그래픽을 하십시오. 문자만 출력하는 단순한 예제만 하시면 쉽게 무료해집니다. 그래픽으로 변화 무쌍한 모습을 보면서, 다른 사람에게 자랑도하면서 말이죠.

프로그래밍의 즐거움 중 하나는 남들에게 자랑하는 재미입니다. 어느 정도 남들에게 보여줄 만 하다면 자랑하십시오. 뻐기십시오. 그리고 더욱 다듬어서 더욱 멋지게 만드십시오. 부러워하는 친구의 얼굴에서 보람을 찾을 수 있습니다.

가능하다면 만질 수 있으면 더욱 좋습니다만 금전적으로나 하드웨어도 공부해야 하기 때문에 어려운 점이 있습니다. 그러나 재미와 흥미가 오래 가기 때문에 매우 좋습니다. 비록 제거하는 화면은 버튼만 다닥다닥 붙여 놓았지만 각 버튼을 누를 때 마다 그 신호를 받아 LED가 켜지고 바퀴가 움직이면 프로그램을 완성한 즐거움이 배가됩니다. 그러나 역시 돈이…^^

  1. 더 큰 프로그램을 실력 다지기

이제 욕심을 내서 좀더 규모가 있는 프로그램을 작성해 봅니다.

.TCP/IP 소켓 프로그래밍으로 파일을 다른 PC로 전송하거나
.시리얼 통신으로 받은 것을 TCP/IP로 다른 PC로 전송합니다.
.TCP/IP나 시리얼 통신으로 이미지 파일을 전송하면, 받는 쪽은 수신 받은 이미지를 화면에 출력합니다.
.시리얼 통신을 중간에서 데이터를 가로채서 주고 받는 프로그램을 작성해 봅니다.

이렇게 주제가 있는 예제를 만들다 보면, 그 부분부분이 모두 실무 프로젝트에 적용되는 부분부분이 됩니다.

그러나 역시 혼자 공부하다 보면 한계가 있습니다. 운전을 배웠더라도 운동장에서 아무리 열심히 연습해서 스피드레이서가 되었더라도 밖에 나가면 상황이 전혀 틀리죠. 스타크래프트를 혼자서 컴퓨터 4 마리와 맞장떠서 맨날 이겨도 배틀넷에서 깨지는 이유를 잘 아실 것입니다.

가장 좋은 것은 취직을 해서 프로젝트를 맡아서 고생고생하면서 만드는 것이 최고입니다.

아무래도 발등에 불이 떨어지면 심적으로도 부담이 되고, 파고 들지 않을 수 없어 실력이 늘지 않을 수 없습니다. 취업 전이면 이마저도 쉽지 않죠.

그렇다면 프리웨어를 만들어서 배포해 보시는 것은 어떨까요?

요즘 블로그나 카페 만드는 것은 너무 쉽습니다. 프리웨어에 도전하시고 반드시 배포하십시오. 우선 사용하시는 프로그램 중에 만만한 것을 골라서 그동안 아쉬웠던 부분을 추가하여 만들어 봅니다. 그리고 완성도를 높이기 위해 학습하시고 방법을 찾아서 계속 업그레이드하여 올려 보세요.

그러나 프리웨어로 올릴 수 없는 임베디드보드 같은 경우는 어떻게 해야 할까요?

포럼에 강좌를 올리는 것도 좋은 방법이라고 생각합니다.

어떤 프로젝트를 만들어 가는 과정을 올리는 거죠. 이런 강좌를 올린 경우가 별로 없습니다. 초보자 입장에서 학습하는 과정을 담아서 점차 발전해 가는 강좌. 아마 많은 분들로 부터 호응을 받을 수 있고 인기 짱이 되실 수 있고, 아울러 많은 분들로부터 도움을 주고 받을 수 있을 것입니다.

여러 방법이 있지만 어느 경우에도 혼자서는 힘이 듭니다. 귀동량과 눈동량을 열심히 해야겠습니다. 이런 이유로 활발히 운영되는 포럼은 매우 큰 힘이 됩니다. 임베디드 리눅스 쪽이시면 제가 운영하고 있는 FALINUX 포럼을 권합니다만, 이외에도 매우 많은 포럼이 활발히 운영되고 있습니다. 마음에 드는 곳은 회원으로 가입하셔서 활발히 활동해 보십시오.

  1. 포럼에 답변이나 강좌 글을 올리십시오.

강좌와 같이 남에게 보여줄 글을 만들다 보면 알고 있는 지식은 다지게 되고, 모르거나 건성으로 알았던 내용도 정확히 알게되는 기회가 됩니다. 해 보시면 아시겠습니다만 머릿 속에만 있던 내용을 글로 적다 보면 많은 내용을 정리하게 되고, 학습하게 되고, 따지게 됩니다. 물론 개인 시간이 소모가 되겠습니다만 효과는 기대 이상입니다.

강좌가 부담이 되신다면 답변을 공략하세요. 포럼에 올려진 질문 중에 답을 아는 내용이면 답변을 다시는데, 그냥 말 대답하듯 하지 마시고, 아시는 내용을 직접 프로그램으로 작성해서 확인합니다. 그리고 그 내용을 자세히 작성하여 올립니다.

만일 모르는 내용이라면 웹으로 검색해 봅니다. 그 분 입장에서 방법을 찾아 봅니다. 그리고 역시 직접 프로그램을 짜서 확인하고 올립니다. 강좌와 마찬가지로 답변 올리는 것도 지식과 경험 쌓기 외에도 자신감이 생깁니다.

저의 말씀은 여기까지 입니다. 어떻게 도움이 되는 글인지 모르겠습니다만 참고하셔서 자신만의 학습 방법을 만드시면 좋겠죠. ^^

이 댓글을 비밀 댓글로
  1. 이전 댓글 더보기
    • 킹킹카
    • 2008.06.15 17:25
    많은 컴퓨터 언어 초보자들이 컴퓨터 언어를 배우는 방법이 책을 읽으며 책에 나온 예제을 직접해보는 것이죠. 이때 예제가 나오자 마자 바로 컴퓨터로 작성하는 것이 가장 비효율적방법 이었던것 같습니다. 항상 예제가 포함된 단원을 통독한 후, 예제는 머리속으로 완전히 분석한 후에, 책을 덮고 예제를 컴퓨터로 암기만으로 복기했을때 완전한 이해가 됐던것 같군요.
    • 네, 옳으신 말씀입니다. 컴퓨터로 확인하기 전에 먼저 머리 속으로
      실행해 본 후에 실제 확인하는 것이 도움이 큽니다.
    • 킹킹카
    • 2008.06.15 17:27
    그나저나 요즘 컴퓨터책들은 왜 그리도 두꺼운지... 1000페이지가 넘는 양때문에 기가 질립니다.
    • 맞아요. 왜 이렇게 두꺼워 졌는지 말이죠.
      예전에 2cm 약간 넘던 책들 중에 좋은 책들이 많았습니다. ^^
  2. 혹시 '내가 만들었어요'라는 코너 기억나시나요??
    어느 컴퓨터 잡지책의 부록의 코너였는데 일반 사람들이 만든 프로그램 코드를 올렸던 코너였습니다
    뭐 지면에 실릴정도의 짧은 프로그램들이었지만 나중엔 우수작을 모아서 책으로도 냈었죠
    지금도 그책이 집에 있는데...어릴적 그 코드들을 다 따라쳐보던 생각이 나네요^^
    • 신태류
    • 2008.06.15 19:14
    좋은 글입니다!!! 컴퓨터 프로그래머를 목표로 하고 있는 고등학생이라 많은 도움이 되었습니다!
    저는 잘 알려져있지도 않고 대중적이지도 않은 플래시 액션스크립트를 나름 잘 다루는데,
    이 글을 보니 좋은 점과 나쁜 점을 동시에 갖고 있었네요 :)
    이 글, 기억해 놓았다가 앞으로 커서 C 언어라든지 길석님이 애용하시는 델파이를 배울 때
    120%로 써먹어야겠어요 :) 좋은 글, 좋은 지침 감사합니다 :)
    [지금은 저희 누님께 C 언어 배우고 있답니다.
    액션스크립트나 PHP와 문법이 비슷해서 재밌게 배우고 있어요.]
    • 카로핀
    • 2008.06.16 00:46
    음.... 좋네요.. ^^ 예전 기억도 나고.. ^^ 3, 4, 5, 6번은 완전 공감 되네요..물론 전 약간 다르게 학습을 했기에 이렇게 글을 남겨 봅니다. 저도 그리 잘 하는건 아니지만, MS C부터 시작해서 C++이나 JAVA, 임베디드 C, 닷넷 등 부터 시작해서 왠만한 언어는 다 해봤지만... 최고의 학습 방법은 흥미유발이 아닐까 생각 됩니다. 전 프로그래밍 하는게 무진장 재미 있었어 정말 미친듯이 했거든요...자나 깨나 프로그래밍 생각만이 머리에 가득하다보니 자연스레 하게된 케이스 입니다. 책도 그다지 참조한 것은 없구요... 유명 포럼이나 개발자 사이트 들을 전전 하면서 배우고, 직접 해보고, 안되면 원인도 분석해보고...(이놈이 제일 머리 아파요..ㅠㅠ 원인 분석만 몇일씩 끙끙되기도.. ^^ 물론 하고 나면 행복합니다.. ) 여튼 그러다 보니 실력이 늘어 버렸어요.
    아 서론이.. 너무 길었고요...JW브라우저도 무진장 유용하게 쓰고 있구요~ JW노트도 무진장 유용하게 사용하고 있습니다. 너무 좋다고 꼭 말씀드리고 싶었어요
    • 아! 맞습니다. 재미를 느끼고 스스로 하시는 분은 누구도 못 이깁니다. ^^
      그러나 직장을 다니다 보면...^^;
    • 이현근
    • 2008.06.16 09:18
    안녕하세요!! JAVA개발 2년차 초보입니다. 글을 읽으면서 공감대가 많이 형성된것 같아 도움이 많이 되네요..
    Thinkinh in java를 다시 들쳐 봐야 겟습니다.^^*
  3. 삼색 볼팬을 활용하는 것도 좋은 방법이 됩니다.

    http://www.jee1.name/blog/242

    저는 이 방법을 사용해 공부 합니다.
    • 아니크리
    • 2008.06.16 10:40
    멋진 글이시네요.. 프로그래밍에 국한된 공부방법이라고 할 수 없네요 ^^
    전 포토샾이랑 일러스트도 같은 방법으로 공부했었던 기억이 나는군요. (지금은 전혀 다른 일을 하고 있지만... )새로운 것을 몸에 익히고, 점점 실력이 늘어가는 자신을 보게 되는 건 정말 즐거운 일이죠!
    항상 양질의 포스팅 잘 읽고 있습니다.
    • 장지은
    • 2008.06.16 10:55
    와.. 좋은 학습법이라 생각합니다.
    저는 학습은 잘 하지 못하지만 학습법에 관심은 많습니다. 위 글을 보니 저도 경험해보고, 동의하는 학습법입니다. 게다가 제 방법보다 더 효율적인것 같습니다. 특히

    “하루는 건너 띄셔도 이틀을 건너 띄시면 안됩니다. 이틀 이상 건너 띄시면 지금까지의 고생은 헛고생입니다.”

    라는 말이 강하게 와닫습니다. 교육학에 망각 이론이(에빙하우스[Hermann Ebbinghaus]의 망각곡선) 있는데 망각은 일정한 비율로 감소하는 것이 아니라 초기에 대부분 망각된다고 하더군요. 하루가 지나면 60%가까이 잊어버린다고 합니다. 그러니 하루 이하로 건너뛰는 것이 교육학 이론으로 볼때 적절하군요.
    저는 이 이론을 예전에 들었었지만 실천하지는 않았었는데, 이것을 실천하며 학습하셔서 실적을 올리신 모습이 대단하게 생각됩니다. 또 이런 글로 경험을 나눠주셔서 참으로 감사합니다. ^^
    • 어떤 일이든 이틀을 넘어가면 이어지는 느낌이 끊어져 버리는 것 같이
      느껴져서 계속 진행하기가 불안해 지더군요. ^^
    • 네온
    • 2008.06.16 12:56
    음.. 저는 회사에서 VB 5.0 을 사용하는 관계로 -_-;
    아쉽지만 개발중에 몇번씩이나 프로그램오류로 저장도 안된상태에서 꺼지는.. 답답한...
    그냥 그러려니 하고 있습니다.
    • arain
    • 2008.06.16 22:26
    RSS에 등록해서 블로그 너무 너무 잘 보고 있습니다..
    좋은 말씀 감사합니다. 새로운 랭귀지 공부 할때 한번 써먹어봐야 겠네요..ㅎㅎ
    그런데 혹시 프레임워크(ex. Spring)나 팩키지나 툴 같은거..(ex. AmberPoint) 공부할때는 좀 힘들지 않을까 생각을 합니다. 하나 하나 확실히 익히지 않은 상태에서 뒤로 넘어가기가 쉽지가 않고 그냥 처음부터 끝까지 읽으면 남는거 하나도 없을것 같은데요..이런 부분은 어찌 해결을 하고 계신지 조언 좀 부탁드려요..에궁..뭐 물론 왕도는 없겠지만 좋은 요령이라도 있으면 좀 갈켜 주세요~~~~
  4. 역시 장길석님은 고수 시군요. 또한 이바닥에서 살아 남으려면 하나의 개발툴만 가지고는 좀 여렵죠.
    전 지금 C++만 사용하지만, 프로그래밍을 독학으로 입문한 터라, 처음에 어떤 언어를 접해야할지 몰라, 남들이 많이 쓰는(그땐 남들이 많이 쓴다고 혼자 판단했지만.) C 언어를 접했습니다. 무조건 서점으로 달려가서 지금 기억으로 '안녕하세요 C' 를 한권 샀더것 같군요. 이 후 많은 좌절을 했죠. 혼자서 C를 공부한다는게 뭐 쉬운 일도 아니고... 그래도 시련은 있어도 좌절은 없다는 누구의 말대로 포지하지 않고 무조건 했더니 뭔가 되더군요. ^^ 지금이야 추억이지만, 지금 아내와 연애하던 시절에 술만 먹으면 '내가 내일부터 컴퓨터 앞에 않아서 프로그램 공부하면 강아지다'라고 말했던 기억도 있네요. 물론 아침에 일어나 술깨면 또 컴퓨터 앞에 않아 있는 나 자신을 볼때마다, 역시 나는 강아지구나 하고 생각했었지만요.
    첫직장은 자바를 사용해서 어플리케이션을 개발했었죠. 감히 우리나라 자바 1.5 세대라고 자부했었죠.
    그러다 지금은 C++로 작업을 하고 있습니다. 그 중간 중간 vb, asp, php 등도 다루긴 했지만, 큰 프로젝트를 한 적은 없죠.
    지금은 공부를 하고싶은 생각도 있는데, 현실에 안주하는 것인지, 책은 봐지지도 않고 핑계를 대면 볼 시간도 없네요. 아직 초보 시절에 보던 책들이 집의 한 벽면을 채우고 있는데, 그때마다 내가 저걸 다 봤단 말인가 하는 생각도 들고...
    애고 적다 보니 넉두리가 되 버렸네요. 암튼 저처럼 프로그래밍을 전공하지도 않고 그냥 재미 있어서 시작하시는 분들 어려움이 많아도 포기하지 마시길 바랍니다.
    프리웨어 개발은 공부삼아 하는것도 좋지만, 한 직장에서 안주하면서 발전이 없는 것을 타파하기위한 수단이 되기도 합니다. 암튼 뭐든 하는게 다 도움이 됩니다.
    백문이 불여 일견, 백견이 불여 일타
  5. jwmx는 알게 된지 얼마 안됬습니다 IT쪽 전반적인 지식이 필요한 직업을 목표로 공부중이라서

    들어와서 항상 좋은 내용들 잘 읽고 갑니다. 언어를 독학하는 저에게 좋은 학습법입니다.

    적용해봐야겠군요
  6. 음.. 정보 잘 얻고 갑니다.. ^^

    현재 컴퓨터와 씨름하는 공학도인데 1학년 때 학교에서 C라는 언어를 처음 접하게 되고 C++ 그리고 2학년 때는 자바.. 웹 언어로 PHP(이미 어릴적 배웠지만 다른 과정에서..^^) 지금 3학년 2학기는 네비게이션(보행용-일부 주제로 잡은 지역에 한해)프로젝트를 준비중인데 해당 프로젝트에 수월한 언어를 찾다가 알지도 못하는 C#을 선택하고선 공부를 하면서 프로젝트 준비를 하고 있습니다. 참 알아갈수록 재밌는게 언어이기도 하고 어떻게 보면 접하기가 쉽지 않은게 언어인 것 같습니다. 역시 언어라는 범주인건지 일반적인 영어, 스페인어같은 외국 언어를 접할 때도 위와 같은 느낌을 받고는 하죠.

    그나마 어릴 적부터 컴퓨터 다루고 놀기를 좋아했던지라 지금에 와서 큰 거부감없이 배우고는 있는데.. 아직 배울것도 많고 어려운것도 많아서 언어에 대한 자체 내용 외에 JWMX님께서 써주신 이런 종류의 포스팅(학습법이라던지)을 참 유용하게 생각하고 깊이 새기려고 하고 있습니다. 나중에도 종종 도움이 될 만한 포스팅들을 보러 놀러오겠습니다..^^
    • 金剛
    • 2008.12.11 07:39
    ㅎㅎㅎ 전 가장 최악의 방법으로 프로그램들을 학습해왔네요...ㅠ_ㅠ 엄청나게 두꺼워 무릅위에 놓으면 무릅이 쑤실정도였지만 밤 세워서 책의 예제를 따라해보곤했습니다. 너무 무식해서 그런가? ㅠ_ㅠ
  7. 글 잘 봤습니다.
    저는 수학을 공부하는 학생인데 조언을 구하고 싶어 댓글을 답니다.
    저는 지금 프로그래밍을 공부하려고 하는데 어떤 언어를 시작해야 하는지 모르겠습니다.
    혹시 초보자에게 추천해주고 싶은 언어가 있는지요?
    그리고 그 차이점을 간략히 나마 알려주시겠습니까?
    프로그래밍 공부를 시작하면 종종 들리겠습니다.
  8. 알고는 있지만.. 실천하기가 어려운.. ^^;
    좋은 글 읽고 갑니다. ^^
    • 정말 잘 보고갑니다!
    • 2011.07.12 18:17
    비록 다른쪽 공부를 하고 있지만 와 글쓴이님의 학습방법을 진작 알지 못한게 좀 한이 되네요ㅎㅎ
  9. 정말 감사합니다. 참고 해서 공부했더니 효과가 너무 좋습니다.

    감사합니다.
    • 글 잘 읽었습니다.
    • 2011.11.01 01:58
    학습방법에는 정답이 없다고 생각합니다. 사람마다 다 다르기 때문이고요.
    저역시 반복학습 정독 5번 읽는 것을 했었는데, 무식한 방법이었지요.
    사전 같은 두꺼운 책은 정독하는 것은 어렵습니다. 사람마다 여건이 다 다르며, 학습자가 정말 대단한 의지와 끈기가 있다면 모를까, 학습에 대한 흠미와 재미를 보기 어렵지요.
    그러므로 학습으로 하는 목표에 가장 효율적이며 성과도 기대할 수 있는 방법을 스스로 찾는 것이 좋다고 봅니다. 사람마다 다 다르기 때문이죠, 이런 고민부터 시작해야 할 것 같습니다. 프로그램 코드 예제를 굳이 안보고 친다거나 하는 방법은 제게 안 맞는것 같네요.
    그렇게 머리가 좋지도 않지만, 며칠 후면 까먹을 것을 굳이 암기하고 싶지가 않고요. 어차피 프로그래밍 코드는 많이 쳐보면 다 암기할 수가 있습니다. 머리가 아무리 나빠도 그래서 수십번을 까먹고 다시 기억하고를 반복해도 결국은 많이 쳐보면 다 암기하게 됩니다.
    많이 안쳐본 코드가 암기하기 어려운 것이며... 암기가 중요한 것이 아니므로, 굳이 암기하는데 힘을 쏟기보다는 해당 프로그래밍 코드의 특성을 이해하거나 하는데 관심이 더 쏠리더군요, 이건 왜 안될까? 이건 버그인가? 듀토리얼의 내용 이외에 다른 사람들은 이것을 어떻게 생각하고 있을까?(어떻게 활용할까, 문제점은?) 등등 이렇게 찾아보면, 두리뭉실하게 이해하거나 책에서도 다루지 않았던 점을 추가적으로 이해할 수가 있더군요. 이해가 안되는 것은 100번을 봐도 이해가 안되기 때문에 굳이 암기하려하기 보다는 제대로 이해하는 것이 중요하다고 생각합니다. 물론 프로그래밍을 하다보면 복잡한 수학식도 나오는데, 모든 프로그래머가 수학을 공부하는 것이 아닌 만큼 본인이 이해할 수 있는 수준까지는 이해하는 것이 배움의 자세라고 생각해봅니다.

    물론, 학습자는 다 다릅니다. 빠른 시간에 전반적인 학습을 마치길 원하는 사람도 있겠지요. 글쓴 님께서 서점에서 책을 오랫동안 고르시고 쏟으시는 정성 정도시라면 빠른 공부법보다는 느린 공부법이 더 맞지 않을까 싶네요.