프로그래밍이야기

프로그래밍독학: 프로그래머인가? 코더인가?

푸르맨 2016. 10. 27. 01:19

프로그래밍독학: 프로그래머인가? 코더인가?


프로그래밍 독학에 대한 칼럼을 시작하면서, 이 얘기를 꼭 하고 싶었습니다.


코딩(coding)과 프로그래밍(programming)은 무슨 차이가 있을까요?


'코딩 교육'이라는 말을 하도 많이 언론에서 쏟아내서 

어느새 코딩과 프로그래밍이 같은 의미가 되어 버린 것 같습니다.

엄밀하게 말하면, 코딩은 프로그래밍의 일부분입니다.



시스템 설계 부분은 일단 제외해놓고, 프로그래밍을 정말 단순화 시켜보면 2개의 과정으로 나뉩니다.

1단계: 알고리즘 설계, 즉 문제를 해결하는 단계입니다.

2단계: 알고리즘 설계된 대로 프로그래밍 언어의 문법에 맞게 코드를 입력하는 코딩 단계입니다.


위의 두 단계 중, 어떤 것이 중요해 보입니까?

누가봐도 1단계: 알고리즘 설계 단계가 중요해 보입니다.

이 부분이 프로그래밍의 80% 이상에 해당되는 단계라고 보면 됩니다.


독학으로 프로그래밍을 배우려고 인터넷 강좌나 책을 구매하게 되면 대부분 문법에 대한 설명만 

하다가 끝납니다. 대부분의 프로그래밍을 가르치는 학원도 마찬가지입니다. 

언어의 특성에 대해 얘기하고 변수부터 해서 '배열, 포인터, 함수, 구조체, 클래스 등'을 이야기합니다.


강사들은 이미 실력이 갖추어진 분들이므로 당연히 예제들을 손쉽게 설명하면서 강의를 합니다.

하지만, 프로그래밍을 독학으로 하는 분들은 책을 볼 때나 강의를 들을 때는 할 수 있을 것 같은데, 

혼자서 해보려고 컴퓨터를 켜고 입력을 하려고 하면, 간단한 코드 몇 줄도 스스로 못 짜게 됩니다.

그러고선 혼잣말을 하죠...


'난 프로그래밍이 적성에 안맞나봐.. 아무나 프로그래밍하나..하던 일이나 하자..'


저도 이런 과정을 숱하게 겪었기 때문에 그런 줄 알았습니다.

하지만, 아닙니다.


결국, 프로그래밍은 '문제해결능력'을 얼마나 갖추고 있냐의 문제입니다.

문제해결하는 법을 연습한다면, 누구나 프로그래밍을 할 수 있습니다.


책이나 인터넷 강의를 들으면서, 단순히 강사가 알려주는 코드를 읽고 해석하는 것으로는 

몇 년이 지나도 스스로 코드를 작성할 수 없습니다.

현재의 많은 강의는 단순히 코더를 육성하는 데 집중되어 있는 것이 현실입니다.


제가 어릴 적에는 '정보올림피아드 대회'에 대한 학습이 유행했던 적이 있습니다.

그당시에도 대부분의 학원에서는 '정보올림피아드 출제 족보'를 입수해서 문제 해결 방법을 

많이 외우게 시켰었습니다. 

물론, 문제해결 패턴이 정형화되어 있는 부분들이 많아서 이렇게 외우는 것이 현실에서는 

프로그래밍에 도움이 되는 것도 맞습니다. 

하지만, 조금만 다르게 변형이 되어도 손을 못 대는 상황이 발생하는 것도 현실입니다.


저도 배우는 입장이기에 이런 글이 무례해보일 수는 있을 것 같습니다.

하지만, 제 경험상 프로그래밍을 재밌게 독학하기 위해서는 초점을 '프로그래밍 언어의 문법'이 아닌 '알고리즘 설계'로 옮겨야만 합니다. 이것이 필수 요소입니다.


다음 칼럼에서는...

컴퓨터가 생각(?)하는 방식을 배우고

어떻게 알고리즘을 설계하는 게 편한지에 대한 방법론을 적도록 하겠습니다.





힘이 되는 공감() 및 댓글 부탁 드립니다.(로그인 없이 가능)