본문 바로가기

Computer Engineering/Introduction

프로그래밍 독학 큰그림 그리기

나는 컴퓨터 과학을 전공하지 않았다.
그러나 컴퓨터에 어릴 적부터 관심을 가지고 있었고 IT 사회에 살다 보니 자연스럽게 프로그래밍에 흥미를 가지게 되었다.

누구냐 넌

전공을 했다면 개론 수업을 통해 전체를 알고난 후 하나하나 세부사항을 배워가면서 기초를 튼튼하게 다질 수
있을 텐데, 비전공자이다 보니 큰 그림을 보는 것에서부터 어떻게 해야 할지 막막했다.
온라인 상에 떠도는 정보들은 하나같이 세부사항을 익히는 것에 대해서만 얘기하고 있었기 때문에
나 역시도 자연스럽게 세부사항이라고 할 수 있을 C언어 문법책으로 공부를 시작하게 되었다.
(아마 대다수가 이렇게 특정 언어에 대한 문법 공부로 시작할 것 같다.)

6개월이 넘는 긴 시간을 공부하다 쉬다를 반복할 정도로 C언어 문법책은 나에게는 꽤나 어려웠다.
결국에는 전체를 한번 훑을 수 있었는데, 그때 나는 정말 허탈했다.
전체를 끝냈음에도 나는 쉬운 예제 하나조차 한 번에 코딩해내지 못하고 수차례 헤매기 일쑤였고,
당연히 내가 원하는 프로그램을 창조해 내는 것은 엄두조차 낼 수 없었다.

난 지금까지 무엇을 한 것인가

그렇다.
이렇게 해서는 내가 원하는 프로그램을 절대로 만들어 내지 못할 것이다.
(단지 이건 여러번 다시 본다고 해결될 문제가 아니었다.)
내가 알지못하는 무언가가 있을 것 같았다.

서점에 가서 많은 책들을 뒤져보고, 초록창 지식인들의 수많은 답변들도 읽어보며 그것을 찾기 시작했다.
그렇게 정보를 모으던 터에 '나프잘'을 알게 되었고, 나프잘은 나에게 컴퓨터 과학, 소프트웨어 공학의 관점에서 프로그래밍하는 방향을 제시해 주었다. 아직 나프잘 전체를 공부한 것은 아니지만 꼭 필요한 공부란 생각을 하고 있다.

나프잘을 공부하다보면 지치는 일이 많다. 피드백을 받는 과정에서 저자로부터 독설(?)을 자주 접하게 되기 때문이다.
특히 고된 하루를 보내고 난 뒤 공부를 할 때 "아.. 내가 이런 소리 들어가면서까지 피드백을 받아야 하나?"라고 느끼고 잠시 쉬는 기간을 가지게 된다. 그러나 반드시 끝까지 끝내볼 생각이다. 오래 걸리더라도..

나프잘을 통해 컴퓨터 과학과 프로그래밍이 어떤 관계를 가지고 있단 걸 알게 된 후 중고서점 컴퓨터 서적 코너에서
한 책을 우연히 접하게 되었다. "ICT 융합 시대의 컴퓨터 과학"이란 제목을 가지고 있었는데, 목차를 보니 내가 바라던 '개론서'였다.

누가 필기해둔 모양으로 보아 대학교에서 수업용으로 사용하던 것 같은데, 컴퓨터의 역사에서부터 운영체제, 프로그래밍과 소프트웨어 개발, 알고리즘과 데이터 구조, 데이터 베이스, 네트워크, 웹과 인터넷, 모바일, 빅데이터, 인공지능까지 컴퓨터 과학 전반에 대한 내용을 보여주고 있었다. 내가 너무나 바라던 숲을 보여주는 책이었기에 고민 없이 구매하여 며칠 만에 전체를 훑었다. 덕분에 개략적으로 컴퓨터 과학이란 분야에 대한 틀을 잡을 수 있었다.

개론서로 숲을 보게 되다

컴퓨터 과학의 전체적인 내용을 알고나니 소프트웨어를 만드는 것은 컴퓨터 과학의 한 부분이며, 이를 적용할 분야는 많이 있었고 기술이 발달함에 따라 점점 더 많아질 것이란 생각을 하게 되었다.
나프잘로 컴퓨터 과학적 소프트웨어 개발을 완벽하게 익히고 새로운 분야에 대한 심층 공부도 시도해봐야겠다.
아마 다음 심층공부는 데이터베이스와 마이닝 같은 데이터에 관한 것일 것 같다.
그쪽이 끌린다. 일단은 나프잘부터 끝내는 걸로..

누군가 프로그래밍 독학을 시작한다고 하면 나는 개론서를 먼저 보고,
그다음에 나프잘과 문법책을 병행하며 공부하라고 추천해주고 싶다.
문법부터 시작한다면 나처럼 허탈함을 느끼게 될 것이고, 그로 인해 포기할 수도 있을 것 같다.

개론서 / 나프잘, 문법책

모두 힘내시길...

'Computer Engineering > Introduction' 카테고리의 다른 글

프로그래밍의 본질!  (0) 2019.06.16