SMS처리 도우미
E-mail
  ldwin@naver.com
제목
  프로그래밍 독학 효율적으로 하기! (From. 소스놀이터)


최근 소프트웨어 과목에 중고 교과과정이 들어온다는 뉴스를 접하게 되었습니다.

사실 프로그램이 적용되지 않는 분야가 없기에 유망한 직업이 당연한 것 같은데 현실은 암울합니다.

하지만 프로그래밍으로 얻을 수 있는 것을, 단지 회사원으로 한정하거나 한국이라는 한 나라에 한정하지 않는다면 그리고,

다양한 가능성을 고려한다면 프로그래머는 여전히 매력적인 직업입니다.

 

앞으로 여러 글들을 통해 프로그래머 직업의 가능성에 대해 함께 이야기하고 싶습니다.

 

 

우선 프로그래밍 독학을 원할 경우 어떻게 할 수 있는지 생각해보겠습니다.

 

프로그래밍 독학의 어려움

독학으로 공부할 경우, 많은 프로그래밍 분야 중. 어떤 것을 선택해야 할 지... 혹은 많은 책 중 어떤 책을 읽어야 할 지 고민하게 됩니다. 

설령 책으로 공부를 잘 진행했지만, 다 읽은 후 머리엔 남는 건 없거나, 읽어봐도 실제로 어디에 어떻게 쓰이는지 몰라 의아해할 수 있습니다.

이러한 이유로 프로그래밍 공부가 열정만큼 빨리 진행되지 않을 지 모릅니다.

 

'함께 의논하는자에게 지혜가 있다'는 말처럼 공부하기 전에, 동일한 노력을 했었고 또 독학에 성공한 사람들의 체험을 조사한다면 큰 도움이 되겠죠.

우선 이러한 어려움에 대한 저의 노하우를 적어볼까 합니다. 조금이나마 도움이 되고 싶네요. ㅎ

 

1. 프로그래밍 분야 중, 어떤 것을 선택해야 할까?

공부를 해나가지만 만족스런 결과물을 보지 못할경우, 곧 지치게 될 것입니다. '기대가 늦추어지면 실망하게 되는 것'이죠.

저는 우선 이런 제안을 해보고 싶습니다. 결과물을 쉽게 볼 수 있는 더 쉬운 언어부터 해보라는 것입니다. 어쩌면 이 제안이 의아해보일 수 있습니다. 좀 더 돈도 많이 받고 인정해 주는 언어 (보통 여려운 언어죠)를 배워야 전망이 있는 것 아닌가 하고 말입니다.

 

 

하지만, 프로그래머로서 길을 걷는다는 건 다양한 언어를 계속 공부하는 걸 의미합니다. 한 언어로만 일을 하겠다고 결심하면 롱런할 수 없을 것입니다. 물론 반대 의견도 많겠지만 과거 사라져버린 언어를 기억할 수 있습니다.  시대는 변하고 있기 때문입니다. 프로그래머로서의 자질을 갖추고 있다면 새로운 언어를 배우는 것이 생각보다 수월한 일입니다. 언어적인 감각이 있고 대개 어떤 식으로 언어들이 구동되는지... 어떤 공통적인 기능들을 담고 있는지등을 잘 알 경우, 새로운 언어를 배운다는 게 어렵지 않습니다.

따라서 이렇게 조언해드리고 싶군요. 보다 쉽고 결과를 빨리 볼 수 있는 언어로 흥미를 잃지 않고 배워나가시라는 것입니다. 그러다보면 자연스럽게 여러 언어를 익히게 되고, 고급기술을 익힐 기회 역시 따라옵니다.

기본적인 언어에 대한 개념을 잡아나가시면서 프로그래머로서의 다양한 분야에 대한 간접경험을 하시게 될 겁니다. 아마 본인에게 맞고 마음이 가는 프로그래밍 분야를 더 공부하게 되겠죠. 그리고, 그러한 길을 목표로 삼게 될 것입니다.

 

2. 어떤 책을 읽어야 할까?

처음 공부하신다면 아주 기본적인 개념을 잡아나갈 필요가 있습니다. 변수, 상수, 함수, 메모리, CPU, 멀티쓰레드, 비동기, 동기, 네트워크 등 가장 기본적인 개념들을 통찰력있게 바라볼 수 있도록 도와주는 어찌보면 개론 같은 책으로 기본개념을 분명히 잡는 것이 좋습니다. 아마 이러한 과정이 굉장히 지루해 보일 수 있습니다. 저는 웹프로그래머로서 12년정도 경력을 쌓아왔는데요. 관련학과를 나온 것도 아니고 처음에 학원과정으로 공부했습니다. 그런데 학원에 들어가기 전, 이와 같은 기본 개념을 알려주는 책을 열심히 읽고 들어가니 큰 도움이 되었습니다. 사실 이런 책을 읽는 것은 지루한 일이죠. 이론적인 책이니까요. ㅎ

 

하지만 그 후 학원에서 공부하는데 큰 도움이 되었습니다. 그러한 개념들 덕분에 발전 속도가 빨랐습니다. 단순히 이렇게 짜면 결과가 나오구나가 아니라, 컴퓨터 내부적으로 코드가 어떻게 실행되는지, 머리로 그려볼 수 있었습니다.

또한, 버그가 생겼을 때 쉽게 테스트할 수 있었고 문제해결 능력이 생기더군요.

 

 

이제 기본 개념을 잡으셨다면 쉬운 언어로 (결과를 빨리 볼 수 있는 언어로) 공부하시는데요. 중요한 건, (이론이 아니라)결과를 두 눈으로 확인할 수 있어야 한다는 것입니다. 많은 책들은 라이브러리와 같은 형태로 쓰여지기에 기존의 능숙한 프로그래머가 아니라면 이해하기 쉽지 않습니다.

 

가능하면 (자신에게 맞는) 프로젝트 단위로 진행되는 책을 보시기 바랍니다. 실제적인 개발 진행을 위해, 자신의 컴퓨터에 어떤 도구(프로그램)를 설치해야 하는지 알아야 하고, 해당 도구를 어떻게 사용하는 지도 배워야 합니다. 또한, 도구의 활용도를 높일 수 있는, 여러 노하우도 웹 검색 및 실제적 경험을 통해 배워나가야 합니다.

 

 

어떤 책들은 설명이 잘 되어 있지만 초보자들에게는 (테스트하기에) 정보가 부족한 경우가 있습니다. 따라서 책을 읽어나가면서 부족한 점들을, 웹에 포함된 정보로 메꾸는 방식으로 진행할 수 있을 것입니다.

 

 

3. 프로그래밍 결과를 보는 것은 단지 언어를 학습하는 것에 그치지 않습니다.

빨리 언어를 작성해서 무언갈 만들고 싶을 것입니다. 하지만 이 과정에서 언어 외적인 정보가 많이 요구됩니다. OS에 대한 정보, OS 버전에 따른 버그들... 만든 프로그램을 실행할 수 있게 만드는 과정.. 배포하는 문제등등 말입니다. 따라서 끈기를 가지십시오.

작은 프로그램부터 차근차근 결과를 보아가면서 점점 배워나가시기 바랍니다.

 

 

 

4. 문제에 부딪치면 어떻하지?

아마 처음에는 수많은 문제에 부딪치게 될 것입니다. 어떤 문제들은 도저히 알 방법이 없는 것 같아 당황스럽습니다. 사실 처음 프로그램을 짜다보면, 아주 간단한 오류부터 복잡한 오류까지 대단히 많은 버그에 봉착하게 됩니다. 책에 있는 예제를 보고 또 보시구요. 단지 철자 하나에 에러가 난다는 걸 기억하세요. 즉, 세밀하게 살펴보시기 바랍니다. 처음에는 버그 하나를 고치는 데 여러 날 걸릴지 모릅니다. 하지만, 한번 두번 해결하다보면 결국엔 문제를 쉽게 해결할 수 있습니다.

 

 

구글 검색을 통하면 원하는 문제의 해결책을 더 쉽게 찾을 수 있습니다. 물론 아주 현명한 검색어를 써야 하는 건 당연한 일이겠죠.

5. 프로그래머가 되려면 학교공부보다는 언어 공부가 더 중요하지 않나요?

아니요 그렇지 않습니다. 프로그래밍 분야는 훌륭한 판단력과 사고력, 통찰력이 요구됩니다. 그 뿐 아니라 좋은 대인관계, 학습력등이 지대한 영향을 끼칩니다. 이러한 것들을 키울 수 있는 기회를 제공하는 학교 공부 또한 무시하지 마시기 바랍니다.

개인적으로는 영어공부를 추천해드리고 싶은데요.

 

 

점점 글로벌화되어 가고 있고.. IT 분야는 이점에서 선두적인 것 같습니다. 심지어 영어만 능숙하다면 한국에서 외국일을 할 수 있는 게 현실입니다. 그리고 다양한 기술을 익히시려면 영어 원서를 이해해야 하죠.

훌륭한 프로그래머를 위해 영어 공부도 게을리하지 마시길 바랍니다.

 

트위터, 페이스북 공유 부탁드립니다~!
트위터   페이스북


  • 패스워드
           
X