프로그래밍 공부 방법

프로그래밍 2014.07.31 15:56

프로그램을 어떻게 하면 잘 짤수 있는지, 그리고 프로그래밍은 어떻게 공부하면 좋을지 문의하시는 분들이 종종 있습니다.


이런 질문은 저한테 할게 아니라 대가분들에게나 해야겠지만, 어쨌든 프로그래밍에 대해 나름 생각하는 바를 몇가지 적어봅니다.



1. 프로그래밍 언어는 도구


프로그래밍을 배운다 하면 처음에는 c, c++, java 등과 같은 프로그래밍 언어를 익히는게 일반적입니다. 하지만 프로그래밍 책을 사서 열심히 익혔다고 해서 그 사람이 프로그램을 잘 짤수 있는건 아닙니다. 책을 읽긴 읽었는데 막상 자신이 직접 프로그램을 짜려고 보면 도대체 어디서부터 시작해야 할지 뭘 해야할지 막막한 경우가 대부분입니다.


그런데, 여기서 '나의 공부가 부족했구나...' 하면서 책을 한권 더 사서 본다든가 아니면 자신의 머리를 탓하거나 할 필요는 없습니다. 프로그래밍 언어는 도구일 뿐, 도구 사용법을 익혔다 해서 프로그램을 잘 짤수 있는건 아니기 때문입니다. 예컨데, 나무를 한번도 베보지도 않은 사람이 도끼에 대해서만 열심히 연구했다고 해서 나무를 잘 벨수 있는 것은 아니기 때문입니다.


프로그래밍 언어는 그냥 기본적인 도구 사용법 정도를 익혔다 정도로 생각하면 됩니다. 그리고 도구 사용법이 햇갈리면 그때 그때 책이나 인터넷, 설명서 등을 찾아볼 수 있을 정도면 됩니다.



2. 프로그래밍의 즐거움


당연한 말이지만 프로그램은 자신이 직접 짜봐야만 실력이 늡니다. 그런데, 단지 코딩 실력을 높이기 위해서 또는 공부를 위해서 프로그램을 짜는 것은 그다지 효과적이지 않습니다.


프로그래밍을 배우는 이유는 자신이 원하는 프로그램을 직접 구현하기 위해서일 것입니다. 저의 경우는 당시 오락실에서 한참 유행하던 테트리스 게임을 직접 구현해보고 싶은 마음에 시작했지만 사람에 따라 필요한 목적은 다 다를 것입니다. 어쨌든 그 목적이 무엇이든 자신이 원하는 프로그램을 목표로 설계도 해보고 하나씩 필요한 공부를 해 보라고 말씀드리고 싶습니다. 만일 목표로 하는 프로그램이 없다면 새로 하나 만들어서라도 구체적인 목표를 가지고 프로그래밍을 하는게 좋습니다.


자신이 꼭 만들어보고 싶은 프로그램이 있고 지금 그 프로그램을 구현하고 있거나 하나씩 준비해 가고 있다면 중간 중간 부딪히는 어려움도 즐거움이 될 수 있습니다. 그리고 그 프로그램이 완성되어 감에 따라 어느덧 자신의 프로그래밍 실력도 자연스럽게 늘어 있음을 발견하게 될 것입니다.



3. 한걸음 더


프로그래밍에 재미를 붙이다 보면 좀더 깊이있는, 그리고 좀더 효율적인 프로그램에 대한 필요성을 느낄 수 있습니다. 그럴 때는 프로그래밍 언어, 자료구조(data structure), 알고리즘, 컴퓨터 구조 등에 대한 보다 깊은 이해와 공부가 도움이 될 수 있습니다. 하지만 모든 것을 한꺼번에 할 수는 없으며 그때 그때 필요한 대로 조금씩 익혀가면 좋다고 생각합니다.



by 다크 프로그래머


'프로그래밍' 카테고리의 다른 글

Matlab 핸드북 (참고용)  (0) 2017.11.21
프로그래밍 공부 방법  (10) 2014.07.31
  • 밥버러지 2014.08.04 20:42 신고 ADDR 수정/삭제 답글

    항상 좋은 말씀 감사합니다 ^^!

    • BlogIcon 다크pgmr 2014.08.04 23:26 신고 수정/삭제

      안녕하세요. 오랜만이시네요 ^^ 댓글 감사합니다.

  • 아주대 석사 2014.08.05 13:38 신고 ADDR 수정/삭제 답글

    이 블로그에서 항상 많은 도움과 정보를 얻고 갑니다. 감사합니다.

  • KJJ 2014.08.06 14:43 신고 ADDR 수정/삭제 답글

    잘봤습니다! 프로그래밍 잘하고싶다 ㅋㅋ

  • koreajp1 2014.08.16 06:40 신고 ADDR 수정/삭제 답글

    안녕하세요! 눈팅족 첨 댓글 써봅니다! 한 가지 궁금한게 있는데요, 프로그래밍은 혼자서 터득 할수 있을 까요? 수험생으로써 바쁜 날들을 보내고 있지만 컴퓨터 프로그래밍을 좋아해 가끔 이 블로그나 저 블로그에서 정보 얻어 가고 있는데, 부모님은 제가 프로그래머가 되는것을 반대 하시거든요. 프로그래밍 언어는 단순한 도구라고 하셨는데, 역시 도구의 중요성보다는 그 도구를 다루는 사람의 가능성이 더 중요한 것이 겠죠?

    • ㅋㅋㅋ 2015.01.03 10:37 신고 수정/삭제

      도구도 중요합니다. 페더러보고 싸구려 2만원짜리 테니스라켓주고 테니스치라고하면 하겠습니까? 고수들은 나쁜 도구를 혐오합니다.

      주인장님의 말은, 일단 근본적으로 특정 프로그래밍 언어만 배운 것은 living skill이 아니라는 것인 거 같습니다. 배운것을 살아있는, 실생활에 쓸 수 있는 기술로 만드는 게 중요하다는거죠.

      반면에 koreajp1님이 물어보는건 도구 자체의 중요성은 필요없느냐 인데, 이건 아니올시다 입니다. 도구는 엄청중요합니다. VB만 10년 동안 짠 사람하고 예를들어 LISP을 10년동안 짠 사람은 일단 사용하는 도구부터 다른겁니다. LISP을 사용하는 사람들 중에 프로그래밍 고수들이 훨씬 많습니다. 고수들은 나쁜 도구 사용을 참지 못하기 때문입니다. 왜냐하면 비효율적이고 자기 생각처럼 다뤄지지 않거든요.

  • BlogIcon 다크pgmr 2014.08.18 08:50 신고 ADDR 수정/삭제 답글

    네 그렇게 생각합니다. 그리고 어느날 비법을 깨닫게 된다기 보다는 조금씩 쌓여지는 것이라 생각합니다.

  • OneaidSouL 2014.08.26 13:58 신고 ADDR 수정/삭제 답글

    새로운 프로그램 언어를 시작하려거나 이미 이 분야에서 일하고 있는 분들에게 도움이 될만한 짧은 글 같네요. 감사합니다.