2004년 8월.
제대 후 복학했을 때 내가 가진 것이라곤 0점대 방어율의 끝내주는 성적표.

컴퓨터학과지만 컴퓨터는 적성에 안 맞는다고 생각해서 전과를 하려했다.
하지만 전과도 학점이 뒷받침이 되어야 할 수 있다는 것을 깨닫기만 했을 뿐.

선택의 여지가 없었다. 학교를 버리고 다른 일을 해보겠다는 용기는 내게 없었기 때문에.

다행히도 먼저 복학한 친구들의 도움을 받아 공부를 했다.
C언어로 숫자를 입력 받아 홀수인지 짝수인지 결과를 출력하는 프로그램.
평균을 구하는 프로그램.
이 정도의 간단한 프로그램들을 만들어 보면서 어라 이것도 꽤 재밌네? 라는 생각을 갖게 되었다.

하지만.
링크드리스트에 부딪히게 되었을 때 나는 다시 한 번 절망했다.
C 언어 책을 몇 권을 읽었는지 모르겠다.
링크드리스트가 어떤 특징을 가지고 있으며 어떻게 동작한다라는 것은 충분히 읽었다.
하지만 책을 덮고 텅빈 에디터 안에서 코드를 작성 해보려고 하면 내 머리 역시 비어버렸다.
한 줄도 코드를 쓸 수 없었다.

그 때 나를 도와줬던 책.

C로 배우는 알고리즘
출처: 알라딘

대학교 1학년 때 이미 이 책이 좋다는 이야기를 듣긴 했었지만 너무 옛날 책이라서 이제 나오는 책들은 당연히 이 책보다 좋을 것이라고 생각을 했다.

링크드리스트 부분을 몇 번을 읽었는지 모르겠다.
코드를 작성하고 지우고 다시 설명을 읽어보고 하면서, 슬슬 C 언어에 눈을 뜨게 되었다.

그 이후의 학부 생활은 순탄했다.
학부생 수준의 컴퓨터 과학은 C언어만 할 줄 알아도 그것을 못하는 다른 학생들에게 이미 절반 이상 승리한 것이나 다름 없기 때문이다.

저 때 즈음에 힘들어서 포기하고 다른 길을 찾는 사람들에게 이 책을 알려주고 싶다.
포기하지 않고 이 책을 읽어본다면 아마도 학기가 지나 갈수록 점점 더 재밌고 편해질 것이다.

어쩌면 이 책은 내 인생을 바꿔준 책일지도 모르겠다.