'쏙쏙 들어오는 자료구조' 책을 추석 연휴에 읽었다. Grokking 시리즈 중 하나이다. 그로킹은 어떤 개념을 깊이 이해하여 완전히 터득한다는 뜻으로,  Manning 출판사의 하위 브랜드이다.  사실 컴퓨터 기술 서적은 딱딱한 편일 수 밖에 없는데, 좀 가볍게 풀어낸 시리즈로 헤드퍼스트 시리즈와 그로킹 시리즈가 떠오른다. 나도 그로킹 시리즈를 몇권 읽었는데, 이번엔 개발자들의 영원한 고민 주제인 자료구조에 대해 이야기한다. 자료구조와 알고리즘은 단짝 친구이다.

 

 

이 책은 파이썬을 중심언어로 자료구조를 설명한다. (파이썬이라니...라떼는 C였는데...) 배열 > 리스트 > 스택 > 큐 > 우선순위큐/힙 > 이진트리 > 딕셔너리 > 해시 테이블 > 그래프까지 기본적인 자료구조를 훑고 있다. ADT(추상화된 자료구조)를 살펴보면서 특징과 인터페이스를 설계하고, 이를 실제로 구현하기 위한 방법을 소개한다. 자세히 구현방법을 다룬다기 보다는 개념을 위주로 설명하는 책이라 보는게 맞겠다. 따라서 자료구조의 전체적인 입문서로는 괜찮다고 생각한다.

 

시니어들은 그냥 훑어보면서 개념을 다시 상기하는 용도로 읽어도 괜찮은 내용이라 생각한다. 대AI시대를 맞이하여 늘 기본기가 더 중요하지 않을까 했는데, 이 책에 소개된 내용은 충분히 숙지한 상태여야 프롬프트도 잘 작성할 수 있을 것이다.

 

그림으로 개념을 설명하고, 그 다음 코드를 살펴본다.

 

 

전체적으로 내용이 평이하며, 주니어용으로 기획된 책이라 생각된다. 그로킹 시리즈의 원서는 현재 14권이 나와있는데, 그 중 7권이 번역되어 출간되었다. (제이펍에서 번역된 책 - 자료구조, 함수형 코딩, 인공지능 알고리즘, 길벗에서 번역된 책 - 동시성, 한빛미디어에서 번역된 책 - 강화학습, 딥러닝, 번역서가 아직 없는 책 - 웹 애플리케이션 보안, 관계형 데이터베이스 설계, 머신러닝, 단순성(simplicity), 지속배포(CD), 스트리밍 시스템(실시간 이벤트 처리), 비트코인, 알고리즘은 1,2판이 있음)

 

원문을 벗어나더라도 조금 더 과감하게 번역되었으면 좋았을 것 같다는 개인적인 생각이 있다. 하긴 원서라는 제약이 있으니.. 쉽지 않았겠지만. 예를 들어 201쪽의 해시함수를 설명하는 부분에서 오라클 함수라는 말이 처음 등장한다. 오라클(oracle)은 신탁, 즉 신의 뜻을 대리 전달하는 예언자 같은 의미이다. 그러면 '몇번 인덱스를 사용하는 것이 적절한지를 알려주는 예언자 함수'나 '점집 함수(오라클을 점집으로 격하시키다니;;;)'가 더 이해에 도움되지 않을까? 

반응형

 

최근 '우리들의 발라드'라는 방속 프로그램을 보다가 문득 생각난 주제가 '재능(Talent)'이다.

초등학생 참가자

 

 

Talent...  Amegica Got Talent라는 쇼도 있지만, 예전에 재능이라는 말에 대해 동양과 서양이 가지는 느낌이 서로 다르다는 이야기를 들었다.

 

K-Pop 교육  관련 스타트업 대표님으로 부터 들었던 이야기인데,

서양은 기본적으로 Talent가 하늘로 부터 부여받은 특별한 능력이라는 이미지가 강한 것 같다고 했다. 따라서 신이 부여한 능력이 무엇인지를 찾아내는 것이 스승의 역할이고, 찾아낸 능력을 갈고 딲기 위해선 고수를 찾아 가르침을 받아야 한다. 그래서 노래를 잘 부른다고 하면 어느 도시의 누가 잘한다는 소문(평판)을 듣고 그 곳으로 찾아가 배움을 청한다. 도제식이라 해야 하나.

 

동양은 기본적으로 자질이 있는지를 판단하는것을 더 중요시하는 것 같다고 한다. 따라서 기본적인 자질이 있으면 이를 교육시키고 훈련시키면서 발전시켜나간다. 이런 관점으로 인해 연습생이라는 개념이 만들어 진다고 한다.

 

소프트웨어 개발 세계도 이와 비슷한 시선 내지는 철학, 관점의 차이가 존재하는 것 같다.

 

'10X개발자'로 대변되는 천재 개발자들의 이야기는 흥미롭지만, 나와는 거리가 멀다. 하지만 분명 존재하는 부류이기도 하다. 정말 컴퓨터와 물아일체가 된 사고 방식이 아닐까 하는 개발자들도 많이 만났다.

 

하지만 더 많은 개발자들은 대학교육, 또는 부트캠프 내지 독합으로 공부해서 성장해 왔다. 대부분의 개발자는 처음에는 평범했을지 몰라고 꾸준한 학습과 실전 경험을 통해 그들이 가진 기본 자질을 절차탁마하여 위대해진다. 

 

뭐 천재는 아니니 후자의 자질을 갈고딲는 태도가 더 중요하지 않나 싶은 생각이 많이 든다.

한편으로 1만 시간의 법칙이 개발자들에게 유효할까? AI시대에 개발자의 재능은 어떻게 재정의되어야 할지 고민이 생긴다.

 

여튼 타고난 재능을 가진 분들을 보면 존경하되 따라할 필요는 없을 것 같고(따라할 수 없고) 나라는 존재의 특징을 잘 인지하여 나만의 강점을 축적하는 것을 고민하는게 중요하겠다.

 

반응형

+ Recent posts