' 프로그래밍을 어떻게 하면 빨리 배울 수 있습니까?'
내가 가장 많이 받는 질문이다.
'꾸준히 반복하시면 됩니다.'라고 답변하곤 하는데...
아마도 '그걸 누가 모르나... 좀더 시원하고 현실적인 답변 좀 해주지'이라고 생각할 것같다.
하지만, 내가 아는 주위의 잘하는 사람들에게 물어도 같은 답을 얻는다.
나역시 처음 배울때 그런 답변을 듣곤 했지만, 지금 생각해봐도 역시 정답이다.
나도 매번 이렇게 답변해놓고 내심 불편해서 고민을 많이 해왔는데...
여기에 그 고민의 결과를 정리하고자 한다.
1. 디자인 패턴 책은 나중에 보자.
- 자바기본공부하고 디자인 패턴을 바로 공부하는 경우가 적지 않은데
일단 기본공부를 마쳤으면 공부한 내용을 활용해서 프로그램을 만드는 것이 좋다.
JSP나 Swing을 공부해서 여러가지 응용프로그램을 만드는 것을 하자.
그러면 프로그래밍이 이런것이구나... 하는 감이 잡힐 것이다.
그 때 한번 펼쳐보고 이해할만 하면 공부하자.
2. 객체지향개념의 바다에서 허우적거리지 않는다.
- 객체지향개념이 부족하다는 생각에 객체지향이론 책을 본다던가 하는 것은
샛길로 빠지는 것과 같다.
그것은 객체지향프로그래밍을 배우는게 아니라 객체지향이론을 배우는 것이다.
객체지향 설계능력은 프로그래밍을 많이 해서 경험으로 생기는 것이지
객체지향이론을 많이 안다고 생기는 것이 아니다.
여러분들에게 정말로 필요한 것은, 객체지향적으로 잘짜여진 자바소스들을 많이
보는 것이다.
Java API를 좀더 깊숙히 보다 보면, 객체지향적으로 얼마나 잘 설계되어 있는지
알게 될 것이다.
객체지향개념에 대한 설명은 플래시로 배우는 Java에 나오는 내용정도면 절대로
부족하지 않다.
3. 지나치면 미치지 않는 것 보다 못하다.
- 원리를 공부하는 것도 좋지만 지나치게 원리를 추구하는 것은 학습에 장애가 된다.
원리를 파고들어가자면 한도 끝도 없다.
C가 기본이니 항상 C부터 배워야한다는 얘기가 비슷한 얘기인데,
그런 식이면, 어셈블리 부터 배워야하고, CPU와 같은 하드웨어부터 시작해야한다.
현재 진도에 알맞은 만큼만 이해하면 된다.
개인적인 호기심은 충족이 될수 있겠지만, 학습에는 오히려 방해가 된다.
Hello, World를 출력해보고, 자바의 프로그램을 작성하고 컴파일 하는 단계에서
public이 뭐고, void가 뭐고, static이 뭐고를 다 알고 넘어가야한다면
매일 자바책 앞부분에 머무르고 말것이다.
그래서 우선 모든것을 다 이해하려고 하지말고 기본부분을 전체적으로 한번
읽어보는 것이 좋다. 그 다음에 세부적으로 다시 본다.
4. 자신의 수준에 맞는 예제를 찾아서 단계적으로 공부하라.
- 기본문법을 마쳤다면, 자신의 수준에 맞는 예제를 찾아서 공부하도록 한다.
실력을 한단계한단계씩 끌어올리는 것이 가장 빠른 방법이다.
어려운 프로그램을 하나 작성했다고 해서 실력이 하루아침에 향상되는 것은 아니다.
이런 메꾸기식 공부는 모래성을 쌓는 것과 같다.
메신저, 테트리스, 사다리... 이런건 쉬운게 아니다.
5. 기본내용은 매일 반복한다.
- 새로운 기술 배우느라 시간이 없더라도 매일 최소한 10분이상은 시간을 내서
기본내용을 복습하도록 하자.
기본기가 탄탄해지고 이해의 깊이가 달라진다.
모든 운동선수들이 매일 기본자세 연습을 하는 것과 같이...
6. 처음에는 툴을 간단한 것으로 하자.
- 처음 배우는 사람들에게 이클립스나 JBuilder와 같은 툴은 부담스럽다.
우선은 Edit plus와 같은 편집기를 이용하는 것이 좋다.
프로그래밍에 집중할 수 있도록 노력하자.
프로그래밍 실력을 향상시키는 것이 가장 우선시 되어야할 목표이다.
툴은 그 다음에... 여유가 생겼을 때 배우도록 한다.
툴은 한번 배우기 시작하면 금새 배운다.
7. 책을 항상 가까이
- 새로운 것을 배울때는 설레이기도 하지만, 부담스럽다.
책을 가까이 하면서 편하게 책장을 넘겨서 눈에 익숙하도록 하자.
책에 대한 부담이 점점 줄어들고 익숙해질 것이다.
고교시절에 공부잘하는 친한 선배가 책을 새로 사면 제일 먼저 하는 일이
책을 헌 것(?)으로 만드는 일이었다.
책을 찢거나 접는게 아니라 책을 이리넘기고 저리넘기고 파라락(?) 넘기고
하면서 책에 손때를 많이 묻히는 것이었다.
그 때는 그 행동을 이해하지 못했는데...
지금은 역시 공부잘하는 사람은 다르구나하는 생각이 든다.
8. 프로그래밍은 자신의 생각을 정리하고, 남에게 전달하는 것.
- 전에도 얘기했지만, 프로그래밍에서 설계와 코딩의 비율은 8:2라고 했다.
프로그래밍은 여러분들의 논리적 사고능력, 표현능력을 향상시켜주는
좋은 도구이다.
그냥 손가는데로 코딩하는 습관이 들면 고치기 정말 어렵다.
프로그래밍은 건축에 많이 비유되곤 하는데 그만큼 유사한 점이 많다.
설계도가 부실한 건축물이 어떻겠는가.
주먹구구로 일하는 사람이 큰 건축물을 만들어낼 수 있는지 생각해보자.
생각을 정리하고 문제들을 논리적으로 하나씩 풀어가는 능력이
바로 프로그래밍 능력이다.
2005. 10. 16
플래시로 배우는 Java의 저자
남궁성
첫댓글 남궁성님 글 퍼가도 되겠죠? 혼자 보기엔 아까운 글이라 제 주위사람에게도 보여주고 싶네요^^
실감이오는글이에요..솔직히 다들 많이하라고는 하는데 막연했었는데 앞이 보입니다...
정말 가슴에 와닿는 말인것 같습니다. 많이 도움이 됐습니다.
멋지십니다... 두고두고 보면서 마음에 새기려고 하는데 ..퍼가도 될까요...??
헛헛;; 좋말 좋은 글!! 감사합니닷~
좋은글 감사합니다.. 퍼가도 될까요? 많은 사람들하고 공유 하고 싶네요 ^^;
저도 이렇게 공부하렵니다. 좋은글 감사드립니다.
글 퍼가겠습니다. 항상 보면서 노력하겠습니다^^
퍼가용~~
퍼가용~~
담아가요 ^^*
저도 퍼갑니다.... ㅋㅋ 프로그래머의 길로 한번 접어들까 합니다.
그럼 전 거꿀로 가고 있는건가요 강의에서 디자인 패턴에 대해 배우눈데 ㅠ.ㅠ 전 어쩌면 좋아요??
멋진 말씀 감사합니다.
좋은 말 감사합니다~ 힘들때 한 번씩 와서 봐야겠네여~ㅎㅎ
담아갑니다~ 얼른 2권 출간되시길 바래요~ 이번에도 직접 구입하겠습니다 ^0^
글 담아가겠습니다.
정말 맞는 말씀을 해주셨어요.. 곡 기억하겠습니다.
무엇보다. 이해를 해야하지 않을까요"????????
다 제 얘기같군요~! 제가 바로 반복하는 실수들이네요..힘내서 또다시 시작해야겠어요.
좋은 글이네요 글 담아갑니다.
좋은글이네요 .. 퍼갑니다
제 블로그로 퍼갑니다.책 잘 보고 있어용~
좋은글 감사합니다
감사합니다~
감사합니다
감사 합니다.