본문 바로가기
:: Notes/Books

[Book] 프로그래밍 면접 이렇게 준비한다 -3

by 메모밍 2019. 9. 9.

 

:: Chapter 11. 객체지향 프로그래밍

  클래스와 객체, 생성과 파괴, 상속과 다형성, 인터페이스와 추상 클래스, 가상 메소드, 다중 상속등 지금 적은 내용들에 대해 자신 있게 설명 할 수 있는지를 한번 생각해보자. 이미 많은 프로그래밍 언어를 사용하며 OOP를 추구하고 구현했다. 생각해보니 내용을 일일히 생각하고 구현 한다기보다 지금까지 해왔던 경험을 바탕으로 기계적으로 하는 경우가 많았다. 다시 한번 내가 주로 사용하는 언어의 OOP 개념을 되짚어보고 어떤식으로 처리를 하는지 정리를 해볼 수 있는 좋은 챕터다.

 


 

:: Chapter 12. 디자인 패턴

 

  정말 아무리 꾸준하게 연습을해도 막상 실제 문제에 적용하는것이 매번 까다로운게 디자인 패턴이다. 세상에 똑같은 프로그램은 없다지만 비슷한 문제를 해결해야 하는일은 너무나 많다. 이런 비슷한 패턴을 정리해 놓은 것이 디자인 패턴인데 코드를 보다가 디자인 패턴이 기가막히게 적용 되어있는 코드를 보면 감탄사가 절로 나온다. 면접시에 디자인 패턴을 직접 질문하는 경우는 흔치 않다. 특정 디자인 패턴을 사용하는 코드를 작성 하라고 하는 경우는 거의 없다고 한다. 다만 면접관과 디자인의 개념에 대해 이야기할때 어필할때 쓰면 효과가 탁월하다.

  학부때 GOF의 디자인 패턴 책을 본적이 있다 상당히 많은 패턴이 있었는데 지금 당장 기억 나는건 몇개 없다. 이번에 책을 다시보며 싱글톤, 빌더, 팩토리 메서드, 추상 팩토리, 반복자, 옵저버, 데코레이터 패턴 등을 훑어 볼 수 있었다.

 


 

:: Chapter 15. 데이터 과학, 난수 그리고 통계학

 

  프로그래밍은 통계학자보다 잘 알고, 통계학에 대해서는 프로그래머 보다 더 잘 아는 사람을 데이터 과학자 라고 한다. 사건(event), 확률(probability), 분포(distribution) 가우시안 분포 (Gaussian distribution), 정규분포(normal distribution), 기술통계 (descriptive statistics), 추론통계 (inferential statistics)등 통계학 기초를 배울때 나왔던 녀석들을 다시보니 정말 반가웠다. 최근에는 데이터를 읽을 줄 모르는 프로그래머는 도퇴 될 수 밖에 없다는 생각을 했다. 내가 지금 다시 기초 통계학에 관심을 갖고 익히고 있는 이유이다. 

  인공지능과 기계학습을 빼놓고는 이제 컴퓨터 기술을 이야기 할 수 없을만큼 이미 우리에게 친숙한 부분 역시 통계학에서 접근하여 컴퓨터과학으로 발전한 분야이다. 이러한 분야를 적용한 면접 문제는 무엇일지 상상이 되는가? 이 책에서는 이러한 파트에서 역시 여러가지 면접 문제를 제시하고 그에 필요한 답변과 배경 지식을 보기 쉽게 풀어 놓고있다. 

 

 


:: 마치며

  '프로그래밍 면접 이렇게 준비한다' 라는 제목으로는 이 책을 모두 표현 할 수 없다는 생각이 먼저 들었다. 글을 풀어가는 방식이 면접때는 이런게 중요하다는 식으로 쓰여져 있지만 막상 안의 내용들은 프로그래밍 면접이라는 상황을 배제 하더라도 개발자라면 누구나 한번쯤 읽고 정리해 두어야 할 내용이 가득했다. 20개의 Chapter 안에 당신이 궁금해 할 Chapter가 반드시 하나쯤 포함되어 있을 것이라고 자신있게 말할 수 있다. 일단 서점에서 한번 집어들고 목차중에 한개의 주제를 골라서 읽어본다면 나머지에 가득 담겨있는 내용이 너무나 궁금해질 책이다.

댓글0