1. 공통 ¶
먼저 컴퓨터 구조나 전산한 전반에 대한 쉬운 개론서를 읽어보는 것이 바른 수순이지만 처음엔 건너뛰어도 큰 상관이 없다. 자신이 좋아하는 소프트웨어를 잘 사용하는 것, 자신의 개인용 컴퓨터를 잘 꾸미고, 제대로 활용하는 것 등도 중요하다.
정말 쉽고 재미있는 전산학 개론서로는 다음 책을 흔히 추천한다.
- Computer Science : An Overview by J. Glenn Brookshear
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
가장 널리 사용되고, 범용적인 언어로는 C언어가 대표적이다. (꼭 C를 첫번째 언어로 배우는 것이 좋다는 이야기는 아니다)
C언어를 배울 때는 다음의 세 바이블(삼위일체라고도 한다)을 구비한다.
- The C Programming Language (흔히 white book이라고 부른다)
- C : A Reference Manual
- The Standard C Library
프로그래밍을 공부하더라도 하드웨어에 대하여 알고 있으면 도움이 되는 경우가 많다. 컴퓨터 구조에 대한 좋은 책으로 다음과 같은 책이 있다.
- Computer Organization and Design : The Hardware/Software Interface Second Edition by David A. Patterson, John L. Hennessy
3. 소프트웨어 엔지니어 ¶
우선 대학교재 수준의 개론적 이해를 통해 전반적인 그림을 얻는 것이 중요하다. 이 때 소프트웨어 개발 경험이 부족하다면 매우 지루하게 느껴질 수 있다. 하지만 최소 1년 정도의 프로그래밍 경험이라도 있다면 책을 보면서 "그래, 맞아! 이런게 필요했어!"를 연발한다. 자신의 문제의식을 형성해있기 때문이다.
개론 서적으로는 다음 책을 추천한다.
- Software Engineering by Ian Sommerville
- Wicked Problems Righteous Solutions by Peter Degrace, Leslie Hulet Stahl : 이 책은 Steve C McConnell이 가장 좋아하는 SE 책이다.
- Software Project Survival Guide by Steve C McConnell
- Rapid Development : Taming Wild Software Schedules by Steve C McConnell
- The Mythical Man-Month, Anniversary Edition : Essays on Software Engineering by Frederick P. Brooks
- Peopleware by Tom Demarco
4. 오픈소스 해커 ¶
오픈소스를 위해서는, 우선 EricRaymond의 HowToBecomeAHacker를 보고, 해커가 가져야 할 기본 소양이 무엇인지 알아야 하며, 성당과 시장의 '해커 문화의 짧은 역사'로 오픈소스 커뮤니티에서는 왜 유닉스를 주로 사용하게 되었는지를 알고, 유닉스에 대한 기초 지식을 쌓아야 하는데, 일반적으로 유닉스 공부에 추천되는 책들은 다음과 같은 것들이 있습니다.
좀더 자세한 설명과 목록을 원한다면 Linux Reading List Howto 를 참고
4.1. 유닉스 디자인에 관한 책들 ¶
The Magic Garden Explained: the internal of Unix System V Release 4, an opensystem design 0130981389
4.3. 유닉스 사용법에 관한 책들 ¶
The Underground Guide to Unix : Slightly Askew Advice from a Unix Guru (Underground Guide) 0201406535
그리고, 오픈소스 해커는 EricRaymond의 글에서도 언급 되었듯이, 언더그라운드적인 활동보다 자기가 관심있는 분야의 오픈소스 프로젝트에 주도적으로 나서기를 좋아합니다. 따라서, 자기가 관심있는 프로그램들의 소스나 제반에 대해 분석하여 버그 리포팅, 제안, 패치 기여 등을 적극적으로 하며, 메일링 리스트와 CVS, 유즈넷, IRC 등을 통해 항상 다른 해커들과의 원활한 의사 소통을 하는 것이 좋습니다. 우리나라의 특성상 KLDP같은 곳에서 JikhanJung님과 같이 외국어 문서나 외국어로 된 프로그램의 한글화를 하는 것도 적절한 오픈소스 해커로서의 활동이라고 할 수 있습니다.
그러나, 오픈소스 해커들은 The Girl's Guide to Geek Guys에서 말하는 것과는 달리 여자들에게 가장 인기 없을 만한 요소를 고루 갖추는 경우가 많아서 퍼키와 같이 늘 쓸쓸히 지내게 되는 경우가 많지만. 나름대로의 오픈소스 특유의 분위기는 빠져나갈 수 없는 마력에 흠뻑 취하게 만들어서 기꺼이 평생의 취미로 갖게 됩니다.
5. 전산학자 ¶
컴파일러
알고리즘/자료구조
알고리즘/자료구조
- Introduction to Algorithms, CLR : 전세계적으로 가장 많이 쓰이는 알고리즘 개론서적 중 하나
- Data Structures and Algorithms or The Design and Analysis of Computer Algorithms, Aho, Hopcroft and Ullman
- TheArtOfComputerProgramming, DonaldKnuth : 백과사전
- Programming Pearls, Jon Bentley : 알고리즘뿐만 아니라 프로그래머에게 여러모로 감동적인 책
Artificial Intelligence
- Artificial Intelligence: A Modern Approach, Peter Norvig : 몇 년에 한 번 나올까 말까한 AI 개론서로 평가를 받는다.
- Information Retrieval, Frakes et al. : 고전
- Information Storage and Retrieval, Korfhage
- Modern Information Retrieval, Baeza-Yates et al. : 세계 대학(원) IR 수업에서 가장 많이 쓰이는 개론교재 중 하나
- Managing Gigabytes: Compressing and Indexing Documents and Images, Witten et al. : 최근 들어 인기가 급부상한 책. 매우 실용적.
Theory
- Introduction to Autmata Theory, Languages and Computation 2nd ed. H-U : 흔히들 베틀북이라고 부르는, 가장 오래되고 전통적인 교과서. 설명은 다른 책 읽어도 좋으니 연습문제를 열심히 풀 것. 최신판은 내용과 연습문제가 많이 생략되었으므로 2판에 한한다.
- Lambda Calculi, Hankin : 이 분야의 교과서 중 가장 빠르고 쉬운 입문서.
- The Formal Semantics of Programming Languages - An Introduction, Winskel : 역시 이 분야 교과서 중 가장 쉬운 책
- Pisa note, Abramsky : Domain theory 에 있어서의 '비급'.
- Communication and Mobile Systems: the Pi Calculus, Milner : 대가가 쓴 학부생도 읽을 수 있는 입문서. Pi의 full treatment 를 위해서는 Sangiorgi-Walker가 필요하다.
- 학부에서 Algebra 와 Mathematical Logic 과목을 들을 것. 이론들의 언어를 사용하기 위해서는 그 정도의 기초훈련은 필요하다.
6. BillGates ¶
컴퓨터 공부를 하는 사람 중 상당수가 BillGates를 닮고싶은 사람으로 삼고 있는 경우가 많고, 컴퓨터 분야에서의 성공이 요즘 세상에는 비지니스적인 성공과 꼭 분리된 것만은 아닌 듯 하다. 컴퓨터 공부를 해서 "성공"하려면 BillGates적 모델에 대한 이해가 아주 중요하다.
꼭 BillGates처럼 세계적 회사의 CEO가 되려고 하지 않더라도, 설령 JustaProgrammer로 남기를 원하더라도 다음의 커리큘럼은 자신의 커리어에 큰 도움이 된다. 경영 능력을 갖춘 프로그래머와 그렇지 못한 프로그래머는 그 가치 차이가 엄청나다. 또 프로그래머일지라도 (기술뿐만이 아니고) IT업계의 흐름을 읽고 사업의 조류를 꿰뚫는 것이 필요한 경우가 많다.
우선 경영학 전반에 대한 이해가 필요하다. 대학에서 보는 경영학 개론서적 하나 정도를 설렁설렁 일독하고, 조금 실용적인 책들을 봐 나가야 한다. 특히 다음의 서적들이 탁월하다(모두 국내에서 구할 수 있다).
- High Tech Start Up
- The Ten-Day MBA
- TheSecretsOfConsulting
- Million Dollar Consulting
- The Business of Consulting
- HowToSolveIt
- AreYourLightsOn
- GeraldWeinberg의 서적 모두
- The Thinker's Toolkit
- In Search of Excellence
- Organizing Geniuses
- Becoming a Techinical Leader by GeraldWeinberg
- Customer.com
- Information Rules
- The Cluetrain Manifesto
- Blown to Bits
- InnovatorsDilemma
- Net Ready
- CrossingTheChasm : 벤처기업가는 물론 모든 기술집약적 산업 관련자들이 꼭 봐야할 필독서
- TheEconomist
- The Wall Stree Journal
- San Jose Mercury News
- Fast Company
- RedHerring
- Business 2.0
- Bootstrapping by DougEngelbart
- WeavingTheWeb by TimBernersLee
마이크로소프트 잡지 01/11월의 기사를 참고해보세요. 전산학의 각 분야에 대한 추천책이 많이 나와있어요. 주로 프로그래밍에 관한 내용이 많군요. --아무개