한 권으로 그리는 컴퓨터과학 로드맵

컴퓨터과학도가 되기 위해서는 무엇을 준비해야 할까요?

컴퓨터과학 관련 학과의 커리큘럼에 따라, C 프로그래밍부터 우선 해 보면 될까요?

 

 

세종대학교 컴퓨터공학과 커리큘럼

 

물론, 언어 하나를 익혀 프로젝트 하나를 완성해 보는 것도 컴퓨터공학도가 되기 위한 좋은 첫 걸음입니다. 하지만 분명 아무것도 모르는 상태에서 언어 하나를 익히는 게 쉬운 일은 아닐 겁니다. 나중에 배울 예정인 알고리즘, 컴퓨터 구조, 데이터베이스 등등을 아예 모르고서는 프로젝트 하나를 완벽하게 이해하며 완성하기 어려우니까요.

이렇게 유기적으로 연결되어 있는 각각의 주제를 넓은 관점에서 훑어 보며, 앞으로 내가 배울 내용이 무엇인지, 그게 어떤 의미인지 안다면.. 기나긴 미로를 달리고 있는 듯한 답답한 느낌이 조금은 해소가 되지 않을까요?

 

 

이 답답한 느낌을 근성으로 견딘다고 하더라도 ‘열심히 하는 방향’이 어딘지 알아보는 게 좋습니다. 실력 있는 컴퓨터과학도가 되기 위한 최적의 길을 모를뿐더러, 어떤 세부 분야에서 일을 하게 될지도 모르기 때문입니다.

 

컴퓨터과학의 로드맵을 그려보자!

컴퓨터과학이라는 방대한 분야의 다양한 주제 중에 하나를 꼽아 공부를 시작하기 전에, 전체적인 로드맵을 그려 보세요!

 

짠-!

 

(음… 로드맵을 그리다가 길을 잃겠네요.)

알고리즘, 데이터 구조, 데이터베이스, 컴퓨터 구조, 프로그래밍 원리. 제대로 배우려면 한 주제당 두툼한 책 한 권 떼는 것으로도 부족할 양이니 로드맵도 복잡하겠네요. 좀 더 단순하게. 더 넓은 관점에서. 한눈에 들어오는. 그런 로드맵은 없을까요?

 

이런 로드맵 말이야!

 

<한 권으로 그리는 컴퓨터과학 로드맵>에서 그 해법을 찾아보세요.

광범위한 내용을 중요한 개념만 꼽아 그림을 이용해 직관적으로 담았습니다. 얇은 책에 담기 위해 열마다 말보다 한 컷의 그림으로 개념을 설명했고, 그 개념 또한 직관적으로 이해할 수 있게 고심했습니다.

 

 

컴퓨터과학을 이제 막 시작하려는 분들께, 이 책이 좋은 안내서가 될 겁니다.

 

이런 분들께 권합니다!

 

컴퓨터학과에 진학할 예비대학생이라면, 본격적인 공부를 시작하기에 앞서 앞으로 무엇을 배울지 이 책을 통해 가늠해 보세요. 가벼운 마음으로 읽으며 낯선 단어들과 친숙해지고, 이런 흐름과 기술이 있다는 것을 알아보세요. 기술 사이에, 과목 사이에 어떤 관계가 있는지를 알게 되면 ‘이 과목을 왜 배우는지’, ‘지금 배우는 것이 어디에 쓰이는지’, ‘학습 과정의 다음 단계는 무엇인지’에 대한 답을 얻을 수 있을 겁니다.

컴퓨터학과를 전공하지 못해서 괜히 주눅이 드나요? 걱정마세요. 이미 실무에서 잘 활용하고 계시잖아요. 이미 잘하고 있는 일에 근거 없는 자신감 없음에 시달리시는 비전공 프로그래머께 권합니다. 이미 잘 활용하고 계시는 ‘그’ 내용의 원리 한번쯤 이론으로 다져 보자구요!

 

잘 알고 있는 그 내용, 말을 하려면 왜 이렇게 꼬일까요? 너무 잘 알고 있어서, 이유가 있을 필요도 없어 보일 만큼 당연하게 느껴지는 이론을 논리적으로 설명하려니 답답한가요? 이 책을 읽으면서 캠퍼스 시절 배웠던 내용을 다시 한번 끌어올려 보세요!

미리보기: https://goo.gl/bi8aB9

 

 

인터넷 서점에서 절찬 판매 중!

yes24: https://goo.gl/Ggvok6
교보문고: https://goo.gl/NKJoZM
알라딘: https://goo.gl/paBzJs
인터파크: https://goo.gl/mM8bya

 

 

 

 

프로그래머를 위한 단단한 수학 책, 『CONCRETE MATHEMATICS 구체 수학』

CONCRETE MATHEMATICS 구체 수학
로널드 그레이엄•도널드 커누스•오렌 파타슈닉 지음 | 류광 옮김 | 816쪽

컴퓨터 프로그래밍 역량을 탄탄하게 다져주는 수학은 따로 있다! 
수학이란 학문이 프로그래밍과 매우 밀접하다는 것은 주지의 사실입니다. 그래서 컴퓨터 프로그래밍의 역량을 탄탄하게 키워줄 수학의 기초에 관해 구체적으로 이해하고 훈련하는 것은 프로그래머가 갖추어야 할 핵심 역량이라 할 수 있습니다. 이번에 소개하는 『CONCRETE MATHEMATICS 구체 수학』은 역량 있는 프로그래머가 되기 위해 기초를 단단하게 다져줄 수학 책입니다.

커누스 교수의 스탠퍼드대 컴퓨터과학 기초 강의
이 책은 스탠퍼드 대학교에서 1970년부터 매년 가르쳐 온 동명의 강좌에 기초한 것입니다. 이 책의 저자 중 한 명인 커누스(Donald E. Knuth) 교수는 컴퓨터 프로그램을 상세하게, 그리고 근거 있게 이해하는 데 필요한 수학은 그가 대학에서 수학을 전공하면서 배운 것과는 상당히 달랐다고 합니다. 그래서 그는 새로운 교과 과정을 도입해서 누군가에게 배우길 바랐던 내용을 학생들에게 가르치기 시작했고 그 수십 년 분량의 강의 노트들을 모은 것이 이 책이라고 할 수 있습니다.

이 책은 고급 컴퓨터 프로그래밍과 알고리즘 분석의 바탕이 되는 수학에 관한 교과서이자 참고서입니다. 문제를 풀고, 난해한 합을 평가하고, 자료에서 미묘한 패턴을 발견하는, 즉 알고리즘을 이해하고 문제를 해결하는 능력을 기르기 위해 필요한 수학적 기초를 제공하는 것이 이 책의 목적입니다.

그런데 ‘CONCRETE MATHEMATICS 구체 수학’이란 이름은 어떻게 붙여진 걸까요? 이에 대해 커누스 교수는 다음과 같이 설명합니다.

‘Concrete Mathematics 구체 수학’
스탠퍼드에서 처음으로 구체 수학을 가르칠 때 이런 다소 이상한 교과명을 설명하면서, 부드러운 것이 아니라 단단한 수학 교과 과정을 가르치겠다는 의도에서 이런 이름을 붙였다고 말했다. (중략) 구체 수학의 ‘Concrete’는 연속수학(continuous mathematics)의 continuous와 이산수학(discrete mathematics)의 discrete를 섞은 것이다. 좀 더 구체적으로 말하면, 구체 수학은 수학 공식들을 일단의 문제해결 기법들을 이용해서 통제된 방식으로 조작操作(manipulation)하는 것이다.
– 서문 중에서

컴퓨터과학의 기초를 다지는 단단한 수학
그렇습니다. 이 책에는 수학 공식과 수식들이 나옵니다.  그러나 기존의 정리나 조합적 추론보다는 수식을 조작하는 기법을 강조하고 있고 또 훈련할 수 있도록 적절히 구성되어 있습니다. 합, 점화식, 기초 정수론, 이항계수, 생성함수, 이산 확률, 점근법 등 이 책에서 다루는 주요 주제를 통해서 말이죠. 또한  500여 개의 연습문제를 통해 내용을 정확히 이해했는지 확인할 수 있게 했고, 연구 문제를 제외한 모든 문제의 완전한 해답까지 제시하여 독자 스스로 공부할 수 있도록 짜여있습니다.

이 책의 내용을 끝까지 따라가면 수학의 기초 지식과 함께 컴퓨터 프로그램을 상세하게, 그리고 근거 있게 이해하는 데 좀 더 큰 그림을 그릴 수 있는 역량을 쌓게 될 것입니다. 프로그래밍이나 컴퓨터과학 관련 분야 전공자이거나 수학을 이용해야 하는 실무자라면 이 책을 통해 컴퓨터 프로그래밍의 기초를 탄탄하게 다져보면 어떨까요?

CONCRETE MATHEMATICS 구체 수학』은 다음 서점에서 구입하실 수 있습니다. 🙂
Yes24 | 교보문고 | 알라딘 | 인터파크